{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/_shared/actions/action-buttons.component.ts","./src/app/_shared/actions/action-buttons.component.html","./src/app/_shared/actions/actions.service.ts","./src/app/_shared/billing-customer-popup/billing-customer-popup.component.ts","./src/app/_shared/billing-customer-popup/billing-customer-popup.component.html","./src/app/_shared/confirmation-dialog/confirmation-dialog.component.ts","./src/app/_shared/confirmation-dialog/confirmation-dialog.component.html","./src/app/_shared/data-area-assignment/data-area-assignment.component.ts","./src/app/_shared/data-area-assignment/data-area-assignment.component.html","./src/app/_shared/dialogs/delete.dialog.ts","./src/app/_shared/dialogs/delete.dialog.html","./src/app/_shared/directive/true-false-value.directive.ts","./src/app/_shared/driver-assignment/driver-assignment.component.ts","./src/app/_shared/driver-assignment/driver-assignment.component.html","./src/app/_shared/errors/errors.component.ts","./src/app/_shared/errors/errors.component.html","./src/app/_shared/errors/errors.service.ts","./src/app/_shared/loading-indicators/loading-entity.indicator.ts","./src/app/_shared/loading-indicators/loading-entity.indicator.html","./src/app/_shared/loading-indicators/loading-screen.indicator.ts","./src/app/_shared/loading-indicators/loading-screen.indicator.html","./src/app/_shared/notifications/notifications.component.ts","./src/app/_shared/product-assignment/product-assignment.component.ts","./src/app/_shared/product-assignment/product-assignment.component.html","./src/app/_shared/shared.model.ts","./src/app/_shared/shared.module.ts","./src/app/_shared/shared.service.ts","./src/app/_shared/vehicle-assignment/vehicle-assignment.component.ts","./src/app/_shared/vehicle-assignment/vehicle-assignment.component.html","./src/app/app-routing.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.model.ts","./src/app/app.module.ts","./src/app/app.service.ts","./src/app/auth.guard.ts","./src/app/common_helper.ts","./src/app/customers/customer-data-area/customer-data-area.component.ts","./src/app/customers/customer-data-area/customer-data-area.component.html","./src/app/customers/customer-data-area/customer-data-area.model.ts","./src/app/customers/customer-data-area/customer-data-area.service.ts","./src/app/customers/customer/customer.component.ts","./src/app/customers/customer/customer.component.html","./src/app/customers/customer/customer.model.ts","./src/app/customers/customer/customer.service.ts","./src/app/customers/customers.module.ts","./src/app/customers/strapping-chart/strapping-chart.component.ts","./src/app/customers/strapping-chart/strapping-chart.component.html","./src/app/customers/strapping-chart/strapping-chart.model.ts","./src/app/customers/strapping-chart/strapping-chart.service.ts","./src/app/fleet/additional-fields/additional-fields.component.ts","./src/app/fleet/additional-fields/additional-fields.component.html","./src/app/fleet/additional-fields/additional-fields.model.ts","./src/app/fleet/additional-fields/additional-fields.service.ts","./src/app/fleet/assessment/assessment.component.ts","./src/app/fleet/assessment/assessment.component.html","./src/app/fleet/assessment/assessment.model.ts","./src/app/fleet/assessment/assessment.service.ts","./src/app/fleet/assessment/tooltip-conditions-info.ts","./src/app/fleet/assessment/tooltip-conditions-info.html","./src/app/fleet/configuration-group/configuration-group.component.ts","./src/app/fleet/configuration-group/configuration-group.component.html","./src/app/fleet/configuration-group/configuration-group.model.ts","./src/app/fleet/configuration-group/configuration-group.service.ts","./src/app/fleet/driver-management/driver-management.component.ts","./src/app/fleet/driver-management/driver-management.component.html","./src/app/fleet/driver-management/driver-management.model.ts","./src/app/fleet/driver-management/driver-management.service.ts","./src/app/fleet/export-configuration/export-configuration.component.ts","./src/app/fleet/export-configuration/export-configuration.component.html","./src/app/fleet/export-configuration/export-configuration.model.ts","./src/app/fleet/export-configuration/export-configuration.service.ts","./src/app/fleet/fleet.module.ts","./src/app/fleet/import-configuration/import-configuration.component.ts","./src/app/fleet/import-configuration/import-configuration.component.html","./src/app/fleet/import-configuration/import-configuration.model.ts","./src/app/fleet/import-configuration/import-configuration.service.ts","./src/app/fleet/manage-images/manage-images.component.ts","./src/app/fleet/manage-images/manage-images.component.html","./src/app/fleet/manage-images/manage-images.model.ts","./src/app/fleet/manage-images/manage-images.service.ts","./src/app/fleet/time-log/time-log.component.ts","./src/app/fleet/time-log/time-log.component.html","./src/app/fleet/time-log/time-log.model.ts","./src/app/fleet/time-log/time-log.service.ts","./src/app/fleet/transpac-configuration/config-field/config-field.component.ts","./src/app/fleet/transpac-configuration/config-field/config-field.component.html","./src/app/fleet/transpac-configuration/configuration-modal/configuration-modal.component.ts","./src/app/fleet/transpac-configuration/configuration-modal/configuration-modal.component.html","./src/app/fleet/transpac-configuration/modal-config-field/modal-config-field.component.ts","./src/app/fleet/transpac-configuration/modal-config-field/modal-config-field.component.html","./src/app/fleet/transpac-configuration/transpac-configuration.component.ts","./src/app/fleet/transpac-configuration/transpac-configuration.component.html","./src/app/fleet/transpac-configuration/transpac-configuration.model.ts","./src/app/fleet/transpac-configuration/transpac-configuration.service.ts","./src/app/fleet/vehicle/vehicle.component.model.ts","./src/app/fleet/vehicle/vehicle.component.service.ts","./src/app/fleet/vehicle/vehicle.component.ts","./src/app/fleet/vehicle/vehicle.component.html","./src/app/footer/footer.component.ts","./src/app/footer/footer.component.html","./src/app/header/header.component.ts","./src/app/header/header.component.html","./src/app/home/home.component.ts","./src/app/load-point/load-point.component.ts","./src/app/load-point/load-point.component.html","./src/app/load-point/load-point.model.ts","./src/app/load-point/load-point.service.ts","./src/app/login-sso/login-sso.component.ts","./src/app/login-sso/login-sso.component.html","./src/app/login-sso/login-sso.model.ts","./src/app/login-sso/login-sso.service.ts","./src/app/login/login.component.ts","./src/app/login/login.component.html","./src/app/login/login.model.ts","./src/app/login/login.service.ts","./src/app/products/data-area/data-area.component.ts","./src/app/products/data-area/data-area.component.html","./src/app/products/data-area/data-area.model.ts","./src/app/products/data-area/data-area.service.ts","./src/app/products/device-group/device-group.component.ts","./src/app/products/device-group/device-group.component.html","./src/app/products/device-group/device-group.module.ts","./src/app/products/device-group/device-group.service.ts","./src/app/products/device-mapping/device-mapping.component.ts","./src/app/products/device-mapping/device-mapping.component.html","./src/app/products/device-mapping/device-mapping.model.ts","./src/app/products/device-mapping/device-mapping.service.ts","./src/app/products/factor/factor.component.ts","./src/app/products/factor/factor.component.html","./src/app/products/factor/factor.model.ts","./src/app/products/factor/factor.service.ts","./src/app/products/price-group/price-group.component.ts","./src/app/products/price-group/price-group.component.html","./src/app/products/price-group/price-group.model.ts","./src/app/products/price-group/price-group.service.ts","./src/app/products/product-blends/product-blends.component.ts","./src/app/products/product-blends/product-blends.component.html","./src/app/products/product-blends/product-blends.model.ts","./src/app/products/product-blends/product-blends.service.ts","./src/app/products/product-group/product-group.component.ts","./src/app/products/product-group/product-group.component.html","./src/app/products/product-group/product-group.model.ts","./src/app/products/product-group/product-group.service.ts","./src/app/products/product-popup/product-popup.component.ts","./src/app/products/product-popup/product-popup.component.html","./src/app/products/product-transformation/product-transformation.component.ts","./src/app/products/product-transformation/product-transformation.component.html","./src/app/products/product-transformation/product-transformation.model.ts","./src/app/products/product-transformation/product-transformation.service.ts","./src/app/products/product/product.component.ts","./src/app/products/product/product.component.html","./src/app/products/product/product.model.ts","./src/app/products/product/product.service.ts","./src/app/products/products-grid/products-grid.component.ts","./src/app/products/products-grid/products-grid.component.html","./src/app/products/products.module.ts","./src/app/products/products.service.ts","./src/app/safety-check/safety-check.component.ts","./src/app/safety-check/safety-check.component.html","./src/app/safety-check/safety-check.model.ts","./src/app/safety-check/safety-check.service.ts","./src/app/settings/audit-log/audit-log.component.ts","./src/app/settings/audit-log/audit-log.component.html","./src/app/settings/audit-log/audit-log.model.ts","./src/app/settings/audit-log/audit-log.service.ts","./src/app/settings/bank-account/bank-account.component.ts","./src/app/settings/bank-account/bank-account.component.html","./src/app/settings/bank-account/bank-account.model.ts","./src/app/settings/bank-account/bank-account.service.ts","./src/app/settings/company/company.component.ts","./src/app/settings/company/company.component.html","./src/app/settings/company/company.model.ts","./src/app/settings/company/company.service.ts","./src/app/settings/fleet-management/fleet-management.component.ts","./src/app/settings/fleet-management/fleet-management.component.html","./src/app/settings/fleet-management/fleet-management.model.ts","./src/app/settings/fleet-management/fleet-management.service.ts","./src/app/settings/modules/modules.component.ts","./src/app/settings/modules/modules.component.html","./src/app/settings/modules/modules.model.ts","./src/app/settings/modules/modules.service.ts","./src/app/settings/payment-term/payment-term.component.ts","./src/app/settings/payment-term/payment-term.component.html","./src/app/settings/payment-term/payment-term.model.ts","./src/app/settings/payment-term/payment-term.service.ts","./src/app/settings/print-templates/print-templates-edit.component.ts","./src/app/settings/print-templates/print-templates-edit.component.html","./src/app/settings/print-templates/print-templates-edit.service.ts","./src/app/settings/print-templates/print-templates.component.ts","./src/app/settings/print-templates/print-templates.component.html","./src/app/settings/print-templates/print-templates.model.ts","./src/app/settings/print-templates/print-templates.service.ts","./src/app/settings/print-text/print-text-reference.component.ts","./src/app/settings/print-text/print-text-reference.component.html","./src/app/settings/print-text/print-text.component.ts","./src/app/settings/print-text/print-text.component.html","./src/app/settings/print-text/print-text.model.ts","./src/app/settings/print-text/print-text.service.ts","./src/app/settings/server-configuration/server-configuration.component.ts","./src/app/settings/server-configuration/server-configuration.component.html","./src/app/settings/server-configuration/server-configuration.model.ts","./src/app/settings/server-configuration/server-configuration.service.ts","./src/app/settings/settings.module.ts","./src/app/settings/tax-rates/tax-rates.component.ts","./src/app/settings/tax-rates/tax-rates.component.html","./src/app/settings/tax-rates/tax-rates.model.ts","./src/app/settings/tax-rates/tax-rates.service.ts","./src/app/settings/users/users.component.ts","./src/app/settings/users/users.component.html","./src/app/settings/users/users.model.ts","./src/app/settings/users/users.service.ts","./src/app/version.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { Component, OnInit, Input, DoCheck } from '@angular/core';\r\nimport { ActionsService } from './actions.service';\r\nimport { AppService } from '@app/app.service';\r\nimport { Entity } from '@app/app.model';\r\nimport { ErrorsService } from '../errors/errors.service';\r\n\r\n\r\n@Component({\r\n selector: 'facnm-action-buttons',\r\n templateUrl: './action-buttons.component.html',\r\n styleUrls: ['./action-buttons.component.scss']\r\n})\r\nexport class ActionButtonsComponent implements OnInit {\r\n\r\n @Input() modelEntity: Entity;\r\n @Input() hideAdd: boolean;\r\n @Input() hideDelete: boolean;\r\n @Input() entityName: string;\r\n @Input() disableDelete: boolean = false;\r\n\r\n constructor(private actions$: ActionsService, private app$: AppService, private errors$: ErrorsService) { }\r\n\r\n ngDoCheck(): void {\r\n if (this.modelEntity) {\r\n this.modelEntity.modified = JSON.stringify(this.modelEntity.value) !== JSON.stringify(this.modelEntity.original);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n\r\n create() {\r\n this.actions$.notifyCreating();\r\n }\r\n\r\n cancel() {\r\n this.actions$.notifyCanceling();\r\n }\r\n\r\n save() {\r\n this.actions$.notifySaving();\r\n }\r\n\r\n reset() {\r\n this.actions$.notifyResetting();\r\n }\r\n\r\n delete() {\r\n this.actions$.notifyDeleting();\r\n }\r\n\r\n addNewEntity() {\r\n this.actions$.notifyAdding();\r\n }\r\n}\r\n","
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Delete\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Reset\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n \r\n Save\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ScreenNotification } from '../shared.model';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ActionsService {\r\n \r\n constructor() { } \r\n\r\n private entityReady: Subject = new Subject();\r\n EntityReady = this.entityReady.asObservable();\r\n notifyEntityReady(): void {\r\n this.entityReady.next();\r\n }\r\n\r\n private entityBusy: Subject = new Subject();\r\n EntityBusy = this.entityBusy.asObservable();\r\n notifyEntityBusy(): void {\r\n this.entityBusy.next();\r\n }\r\n\r\n private entityCustomAction: Subject = new Subject();\r\n EntityCustomAction = this.entityCustomAction.asObservable();\r\n notifyEntityCustomAction(notification: ScreenNotification): void {\r\n this.entityCustomAction.next(notification);\r\n }\r\n\r\n private entityAdding: Subject = new Subject();\r\n EntityAdding = this.entityAdding.asObservable();\r\n notifyAdding(): void {\r\n this.entityAdding.next();\r\n }\r\n\r\n private entityCreating: Subject = new Subject();\r\n EntityCreating = this.entityCreating.asObservable();\r\n notifyCreating(): void {\r\n this.entityCreating.next();\r\n }\r\n private entityCreated: Subject = new Subject();\r\n EntityCreated = this.entityCreated.asObservable();\r\n notifyCreated(): void {\r\n this.entityCreated.next();\r\n }\r\n\r\n private entitySaving: Subject = new Subject();\r\n EntitySaving = this.entitySaving.asObservable();\r\n notifySaving(): void {\r\n this.entitySaving.next();\r\n }\r\n private entitySaved: Subject = new Subject();\r\n EntitySaved = this.entitySaved.asObservable();\r\n notifySaved(): void {\r\n this.entitySaved.next();\r\n }\r\n\r\n private entityDeleting: Subject = new Subject();\r\n EntityDeleting = this.entityDeleting.asObservable();\r\n notifyDeleting(): void {\r\n this.entityDeleting.next();\r\n }\r\n private entityDeleteConfirmed: Subject = new Subject();\r\n EntityDeleteConfirmed = this.entityDeleteConfirmed.asObservable();\r\n notifyDeleteConfirmed(): void {\r\n this.entityDeleteConfirmed.next();\r\n }\r\n private entityDeleted: Subject = new Subject();\r\n EntityDeleted = this.entityDeleted.asObservable();\r\n notifyDeleted(): void {\r\n this.entityDeleted.next();\r\n }\r\n\r\n private entityResetting: Subject = new Subject();\r\n EntityResetting = this.entityResetting.asObservable();\r\n notifyResetting(): void {\r\n this.entityResetting.next();\r\n }\r\n\r\n private entityCanceling: Subject = new Subject();\r\n EntityCanceling = this.entityCanceling.asObservable();\r\n notifyCanceling(): void {\r\n this.entityCanceling.next();\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { AppService } from '@app/app.service';\r\nimport { IsUndefinedOrNull } from '@app/common_helper';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { NgxSmartModalService } from 'ngx-smart-modal';\r\nimport { CustomerService } from '@app/customers/customer/customer.service';\r\n\r\n@Component({\r\n selector: 'facnm-billing-customer-popup',\r\n templateUrl: './billing-customer-popup.component.html',\r\n styleUrls: ['./billing-customer-popup.component.scss']\r\n})\r\nexport class BillingCustomerPopupComponent implements OnInit {\r\n\r\n @Output() popupCancel: EventEmitter = new EventEmitter();\r\n @Output() popupOk: EventEmitter = new EventEmitter();\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n constructor(\r\n private customer$: CustomerService,\r\n private errors$: ErrorsService,\r\n private ngxSmartModalService: NgxSmartModalService,\r\n private app$: AppService,\r\n ) { }\r\n\r\n filterOptions = {\r\n CustomerNo: null, CustomerName: null,\r\n GridPagerOptions: { PageIndex: 0, PageSize: 20, TotalPages: null }\r\n };\r\n\r\n PageSize = 20;\r\n TotalCount = null;\r\n customDataSource: any;\r\n productType: any;\r\n productCategories: any;\r\n\r\n ngAfterViewInit() {\r\n this.ngxSmartModalService.open('modal');\r\n this.app$.notifyScreenBusy();\r\n }\r\n ngOnInit(): void {\r\n this.getCustomDataSource();\r\n }\r\n\r\n getCustomDataSource() {\r\n this.customDataSource = new CustomStore({\r\n key: ['Id'],\r\n load: (loadOptions) => {\r\n if (loadOptions != undefined) {\r\n this.filterOptions.CustomerName = null;\r\n this.filterOptions.CustomerNo = null;\r\n\r\n if (loadOptions.filter != undefined) { // accessing grid filter values \r\n if (loadOptions.filter.length) {\r\n if (!Array.isArray(loadOptions.filter[0])) {\r\n let filter = loadOptions.filter;\r\n loadOptions.filter = [];\r\n loadOptions.filter.push(filter);\r\n }\r\n }\r\n for (var i = 0; i < loadOptions.filter.length; i++) {\r\n if (loadOptions.filter[i].length == 3) {\r\n if (loadOptions.filter[i][0] == \"Name1\") this.filterOptions.CustomerName = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"Id\") this.filterOptions.CustomerNo = loadOptions.filter[i][2];\r\n }\r\n }\r\n }\r\n this.filterOptions.GridPagerOptions.PageSize = (IsUndefinedOrNull(loadOptions.take) == true) ? this.PageSize : loadOptions.take;\r\n this.filterOptions.GridPagerOptions.PageIndex = ((IsUndefinedOrNull(loadOptions.take) && IsUndefinedOrNull(loadOptions.skip)) == true) ? 0 : (loadOptions.skip / loadOptions.take);\r\n }\r\n return this.customer$.getBillingCustomers(this.filterOptions)\r\n .toPromise()\r\n .then((response: any) => {\r\n let data = response.BillingCustomerListVM || [];\r\n this.app$.notifyScreenReady();\r\n return {\r\n data: data,\r\n totalCount: response.TotalCount,\r\n };\r\n })\r\n .catch((errorNetwork) => this.errors$.handleServerErrors(errorNetwork));\r\n }\r\n });\r\n }\r\n\r\n onContentReady(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Customers Found\";\r\n }\r\n\r\n onPopupCancel() {\r\n this.ngxSmartModalService.close('modal');\r\n this.popupCancel.emit();\r\n }\r\n onPopupOk() {\r\n this.ngxSmartModalService.close('modal');\r\n this.popupOk.emit(this.dataGrid.instance.getSelectedRowsData());\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
Billing Customer
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { AppService } from '@app/app.service';\r\n\r\n@Component({\r\n selector: 'facnm-confirmation-dialog',\r\n templateUrl: './confirmation-dialog.component.html',\r\n styleUrls: ['./confirmation-dialog.component.scss']\r\n})\r\nexport class ConfirmationDialogComponent implements OnInit {\r\n constructor(private app$: AppService) {\r\n this.animation = app$.getAnimationSettings();\r\n this.shadingColor = app$.getShadingColor();\r\n }\r\n\r\n animation: any;\r\n shadingColor: any;\r\n visible = true;\r\n\r\n @Input() message: string;\r\n @Output() confirmed = new EventEmitter();\r\n @Output() canceled = new EventEmitter();\r\n\r\n ngOnInit() {\r\n }\r\n ngOnDestroy(): void {\r\n }\r\n confirm() {\r\n this.confirmed.emit();\r\n }\r\n cancel() {\r\n this.canceled.emit();\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n {{message}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Output, Input, EventEmitter, ViewChild } from '@angular/core';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\n\r\n@Component({\r\n selector: 'facnm-data-area-assignment',\r\n templateUrl: './data-area-assignment.component.html',\r\n styleUrls: ['./data-area-assignment.component.scss']\r\n})\r\nexport class DataAreaAssignmentComponent implements OnInit {\r\n\r\n constructor() { }\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n private dataGridAssignedDataAreas: DxDataGridComponent;\r\n @ViewChild('dataGridAssignedDataAreas', { static: false }) set assignedDataAreas(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridAssignedDataAreas = content;\r\n }\r\n }\r\n\r\n private dataGridUnassignedDataAreas: DxDataGridComponent;\r\n @ViewChild('dataGridUnassignedDataAreas', { static: false }) set unassignedDataAreas(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridUnassignedDataAreas = content;\r\n }\r\n }\r\n @Input() AssignedDataAreas = [];\r\n @Input() UnAssignedDataAreas = [];\r\n @Input() isAddForm = 0;\r\n assignedDataAreaSelected = [];\r\n unassignedDataAreaSelected = [];\r\n DataAreaColumnConfig: any;\r\n allMode: string;\r\n checkBoxesMode: string;\r\n\r\n ngOnInit(): void {\r\n this.allMode = 'allPages';\r\n this.checkBoxesMode = 'onClick';\r\n this.DataAreaColumnConfig = [\r\n { caption: 'Id', dataField: 'Id', visible: false, dataType: 'string' },\r\n { alignment: 'center', caption: 'Data Area No', dataField: 'Number', cssClass: 'Number', dataType: 'string' },\r\n { alignment: 'center', caption: 'Data Area Name', dataField: 'Name', cssClass: 'Name', dataType: 'string' },\r\n ];\r\n }\r\n onContentReadyAssigned(e) {\r\n this.dataGridAssignedDataAreas.noDataText = this.dataGridAssignedDataAreas.instance.totalCount() ? '' : \"No data\";\r\n }\r\n onContentReadyUnAssigned(e) {\r\n this.dataGridUnassignedDataAreas.noDataText = this.dataGridUnassignedDataAreas.instance.totalCount() ? '' : \"No data\";\r\n }\r\n assignDataAreas() {\r\n let selectedRows = this.unassignedDataAreaSelected;\r\n selectedRows.forEach(row => {\r\n let alreadyAssigned = this.AssignedDataAreas.filter(a => a.Id == row.Id);\r\n this.UnAssignedDataAreas.splice(this.UnAssignedDataAreas.indexOf(row), 1);\r\n if (alreadyAssigned.length == 0) {\r\n this.AssignedDataAreas.push(row);\r\n }\r\n });\r\n this.clearAndRefreshGrid();\r\n }\r\n unassignDataAreas() {\r\n let selectedRows = this.assignedDataAreaSelected;\r\n selectedRows.forEach(row => {\r\n let alreadyAssigned = this.UnAssignedDataAreas.filter(a => a.Id == row.Id);\r\n this.AssignedDataAreas.splice(this.AssignedDataAreas.indexOf(row), 1);\r\n if (alreadyAssigned.length == 0) {\r\n this.UnAssignedDataAreas.push(row);\r\n }\r\n });\r\n this.clearAndRefreshGrid();\r\n }\r\n clearAndRefreshGrid() {\r\n if (this.dataGridUnassignedDataAreas && this.dataGridAssignedDataAreas) {\r\n this.dataGridUnassignedDataAreas.instance.clearSelection();\r\n this.dataGridUnassignedDataAreas.instance.refresh();\r\n this.dataGridAssignedDataAreas.instance.clearSelection();\r\n this.dataGridAssignedDataAreas.instance.refresh();\r\n this.setNoDataText();\r\n }\r\n }\r\n setNoDataText() {\r\n this.dataGridUnassignedDataAreas.noDataText = this.UnAssignedDataAreas?.length ? '' : \"No data\";\r\n this.dataGridAssignedDataAreas.noDataText = this.AssignedDataAreas?.length ? '' : \"No data\";\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '../actions/actions.service';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'facnm-delete-dialog',\r\n templateUrl: './delete.dialog.html',\r\n styleUrls: ['./delete.dialog.scss']\r\n})\r\nexport class DeleteDialog implements OnInit {\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n constructor(private app$: AppService, private actions$: ActionsService) {\r\n\r\n this.animation = app$.getAnimationSettings();\r\n this.shadingColor = app$.getShadingColor();\r\n\r\n actions$.EntityDeleting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.visible = true);\r\n }\r\n\r\n animation: any;\r\n shadingColor: any;\r\n maxHeight = 200;\r\n maxWidth = 400;\r\n\r\n visible: boolean;\r\n @Input() entityName: string;\r\n @Input() height: number;\r\n @Input() width: number;\r\n @Input() showVehicleDeleteMsg: boolean;\r\n @Input() attentionMsg: string;\r\n @Input() showDataAreaDeleteMsg: boolean;\r\n @Input() message: string;\r\n \r\n \r\n \r\n ngOnInit() {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n confirm() {\r\n this.actions$.notifyDeleteConfirmed();\r\n this.visible = false;\r\n }\r\n\r\n cancel() {\r\n this.visible = false;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n Attention: {{attentionMsg}}\r\n
\r\n
\r\n Do you still want to delete this {{entityName}}?\r\n
\r\n
\r\n Are you sure you want to delete this {{entityName}}?\r\n
\r\n
\r\n {{message}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import {\r\n Directive,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n ElementRef,\r\n Renderer2\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NgControl\r\n} from '@angular/forms';\r\n\r\n@Directive({\r\n selector: 'input[type=checkbox][trueFalseValue]',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TrueFalseValueDirective),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class TrueFalseValueDirective implements ControlValueAccessor {\r\n private propagateChange = (_: any) => { };\r\n @Input() trueValue;\r\n @Input() falseValue;\r\n @Input() intValue = false;\r\n\r\n constructor(private elementRef: ElementRef, private renderer: Renderer2) { }\r\n\r\n @HostListener('change', ['$event'])\r\n onHostChange(ev) {\r\n if (this.intValue) {\r\n this.propagateChange(ev.target.checked ? parseInt(this.trueValue) : parseInt(this.falseValue));\r\n } else {\r\n this.propagateChange(ev.target.checked ? this.trueValue : this.falseValue);\r\n }\r\n }\r\n\r\n writeValue(obj: any): void {\r\n if (obj == this.trueValue) {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'checked', true);\r\n } else {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'checked', false);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void { }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', isDisabled);\r\n }\r\n}","import { Component, OnInit, Output, Input, EventEmitter, ViewChild } from '@angular/core';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\n\r\n@Component({\r\n selector: 'facnm-driver-assignment',\r\n templateUrl: './driver-assignment.component.html',\r\n styleUrls: ['./driver-assignment.component.scss']\r\n})\r\nexport class DriverAssignmentComponent implements OnInit {\r\n\r\n constructor() { }\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n private dataGridAssignedDrivers: DxDataGridComponent;\r\n @ViewChild('dataGridAssignedDrivers', { static: false }) set assignedDrivers(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridAssignedDrivers = content;\r\n }\r\n }\r\n\r\n private dataGridUnassignedDrivers: DxDataGridComponent;\r\n @ViewChild('dataGridUnassignedDrivers', { static: false }) set unassignedDrivers(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridUnassignedDrivers = content;\r\n }\r\n }\r\n @Input() AssignedDrivers = [];\r\n @Input() UnAssignedDrivers = [];\r\n @Input() isAddForm = 0;\r\n assignedDriverSelected = [];\r\n unassignedDriverSelected = [];\r\n driverColumnConfig: any;\r\n allMode: string;\r\n checkBoxesMode: string;\r\n\r\n ngOnInit(): void {\r\n this.allMode = 'allPages';\r\n this.checkBoxesMode = 'onClick';\r\n this.driverColumnConfig = [\r\n { alignment: 'center', caption: 'Driver ID', dataField: 'Id', dataType: 'number' },\r\n {\r\n alignment: 'center', caption: 'Driver No', dataField: 'Number', dataType: 'number',\r\n },\r\n { alignment: 'left', caption: 'Driver Name', dataField: 'Name', dataType: 'string' },\r\n ];\r\n }\r\n onContentReadyAssigned(e) {\r\n this.dataGridAssignedDrivers.noDataText = this.dataGridAssignedDrivers.instance.totalCount() ? '' : \"No data\";\r\n }\r\n onContentReadyUnAssigned(e) {\r\n this.dataGridUnassignedDrivers.noDataText = this.dataGridUnassignedDrivers.instance.totalCount() ? '' : \"No data\";\r\n }\r\n assignDrivers() {\r\n let selectedRows = this.unassignedDriverSelected;\r\n selectedRows.forEach(row => {\r\n let alreadyAssigned = this.AssignedDrivers.filter(a => a.Id == row.Id);\r\n this.UnAssignedDrivers.splice(this.UnAssignedDrivers.indexOf(row), 1);\r\n if (alreadyAssigned.length == 0) {\r\n this.AssignedDrivers.push(row);\r\n }\r\n });\r\n this.clearAndRefreshGrid();\r\n }\r\n unassignDrivers() {\r\n let selectedRows = this.assignedDriverSelected;\r\n selectedRows.forEach(row => {\r\n let alreadyAssigned = this.UnAssignedDrivers.filter(a => a.Id == row.Id);\r\n this.AssignedDrivers.splice(this.AssignedDrivers.indexOf(row), 1);\r\n if (alreadyAssigned.length == 0) {\r\n this.UnAssignedDrivers.push(row);\r\n }\r\n });\r\n this.clearAndRefreshGrid();\r\n }\r\n clearAndRefreshGrid() {\r\n if (this.dataGridUnassignedDrivers && this.dataGridAssignedDrivers) {\r\n this.dataGridUnassignedDrivers.instance.clearSelection();\r\n this.dataGridUnassignedDrivers.instance.refresh();\r\n this.dataGridAssignedDrivers.instance.clearSelection();\r\n this.dataGridAssignedDrivers.instance.refresh();\r\n this.setNoDataText();\r\n }\r\n }\r\n setNoDataText() {\r\n this.dataGridUnassignedDrivers.noDataText = this.UnAssignedDrivers?.length ? '' : \"No data\";\r\n this.dataGridAssignedDrivers.noDataText = this.AssignedDrivers?.length ? '' : \"No data\";\r\n }\r\n}\r\n\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { ServerError } from '../shared.model';\r\nimport { ErrorsService } from './errors.service';\r\nimport { ActionsService } from '../actions/actions.service';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'facnm-errors',\r\n templateUrl: './errors.component.html',\r\n styleUrls: ['./errors.component.scss']\r\n})\r\nexport class ErrorsComponent implements OnInit, OnDestroy {\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n ServerErrors: ServerError[];\r\n ModelStateErrors: any;\r\n alerts: string[] = [];\r\n alertError: boolean;\r\n\r\n constructor(private errors$: ErrorsService, private actions$: ActionsService) {\r\n\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n\r\n this.ServerErrors = undefined;\r\n this.ModelStateErrors = undefined;\r\n\r\n if (errors) {\r\n if (errors.modelState) {\r\n this.ModelStateErrors = errors.modelState;\r\n }\r\n else {\r\n this.ServerErrors = errors;\r\n }\r\n }\r\n\r\n });\r\n\r\n actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => { errors$.clearErrors() });\r\n actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => { errors$.clearErrors() });\r\n actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => { errors$.clearErrors() });\r\n actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => { errors$.clearErrors() });\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => { errors$.clearErrors() });\r\n actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => { errors$.clearErrors() });\r\n actions$.EntityBusy.pipe(takeUntil(this.unsubscribe$)).subscribe(() => { errors$.clearErrors() });\r\n\r\n this.errors$.getAlerts().subscribe(alert => {\r\n if (!alert) {\r\n this.alertError = false;\r\n this.alerts = [];\r\n }\r\n else {\r\n this.alertError = true;\r\n this.alerts.push(alert);\r\n }\r\n });\r\n\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n\r\n closeServerErrors() { this.ServerErrors = undefined; }\r\n closeModelStateErrors() { this.ModelStateErrors = undefined; }\r\n closeClientErrors() {this.alerts = undefined, this.alertError=false;}\r\n}\r\n","Error!\">\r\n {{ ServerErrors.message }}\r\n
{{ ServerErrors.details }}
\r\n
\r\n\r\nFix the below validations!\">\r\n
    \r\n
  • \r\n
    {{errorMessage}}
    \r\n
  • \r\n
\r\n
\r\n\r\nFix the below validations!\">\r\n
\r\n {{ alert }}\r\n
\r\n
","import { Injectable } from '@angular/core';\r\nimport { throwError, Subject,Observable } from 'rxjs';\r\n\r\n\r\nimport { AppService } from '@app/app.service';\r\nimport { ServerError } from '../shared.model';\r\n\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport forIn from 'lodash/forIn';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorsService {\r\n\r\n constructor(private app$: AppService) { }\r\n\r\n private errorsReceived: Subject = new Subject();\r\n ServerErrorsReceived = this.errorsReceived.asObservable();\r\n\r\n ModelStateErrors: any;\r\n ServerErrors: ServerError;\r\n \r\n isInvalid(field) {\r\n return this.ModelStateErrors && Object.keys(this.ModelStateErrors).some((k) => k.indexOf(field) >= 0);\r\n }\r\n\r\n getError(field) {\r\n return this.ModelStateErrors && this.ModelStateErrors[Object.keys(this.ModelStateErrors).find((k) => k.indexOf(field) >= 0)][0];\r\n }\r\n\r\n clearErrors() {\r\n\r\n this.ModelStateErrors = null;\r\n this.ServerErrors = null;\r\n\r\n this.errorsReceived.next(null);\r\n }\r\n\r\n handleServerErrors(serverError: ServerError) {\r\n\r\n this.ServerErrors = undefined;\r\n this.ModelStateErrors = undefined;\r\n\r\n if (serverError.redirectToLogin) {\r\n this.app$.redirectToLogin();\r\n }\r\n else if (serverError.modelState) {\r\n\r\n this.ModelStateErrors = serverError.modelState;\r\n }\r\n else {\r\n this.ServerErrors = serverError;\r\n }\r\n\r\n this.errorsReceived.next(serverError);\r\n }\r\n\r\n handleCustomError(error: string){\r\n let e = new ServerError();\r\n e.message = error;\r\n this.errorsReceived.next(e);\r\n return throwError(e);\r\n }\r\n\r\n\r\n handleNetworkError(httpErrorResponse: HttpErrorResponse) {\r\n\r\n let e = new ServerError();\r\n\r\n if (!httpErrorResponse.status) {\r\n e.message = \"Network error\";\r\n return throwError(e);\r\n }\r\n\r\n else if (httpErrorResponse.error.ModelState) {\r\n\r\n let modelStateReadable = {};\r\n\r\n forIn(httpErrorResponse.error.ModelState, (v, k) => {\r\n\r\n if (v[0].indexOf('too large or small for an Int32') >= 0) {\r\n modelStateReadable[k] = ['Max limit has reached'];\r\n }\r\n\r\n else if ([\r\n 'Unexpected token when deserializing object',\r\n 'Unexpected end when deserializing object'\r\n ].some(errorUnreadable => { return v[0].indexOf(errorUnreadable) >= 0 }))\r\n return false;\r\n\r\n else modelStateReadable[k] = v;\r\n });\r\n\r\n e.modelState = modelStateReadable;\r\n }\r\n\r\n else if (typeof httpErrorResponse.error === 'string' && httpErrorResponse.error.indexOf('controller') > 0) {\r\n e.redirectToLogin = true;\r\n e.message = 'Your session expired';\r\n return throwError(e);\r\n }\r\n\r\n else if (httpErrorResponse.error.size && httpErrorResponse.error.type && httpErrorResponse.error.type == \"application/json\") {\r\n\r\n return throwError(httpErrorResponse.error as Blob);\r\n }\r\n else if (httpErrorResponse.error.error_description) {\r\n e.message = httpErrorResponse.error.error_description;\r\n } else if (typeof httpErrorResponse.error === 'string' && httpErrorResponse.name == \"HttpErrorResponse\") {\r\n e.message = httpErrorResponse.error;\r\n }\r\n else {\r\n e.message = httpErrorResponse.error.Message;\r\n e.details = httpErrorResponse.error.ExceptionMessage;\r\n }\r\n return throwError(e);\r\n }\r\n\r\n private alertSubject = new Subject();\r\n\r\n getAlerts(): Observable {\r\n return this.alertSubject.asObservable();\r\n }\r\n\r\n error(message: string) {\r\n this.alertSubject.next(message);\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AppService } from '@app/app.service';\r\nimport { ErrorsService } from '../errors/errors.service';\r\nimport { ActionsService } from '../actions/actions.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'facnm-loading-entity-indicator',\r\n templateUrl: './loading-entity.indicator.html',\r\n styleUrls: ['./loading-entity.indicator.scss']\r\n})\r\nexport class LoadingEntityIndicator implements OnInit {\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n animation: any;\r\n shadingColor: any;\r\n\r\n visible: boolean;\r\n\r\n constructor(private app$: AppService, private actions$: ActionsService, private errors$: ErrorsService) {\r\n\r\n this.animation = app$.getAnimationSettings();\r\n\r\n actions$.EntityBusy.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.visible = true);\r\n\r\n actions$.EntityReady.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.visible = false);\r\n\r\n app$.ScreenBusy.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.visible = false);\r\n\r\n app$.ScreenReady.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.visible = false);\r\n\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n this.visible = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n}\r\n","\r\n \r\n \r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { AppService } from '@app/app.service';\r\nimport { ErrorsService } from '../errors/errors.service';\r\nimport { ActionsService } from '../actions/actions.service';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'facnm-loading-screen-indicator',\r\n templateUrl: './loading-screen.indicator.html',\r\n styleUrls: ['./loading-screen.indicator.scss']\r\n})\r\nexport class LoadingScreenIndicator implements OnInit {\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n animation: any;\r\n shadingColor: any;\r\n\r\n visible: boolean;\r\n\r\n constructor(private app$: AppService, private actions$: ActionsService, private errors$: ErrorsService) {\r\n\r\n this.animation = app$.getAnimationSettings();\r\n this.shadingColor = app$.getShadingColor();\r\n\r\n actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.visible = true);\r\n actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.visible = true);\r\n actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.visible = true);\r\n\r\n app$.ScreenBusy.pipe(takeUntil(this.unsubscribe$)).subscribe(() => { this.visible = true; this.errors$.clearErrors() });\r\n app$.ScreenReady.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.visible = false);\r\n\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n this.visible = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if(this.visible === undefined)\r\n {\r\n this.visible = true;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n}\r\n","\r\n \r\n \r\n
\r\n \r\n
\r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ErrorsService } from '../errors/errors.service';\r\nimport { ActionsService } from '../actions/actions.service';\r\nimport { AppService } from '@app/app.service';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { PdiNotificationService } from '@pdi/platform-angular-template';\r\n\r\n@Component({\r\n selector: 'facnm-notifications',\r\n templateUrl: './notifications.component.html',\r\n styleUrls: ['./notifications.component.scss']\r\n})\r\nexport class NotificationsComponent implements OnInit {\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n @Input() entityName;\r\n\r\n constructor(private app$: AppService, private errors$: ErrorsService, private actions$: ActionsService, private notificationService: PdiNotificationService) {\r\n\r\n actions$.EntityCreated.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.notificationService.page(\"Created \" + this.entityName + \" successfully\", 'success');\r\n });\r\n\r\n actions$.EntitySaved.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.notificationService.page(\"Updated \" + this.entityName + \" successfully\", 'success');\r\n });\r\n\r\n actions$.EntityDeleted.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.notificationService.page(\"Deleted \" + this.entityName + \" successfully\", 'success');\r\n });\r\n\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.notificationService.page(this.entityName + \" details were reset\", 'success');\r\n });\r\n\r\n\r\n actions$.EntityBusy.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.notificationService.closeNotification();\r\n });\r\n\r\n app$.ScreenBusy.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.notificationService.closeNotification();\r\n });\r\n\r\n actions$.EntityCustomAction.pipe(takeUntil(this.unsubscribe$)).subscribe((value) => {\r\n let type = value.type ? value.type : 'success';\r\n let toastMessage = \"\" + value.title + \" \" + value.message;\r\n switch (type) {\r\n case 'success':\r\n this.notificationService.page(toastMessage, 'success');\r\n break;\r\n case 'error':\r\n this.notificationService.page(toastMessage, 'alert');\r\n break;\r\n case 'warning':\r\n this.notificationService.page(toastMessage, 'warning');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let toastMessage = errors.message;\r\n if (errors.modelState) {\r\n toastMessage = 'The ' + this.entityName + ' contains errors';\r\n }\r\n this.notificationService.page(toastMessage, 'alert');\r\n }\r\n });\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Output, Input, EventEmitter, ViewChild } from '@angular/core';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\n\r\n@Component({\r\n selector: 'facnm-product-assignment',\r\n templateUrl: './product-assignment.component.html',\r\n styleUrls: ['./product-assignment.component.scss']\r\n})\r\nexport class ProductAssignmentComponent implements OnInit {\r\n\r\n constructor() { }\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n private dataGridAssignedProducts: DxDataGridComponent;\r\n @ViewChild('dataGridAssignedProducts', { static: false }) set assignedProducts(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridAssignedProducts = content;\r\n }\r\n }\r\n\r\n private dataGridUnassignedProducts: DxDataGridComponent;\r\n @ViewChild('dataGridUnassignedProducts', { static: false }) set unassignedProducts(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridUnassignedProducts = content;\r\n }\r\n }\r\n @Input() AssignedProducts = [];\r\n @Input() UnAssignedProducts = [];\r\n @Input() isAddForm = 0;\r\n assignedProductSelected = [];\r\n unassignedProductSelected = [];\r\n productColumnConfig: any;\r\n allMode: string;\r\n checkBoxesMode: string;\r\n\r\n ngOnInit(): void {\r\n this.allMode = 'allPages';\r\n this.checkBoxesMode = 'onClick';\r\n this.productColumnConfig = [\r\n { caption: 'Id', dataField: 'Id', visible: false, dataType: 'string' },\r\n { alignment: 'center', caption: 'Product Number', dataField: 'ProductNumber', cssClass: 'ProductNumber', dataType: 'string' },\r\n { alignment: 'center', caption: 'Product Name', dataField: 'ShortProductName', cssClass: 'ShortProductName', dataType: 'string' },\r\n ];\r\n }\r\n onContentReadyAssigned(e) {\r\n this.dataGridAssignedProducts.noDataText = this.dataGridAssignedProducts.instance.totalCount() ? '' : \"No data\";\r\n }\r\n onContentReadyUnAssigned(e) {\r\n this.dataGridUnassignedProducts.noDataText = this.dataGridUnassignedProducts.instance.totalCount() ? '' : \"No data\";\r\n }\r\n assignProducts() {\r\n let selectedRows = this.unassignedProductSelected;\r\n selectedRows.forEach(row => {\r\n let alreadyAssigned = this.AssignedProducts.filter(a => a.Id == row.Id);\r\n this.UnAssignedProducts.splice(this.UnAssignedProducts.indexOf(row), 1);\r\n if (alreadyAssigned.length == 0) {\r\n this.AssignedProducts.push(row);\r\n }\r\n });\r\n this.clearAndRefreshGrid();\r\n }\r\n unassignProducts() {\r\n let selectedRows = this.assignedProductSelected;\r\n selectedRows.forEach(row => {\r\n let alreadyAssigned = this.UnAssignedProducts.filter(a => a.Id == row.Id);\r\n this.AssignedProducts.splice(this.AssignedProducts.indexOf(row), 1);\r\n if (alreadyAssigned.length == 0) {\r\n this.UnAssignedProducts.push(row);\r\n }\r\n });\r\n this.clearAndRefreshGrid();\r\n }\r\n clearAndRefreshGrid() {\r\n if (this.dataGridUnassignedProducts && this.dataGridAssignedProducts) {\r\n this.dataGridUnassignedProducts.instance.clearSelection();\r\n this.dataGridUnassignedProducts.instance.refresh();\r\n this.dataGridAssignedProducts.instance.clearSelection();\r\n this.dataGridAssignedProducts.instance.refresh();\r\n this.setNoDataText();\r\n }\r\n }\r\n setNoDataText() {\r\n this.dataGridUnassignedProducts.noDataText = this.UnAssignedProducts?.length ? '' : \"No data\";\r\n this.dataGridAssignedProducts.noDataText = this.AssignedProducts?.length ? '' : \"No data\";\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","\r\n\r\nexport interface Company {\r\n\r\n Id: number;\r\n name: string;\r\n}\r\n\r\n\r\n\r\nexport class Device {\r\n\r\n Id: number;\r\n Name: string;\r\n IMEI: string;\r\n\r\n Vehicle: Vehicle;\r\n}\r\n\r\n\r\nexport class Vehicle {\r\n\r\n Id: number;\r\n VehicleNumber: string;\r\n LicensePlate: string;\r\n}\r\n\r\n\r\n\r\nexport class ServerError {\r\n modelState: any;\r\n message: string;\r\n details: string;\r\n redirectToLogin: boolean;\r\n}\r\n\r\nexport class ScreenNotification {\r\n title: string;\r\n message: string;\r\n type?: string;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ErrorsComponent } from './errors/errors.component';\r\nimport { ActionButtonsComponent } from './actions/action-buttons.component';\r\nimport { DxTooltipModule, DxPopupModule, DxLoadPanelModule, DxDataGridModule, DxSelectBoxModule } from 'devextreme-angular';\r\nimport { NotificationsComponent } from './notifications/notifications.component';\r\nimport { DeleteDialog } from './dialogs/delete.dialog';\r\nimport { LoadingScreenIndicator } from './loading-indicators/loading-screen.indicator';\r\nimport { LoadingEntityIndicator } from './loading-indicators/loading-entity.indicator';\r\nimport { ConfirmationDialogComponent } from './confirmation-dialog/confirmation-dialog.component';\r\nimport { TrueFalseValueDirective } from './directive/true-false-value.directive';\r\nimport { BillingCustomerPopupComponent } from './billing-customer-popup/billing-customer-popup.component';\r\nimport { NgxSmartModalModule } from 'ngx-smart-modal';\r\nimport { VehicleAssignmentComponent } from './vehicle-assignment/vehicle-assignment.component';\r\nimport { DriverAssignmentComponent } from './driver-assignment/driver-assignment.component';\r\nimport { ProductAssignmentComponent } from './product-assignment/product-assignment.component';\r\nimport { DataAreaAssignmentComponent } from './data-area-assignment/data-area-assignment.component';\r\nimport { PdiLinkModule,PdiIconModule,PdiNotificationsModule,PdiDropdownModule,PdiLoaderModule } from '@pdi/platform-angular-template';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ErrorsComponent,\r\n ActionButtonsComponent,\r\n NotificationsComponent,\r\n LoadingScreenIndicator, LoadingEntityIndicator,\r\n DeleteDialog,\r\n ConfirmationDialogComponent,\r\n TrueFalseValueDirective,\r\n BillingCustomerPopupComponent,\r\n VehicleAssignmentComponent,\r\n DriverAssignmentComponent,\r\n ProductAssignmentComponent,\r\n DataAreaAssignmentComponent,\r\n ],\r\n exports: [\r\n ErrorsComponent,\r\n ActionButtonsComponent,\r\n NotificationsComponent,\r\n LoadingScreenIndicator, LoadingEntityIndicator,\r\n DeleteDialog,\r\n ConfirmationDialogComponent,\r\n TrueFalseValueDirective,\r\n BillingCustomerPopupComponent,\r\n VehicleAssignmentComponent,\r\n DriverAssignmentComponent,\r\n ProductAssignmentComponent,\r\n DataAreaAssignmentComponent,\r\n PdiNotificationsModule,\r\n PdiLinkModule,\r\n PdiIconModule,\r\n PdiDropdownModule,\r\n PdiLoaderModule,\r\n DxSelectBoxModule\r\n ],\r\n imports: [\r\n CommonModule,\r\n DxTooltipModule,\r\n DxPopupModule,\r\n DxLoadPanelModule,\r\n DxDataGridModule,\r\n NgxSmartModalModule.forRoot(),\r\n PdiNotificationsModule,\r\n PdiDropdownModule,\r\n PdiLoaderModule,\r\n DxSelectBoxModule\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\nimport { Device, Company } from './shared.model';\r\n\r\nimport { map as mapObject } from 'lodash';\r\nimport { Enum } from '@app/app.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharedService {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n\r\n private companyListRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n CompanyListRetrieved = this.companyListRetrieved.asObservable();\r\n getCompanyList(): Observable {\r\n\r\n return this._http.get(e.endpoint.company, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n notifyCompanyRetrieved(data: Company[]): void {\r\n this.companyListRetrieved.next(data);\r\n }\r\n\r\n\r\n\r\n private deviceListRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n DeviceListRetrieved = this.deviceListRetrieved.asObservable();\r\n\r\n getDeviceList(companyId?: number): Observable {\r\n\r\n let id = companyId ? companyId : '';\r\n\r\n return this._http.get(e.endpoint.fleet.devices + '/' + id, { //NOTE because server device contains vehicle properties too\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(\r\n\r\n map(devices => { //NOTE converts to \r\n if (devices) {\r\n\r\n let devicesMapped: Device[] = [];\r\n\r\n mapObject(devices, (d) => {\r\n\r\n let device: Device = d;\r\n\r\n device.Vehicle = { Id: d.VehicleId, LicensePlate: d.LicensePlate, VehicleNumber: d.VehicleNumber };\r\n\r\n devicesMapped.push(device);\r\n });\r\n\r\n return devicesMapped;\r\n }\r\n }),\r\n\r\n catchError(this.errors$.handleNetworkError)\r\n );\r\n }\r\n\r\n\r\n notifyDeviceRetrieved(data: Device[]): void {\r\n this.deviceListRetrieved.next(data);\r\n }\r\n\r\n\r\n getSafetyGroups(): Observable {\r\n\r\n return this._http.get(e.endpoint.safetycheck + '/safety-groups', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getVehicleTypes(lookup = 1): Observable {\r\n\r\n return this._http.get(e.endpoint.fleet.vehicles + '/vehicletypes/'+ lookup, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getCountryList(): Observable {\r\n return this._http.get(e.endpoint.masterData + '/countries/0', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getLanguageList(): Observable {\r\n return this._http.get(e.endpoint.masterData + '/languages/0', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getCustomerTypeList(): Observable {\r\n return this._http.get(e.endpoint.masterData + '/customertypes/0', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n saveCustomerType(customerType): Observable {\r\n return this._http.put(\r\n e.endpoint.masterData + '/customertypes',\r\n customerType,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getCompanies(lookup): Observable {\r\n return this._http.get(e.endpoint.company + '/dropdown/' + lookup, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit, Output,Input, EventEmitter, ViewChild } from '@angular/core';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\n\r\n@Component({\r\n selector: 'facnm-vehicle-assignment',\r\n templateUrl: './vehicle-assignment.component.html',\r\n styleUrls: ['./vehicle-assignment.component.scss']\r\n})\r\nexport class VehicleAssignmentComponent implements OnInit {\r\n\r\n constructor() { }\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n private dataGridAssignedVehicles: DxDataGridComponent;\r\n @ViewChild('dataGridAssignedVehicles', { static: false }) set assignedVehicles(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridAssignedVehicles = content;\r\n }\r\n }\r\n\r\n private dataGridUnassignedVehicles: DxDataGridComponent;\r\n @ViewChild('dataGridUnassignedVehicles', { static: false }) set unassignedVehicles(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridUnassignedVehicles = content;\r\n }\r\n }\r\n @Input() AssignedVehicles = [];\r\n @Input() UnAssignedVehicles = [];\r\n @Input() isAddForm = 0;\r\n assignedVehicleSelected = [];\r\n unassignedVehicleSelected = [];\r\n vehicleColumnConfig: any;\r\n allMode: string;\r\n checkBoxesMode: string;\r\n\r\n ngOnInit(): void {\r\n this.allMode = 'allPages';\r\n this.checkBoxesMode = 'onClick';\r\n this.vehicleColumnConfig = [\r\n { caption: 'Vehicle Id', dataField: 'Id', visible: false, dataType: 'number' },\r\n { caption: 'Device Id - Name', dataField: 'DeviceId', cssClass: 'DeviceId', dataType: 'string', alignment: 'left',\r\n cellTemplate: function (container, options) {\r\n var devicedetails = \"\";\r\n if (options.data.DeviceId != 0) devicedetails = devicedetails + options.data.DeviceId + \" - \";\r\n if (options.data.DeviceName != null) devicedetails = devicedetails + options.data.DeviceName;\r\n $('').text(devicedetails).append(\"
\").appendTo(container);\r\n },\r\n calculateCellValue: function (data) {\r\n return data.DeviceId + \" - \" + data.DeviceName;\r\n },\r\n calculateFilterExpression: function (filterValue, selectedFilterOperation) {\r\n return [this.calculateCellValue, selectedFilterOperation || 'contains', filterValue];\r\n }\r\n },\r\n { alignment: 'center', caption: 'Vehicle No', dataField: 'VehicleNumber', cssClass: 'VehicleNumber', dataType: 'string' },\r\n { alignment: 'left', caption: 'License Plate', dataField: 'LicensePlate', cssClass: 'LicensePlate', dataType: 'string', width: 150,\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.LicensePlate)\r\n .appendTo(container);\r\n }\r\n }\r\n ];\r\n } \r\n onContentReadyAssigned(e) {\r\n this.dataGridAssignedVehicles.noDataText = this.dataGridAssignedVehicles.instance.totalCount() ? '' : \"No data\";\r\n }\r\n onContentReadyUnAssigned(e) {\r\n this.dataGridUnassignedVehicles.noDataText = this.dataGridUnassignedVehicles.instance.totalCount() ? '' : \"No data\";\r\n }\r\n assignVehicles() {\r\n let selectedRows = this.unassignedVehicleSelected;\r\n selectedRows.forEach(row => {\r\n let alreadyAssigned = this.AssignedVehicles.filter(a => a.DeviceId == row.DeviceId);\r\n this.UnAssignedVehicles.splice(this.UnAssignedVehicles.indexOf(row), 1);\r\n if (alreadyAssigned.length == 0) {\r\n this.AssignedVehicles.push(row);\r\n }\r\n });\r\n this.clearAndRefreshGrid();\r\n }\r\n unassignVehicles() {\r\n let selectedRows = this.assignedVehicleSelected;\r\n selectedRows.forEach(row => {\r\n let alreadyAssigned = this.UnAssignedVehicles.filter(a => a.DeviceId == row.DeviceId);\r\n this.AssignedVehicles.splice(this.AssignedVehicles.indexOf(row), 1);\r\n if (alreadyAssigned.length == 0) {\r\n this.UnAssignedVehicles.push(row);\r\n }\r\n });\r\n this.clearAndRefreshGrid();\r\n }\r\n clearAndRefreshGrid() {\r\n if (this.dataGridUnassignedVehicles && this.dataGridAssignedVehicles) {\r\n this.dataGridUnassignedVehicles.instance.clearSelection();\r\n this.dataGridUnassignedVehicles.instance.refresh();\r\n this.dataGridAssignedVehicles.instance.clearSelection();\r\n this.dataGridAssignedVehicles.instance.refresh();\r\n this.setNoDataText();\r\n }\r\n }\r\n setNoDataText() {\r\n this.dataGridUnassignedVehicles.noDataText = this.UnAssignedVehicles?.length ? '' : \"No data\";\r\n this.dataGridAssignedVehicles.noDataText = this.AssignedVehicles?.length ? '' : \"No data\";\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport { LoginComponent } from './login/login.component';\r\nimport { HomeComponent } from \"@app/home/home.component\";\r\nimport { ProductComponent } from \"@products/product/product.component\";\r\nimport { UsersComponent } from \"@settings/users/users.component\";\r\nimport { AdditionalFieldsComponent } from \"@app/fleet/additional-fields/additional-fields.component\";\r\nimport { ConfigurationGroupComponent } from '@app/fleet/configuration-group/configuration-group.component';\r\nimport { CustomerComponent } from \"@app/customers/customer/customer.component\";\r\nimport { VehicleComponent } from '@app/fleet/vehicle/vehicle.component';\r\nimport { DataAreaComponent } from \"@products/data-area/data-area.component\";\r\nimport { AuditLogComponent } from \"@settings/audit-log/audit-log.component\";\r\nimport { CompanyComponent } from \"@settings/company/company.component\";\r\nimport { DeviceMappingComponent } from \"@products/device-mapping/device-mapping.component\";\r\nimport { CustomerDataAreaComponent } from \"@app/customers/customer-data-area/customer-data-area.component\";\r\nimport { TranspacConfigurationComponent } from \"@fleet/transpac-configuration/transpac-configuration.component\";\r\nimport { StrappingChartComponent } from \"@app/customers/strapping-chart/strapping-chart.component\";\r\nimport { DeviceGroupComponent } from \"@products/device-group/device-group.component\";\r\nimport { PaymentTermComponent } from \"@settings/payment-term/payment-term.component\";\r\nimport { BankAccountComponent } from \"@settings/bank-account/bank-account.component\";\r\nimport { FactorComponent } from \"@products/factor/factor.component\";\r\nimport { ProductGroupComponent } from \"@products/product-group/product-group.component\"\r\nimport { PriceGroupComponent } from \"@products/price-group/price-group.component\";\r\nimport { ImportConfigurationComponent } from \"@fleet/import-configuration/import-configuration.component\";\r\nimport { ProductTransformationComponent } from \"@products/product-transformation/product-transformation.component\";\r\nimport { ProductBlendsComponent } from \"@products/product-blends/product-blends.component\";\r\nimport { AssessmentComponent } from \"@app/fleet/assessment/assessment.component\";\r\nimport { ManageImagesComponent } from \"@app/fleet/manage-images/manage-images.component\";\r\nimport { PrintTemplatesComponent } from \"@app/settings/print-templates/print-templates.component\";\r\nimport { TaxRatesComponent } from \"@app/settings/tax-rates/tax-rates.component\";\r\nimport { PrintTextsComponent } from \"@settings/print-text/print-text.component\";\r\nimport { ServerConfigurationComponent } from \"@settings/server-configuration/server-configuration.component\";\r\nimport { ModulesComponent } from \"@settings/modules/modules.component\";\r\nimport { DriverManagementComponent } from \"@app/fleet/driver-management/driver-management.component\";\r\nimport { TimeLogComponent } from \"@app/fleet/time-log/time-log.component\";\r\nimport { FleetManagementComponent } from \"@app/settings/fleet-management/fleet-management.component\";\r\nimport { ExportConfigurationComponent } from \"@app/fleet/export-configuration/export-configuration.component\";\r\nimport { LoadPointComponent } from './load-point/load-point.component';\r\nimport { LoginSSOComponent } from './login-sso/login-sso.component';\r\nimport { SafetyCheckComponent } from './safety-check/safety-check.component';\r\nimport { AuthGuard } from './auth.guard';\r\n\r\n\r\nexport const appRoutes: Routes = [\r\n { path: 'login', component: LoginComponent, },\r\n { path: 'home', component: HomeComponent, canActivate: [AuthGuard] },\r\n { path: 'additionalfields', component: AdditionalFieldsComponent, canActivate: [AuthGuard] },\r\n { path: 'auditlog', component: AuditLogComponent, canActivate: [AuthGuard] },\r\n { path: 'bankaccount', component: BankAccountComponent, canActivate: [AuthGuard] },\r\n { path: 'company', component: CompanyComponent, canActivate: [AuthGuard] },\r\n { path: 'configurationgroup', component: ConfigurationGroupComponent, canActivate: [AuthGuard] },\r\n { path: 'customer', component: CustomerComponent, canActivate: [AuthGuard] },\r\n { path: 'customerdataarea', component: CustomerDataAreaComponent, canActivate: [AuthGuard] },\r\n { path: 'strappingChartProfiles', component: StrappingChartComponent, canActivate: [AuthGuard] },\r\n { path: 'dataarea', component: DataAreaComponent, canActivate: [AuthGuard] },\r\n { path: 'devicemapping', component: DeviceMappingComponent, canActivate: [AuthGuard] },\r\n { path: 'assessment', component: AssessmentComponent, canActivate: [AuthGuard] },\r\n { path: 'deviceproductgroup', component: DeviceGroupComponent, canActivate: [AuthGuard] },\r\n { path: 'driver', component: DriverManagementComponent, canActivate: [AuthGuard] },\r\n { path: 'exportconfigurationset', component: ExportConfigurationComponent, canActivate: [AuthGuard] },\r\n { path: 'factor', component: FactorComponent, canActivate: [AuthGuard] },\r\n { path: 'fleetmanagement', component: FleetManagementComponent, canActivate: [AuthGuard] },\r\n { path: 'importconfigurationset', component: ImportConfigurationComponent, canActivate: [AuthGuard] },\r\n { path: 'loadpoint', component: LoadPointComponent, canActivate: [AuthGuard] },\r\n { path: 'loginSSO', component: LoginSSOComponent, },\r\n { path: 'manageImages', component: ManageImagesComponent, canActivate: [AuthGuard] },\r\n { path: 'paymentterm', component: PaymentTermComponent, canActivate: [AuthGuard] },\r\n { path: 'pricegroup', component: PriceGroupComponent, canActivate: [AuthGuard] },\r\n { path: 'printTemplates', component: PrintTemplatesComponent, canActivate: [AuthGuard] },\r\n { path: 'printTexts', component: PrintTextsComponent, canActivate: [AuthGuard] },\r\n { path: 'product', component: ProductComponent, canActivate: [AuthGuard] },\r\n { path: 'productgroup', component: ProductGroupComponent, canActivate: [AuthGuard] },\r\n { path: 'productTransformation', component: ProductTransformationComponent, canActivate: [AuthGuard] },\r\n { path: 'productBlends', component: ProductBlendsComponent, canActivate: [AuthGuard] },\r\n { path: 'safetychecktext', component: SafetyCheckComponent, canActivate: [AuthGuard] },\r\n { path: 'serverConfiguration', component: ServerConfigurationComponent, canActivate: [AuthGuard] },\r\n { path: 'taxRates', component: TaxRatesComponent, canActivate: [AuthGuard] },\r\n { path: 'transpacconfiguration', component: TranspacConfigurationComponent, canActivate: [AuthGuard] },\r\n { path: 'timelogdefinitions', component: TimeLogComponent, canActivate: [AuthGuard] },\r\n { path: 'users', component: UsersComponent, canActivate: [AuthGuard] },\r\n { path: 'vehicle', component: VehicleComponent, canActivate: [AuthGuard] },\r\n { path: 'modules', component: ModulesComponent, canActivate: [AuthGuard] },\r\n { path: '**', redirectTo: '/home' }\r\n];\r\n@NgModule({\r\n imports: [RouterModule.forRoot(appRoutes, { useHash: true })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRouting { }\r\n","import { Component } from '@angular/core';\r\nimport { AppService } from './app.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n pageTitle = 'Login';\r\n constructor(private app$: AppService) { }\r\n ngOnInit(): void {\r\n this.app$.PageTitleValue.subscribe((res: any) => {\r\n setTimeout(() => {\r\n this.pageTitle = res;\r\n })\r\n });\r\n }\r\n}","\r\n\r\n
\r\n \r\n
\r\n","import { Observable } from \"rxjs\";\r\nimport cloneDeep from 'lodash/cloneDeep';\r\n\r\nexport interface EntityInterface {\r\n\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n\r\n getList: (optionalKey) => Observable;\r\n getEntity: (key) => Observable;\r\n\r\n ListRetrieved: Observable;\r\n\r\n notifyRetrieved: (data: T[]) => void;\r\n}\r\n\r\n\r\nexport class Entity {\r\n\r\n key: any = {};\r\n name: string;\r\n created: boolean;\r\n modified: boolean;\r\n\r\n original: T = {} as T;\r\n private entityValue: T = {} as T;\r\n\r\n constructor() {\r\n this.created = true;\r\n }\r\n\r\n set value(entityValue: T) {\r\n this.entityValue = entityValue;\r\n this.original = cloneDeep(entityValue);\r\n this.created = false;\r\n }\r\n\r\n get value(): T {\r\n return this.entityValue;\r\n }\r\n\r\n\r\n restore() {\r\n this.entityValue = cloneDeep(this.original);\r\n this.modified = false;\r\n }\r\n}\r\n\r\n\r\nexport interface Enum {\r\n\r\n id: number;\r\n name: string;\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { DxDataGridModule, DxTooltipModule, DxToastModule, DxLoadPanelModule, DxPopupModule, DxDropDownBoxModule, DxButtonModule } from 'devextreme-angular';\r\nimport { ProductsModule } from '@products/products.module';\r\nimport { FleetModule } from './fleet/fleet.module';\r\nimport { SettingsModule } from './settings/settings.module';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { SharedModule } from './_shared/shared.module';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { LoginSSOComponent } from './login-sso/login-sso.component';\r\nimport { LoadPointComponent } from './load-point/load-point.component';\r\nimport { NgxSmartModalModule, NgxSmartModalService } from 'ngx-smart-modal';\r\nimport { CustomersModule } from './customers/customers.module';\r\nimport { SafetyCheckComponent } from './safety-check/safety-check.component';\r\nimport { PdiInputModule, PdiButtonsModule, PdiFooterModule, PdiNotificationsModule } from '@pdi/platform-angular-template';\r\nimport { AppComponent } from './app.component';\r\nimport { AppRouting } from './app-routing';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n LoginComponent,\r\n FooterComponent,\r\n HeaderComponent,\r\n LoginSSOComponent,\r\n LoadPointComponent,\r\n SafetyCheckComponent,\r\n ],\r\n\r\n imports: [\r\n BrowserModule,\r\n HttpClientModule,\r\n FleetModule,\r\n ProductsModule,\r\n SettingsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SharedModule,\r\n CommonModule,\r\n DxDataGridModule,\r\n DxTooltipModule,\r\n DxLoadPanelModule,\r\n DxToastModule,\r\n DxPopupModule,\r\n DxDropDownBoxModule,\r\n DxButtonModule,\r\n NgxSmartModalModule.forRoot(),\r\n CustomersModule,\r\n PdiInputModule,\r\n PdiButtonsModule,\r\n PdiFooterModule,\r\n PdiNotificationsModule,\r\n AppRouting,\r\n ],\r\n providers: [NgxSmartModalService],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { BehaviorSubject, forkJoin, Subject } from \"rxjs\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AppService {\r\n\r\n constructor(private _http: HttpClient, private router$: Router,) {\r\n\r\n }\r\n private APIVersion: Subject = new Subject();\r\n APIVersionDetails = this.APIVersion.asObservable();\r\n private loginUser: BehaviorSubject<{}> = new BehaviorSubject({});\r\n loginUserInfo = this.loginUser.asObservable();\r\n private PageTitle: Subject = new Subject();\r\n PageTitleValue = this.PageTitle.asObservable();\r\n dateFormat: string = this.getDateFormat(navigator.language); \r\n requestOptions() {\r\n return { headers: { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') } };\r\n }\r\n updateUserInfo(data) {\r\n this.loginUser.next(data);\r\n }\r\n updateAPIVersion(data) {\r\n this.APIVersion.next(data);\r\n }\r\n getLoginUserInfo() {\r\n return this._http.get(environment.endpoint.userLoginInfo, this.requestOptions());\r\n }\r\n getModulesStatus() {\r\n return this._http.get(environment.endpoint.modulesStatus, this.requestOptions());\r\n }\r\n exportData(type) {\r\n return this._http.get(environment.endpoint.exportURL + '/' + type, this.requestOptions());\r\n }\r\n exportVehicles(deviceIds) {\r\n return this._http.put(environment.endpoint.exportURL + '/device', deviceIds, this.requestOptions());\r\n }\r\n getAPIVersion() {\r\n return this._http.get(environment.endpoint.apiversion, this.requestOptions()).subscribe(res => {\r\n this.updateAPIVersion(res);\r\n }, (err => {\r\n this.updateAPIVersion({ ApiFileVersion: \"no API connection\", ApiFileInfoVersion: \"\", DbVersion: 0, connectionFailed: true });\r\n }));\r\n }\r\n\r\n getUserDetails() {\r\n var bearerToken = sessionStorage.getItem(\"Bearer\");\r\n if (bearerToken != null) {\r\n forkJoin([this.getLoginUserInfo(), this.getModulesStatus()]).subscribe(res => {\r\n let userData: object = res[0];\r\n let moduleStatus: object = res[1];\r\n let loginUserInfo = { ...userData, ...moduleStatus, ...{ isAuthenticated: true } }\r\n this.updateUserInfo(loginUserInfo);\r\n });\r\n }\r\n return;\r\n }\r\n setScreenTitle(title: string): any {\r\n this.PageTitle.next(title);\r\n }\r\n getScreenTitle() {\r\n return this.PageTitle;\r\n }\r\n redirectToLogin(): any {\r\n this.router$.navigate(['login']);\r\n }\r\n redirectTo(page): any {\r\n this.router$.navigate([page]);\r\n }\r\n\r\n private screenReady: Subject = new Subject();\r\n ScreenReady = this.screenReady.asObservable();\r\n notifyScreenReady() {\r\n this.screenReady.next();\r\n }\r\n\r\n private screenBusy: Subject = new Subject();\r\n ScreenBusy = this.screenBusy.asObservable();\r\n notifyScreenBusy() {\r\n this.screenBusy.next();\r\n }\r\n\r\n\r\n getAnimationSettings(): any {\r\n\r\n return {\r\n show: {\r\n type: 'fadeIn',\r\n duration: 250,\r\n from: {\r\n scale: 0.1,\r\n opacity: 0\r\n }\r\n },\r\n hide: {\r\n type: 'fadeOut',\r\n duration: 250,\r\n from: {\r\n scale: 0.1,\r\n opacity: 1\r\n }\r\n }\r\n };\r\n }\r\n\r\n\r\n getShadingColor(): any {\r\n return 'rgba(85, 85, 85, 0.5)';\r\n }\r\n\r\n\r\n allowOnlyNumbers(evt) {\r\n evt = (evt) ? evt : window.event;\r\n var charCode = (evt.which) ? evt.which : evt.keyCode;\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n\r\n getImageType(Image: string): string {\r\n\r\n switch (Image.charAt(0)) {\r\n case '/': return 'jpg';\r\n case 'i': return 'png';\r\n case 'R': return 'gif';\r\n case 'Q': return 'bmp';\r\n case 'U': return 'webP';\r\n default: return undefined;\r\n }\r\n }\r\n getDateFormat(locale: string) {\r\n const options: Intl.DateTimeFormatOptions = { day: '2-digit', month: '2-digit', year: 'numeric' };\r\n const formatter = new Intl.DateTimeFormat(locale, options);\r\n const parts = formatter.formatToParts();\r\n const formatString = parts.map(part => {\r\n switch (part.type) {\r\n case 'day': return 'dd';\r\n case 'month': return 'MM';\r\n case 'year': return 'yyyy';\r\n default: return part.value;\r\n }\r\n }).join('');\r\n \r\n return (typeof formatString != 'undefined' && formatString) ? formatString : 'MM/dd/yyyy';\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n constructor(private router: Router) {}\r\n\r\n canActivate(): boolean {\r\n var bearerToken = sessionStorage.getItem(\"Bearer\");\r\n if (bearerToken != null) {\r\n return true;\r\n } else {\r\n this.router.navigate(['/login']); // Redirect to login page if not authenticated\r\n return false;\r\n }\r\n }\r\n}","export var dxDataGridHeightAdjustment = 25;\r\n\r\nexport function IsUndefinedOrNull(val) {\r\n return val === undefined || val === null;\r\n}\r\n\r\nexport function isNumberOnly(event:any) {\r\n return (event.charCode != 8 && event.charCode == 0 || (event.charCode == 46) || (event.charCode >= 48 && event.charCode <= 57))\r\n}\r\n\r\nexport function checkPattern(type: any, val: any) {\r\n if (val && type) {\r\n let patternObj = {\r\n 'int': /^[-+]?[0-9]*$/,\r\n 'float': /^[-+]?[0-9]*\\.?[0-9]+$/\r\n }\r\n return patternObj[type]?.test(val);\r\n }\r\n return true;\r\n}\r\n\r\nexport function areArraysEqual(arr1: any[], arr2: any[]): boolean {\r\n return arr1.length === arr2.length && arr1.every((value, index) => value === arr2[index]);\r\n}\r\n\r\nexport function getConfigLables(configId: any) {\r\n let data = {}\r\n switch (configId) {\r\n case 282:\r\n data = {\r\n addModalTitle: \"Add New Register\",\r\n addButtonLabel: \"Add Register\",\r\n listLabel: \"Register \"\r\n }\r\n break;\r\n case 408:\r\n data = {\r\n addModalTitle: \"Emissions Factors\",\r\n addButtonLabel: \"Add Factor Group\",\r\n listLabel: \"Group \"\r\n }\r\n break;\r\n\r\n default:\r\n data = {\r\n addModalTitle: \"Add\",\r\n addButtonLabel: \"Add \",\r\n listLabel: \"List\"\r\n }\r\n break;\r\n }\r\n return data;\r\n}\r\n\r\nexport function displayZeroValueText(list, elementId, key, text) {\r\n if(list)\r\n {\r\n var displayText = list.filter(a => a[key] == 0).map(a => a[text]);\r\n if (displayText) {\r\n setTimeout(() => {\r\n if (document.getElementById(elementId))\r\n document.getElementById(elementId).firstElementChild.querySelector('input').value = displayText;\r\n });\r\n }\r\n }\r\n}\r\nexport function refreshElement(component,variable)\r\n{\r\n component[variable] = true;\r\n setTimeout(()=>{\r\n component[variable] = false; \r\n })\r\n}\r\n\r\nexport function makePDIDropDownOptions(arr, idKey, lableKey) {\r\n if (!arr) return [];\r\n return arr?.map((obj: any) => {\r\n return {\r\n key: obj[idKey],\r\n label: obj[lableKey],\r\n };\r\n });\r\n}\r\n\r\nexport class dxSelectOptions{\r\n searchMode = 'contains';\r\n searchTimeout = 200;\r\n minSearchLength = 0;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { DataArea, CustomerDataAreaInterface } from './customer-data-area.model';\r\nimport { CustomerDataAreaService } from './customer-data-area.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { SharedService } from '@app/_shared/shared.service';\r\nimport { dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-customer-data-area',\r\n templateUrl: './customer-data-area.component.html',\r\n styleUrls: ['./customer-data-area.component.scss'],\r\n providers: [\r\n {\r\n provide: CustomerDataAreaInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new CustomerDataAreaService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\n\r\nexport class CustomerDataAreaComponent implements OnInit {\r\n\r\n private unsubscribe$ = new Subject();\r\n entityName = 'Data Area';\r\n gridDataSource: any;\r\n entityData: Entity;\r\n collapseColor = 'green';\r\n isAddForm = 0;\r\n newEntityData: DataArea;\r\n entityDataDeleteConfirm = false;\r\n entityDataDeleteConfirmMsg = \"Data area will be removed for both products and customers. Are you sure you want to delete?\";\r\n CSCollapse = false;\r\n countries: any;\r\n customerTypes: any;\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n private dataGridCustomerSettings: DxDataGridComponent;\r\n @ViewChild('dataGridCustomerSettings', { static: false }) set dataGridSPContent(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridCustomerSettings = content;\r\n }\r\n }\r\n\r\n constructor(\r\n private dataArea$: CustomerDataAreaInterface,\r\n private app$: AppService,\r\n private errors$: ErrorsService,\r\n private actions$: ActionsService,\r\n private shared$: SharedService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.actions();\r\n forkJoin({\r\n dataAreaList: this.dataArea$.getList(0),\r\n newEntity: this.dataArea$.getNewEntity(),\r\n countries: this.shared$.getCountryList(),\r\n customerTypes: this.shared$.getCustomerTypeList(),\r\n }).subscribe(\r\n res => {\r\n this.dataArea$.notifyRetrieved(res['dataAreaList']);\r\n this.newEntityData = res['newEntity'];\r\n this.countries = res['countries'];\r\n this.customerTypes = res['customerTypes'];\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n actions() {\r\n this.dataArea$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.gridDataSource = new ArrayStore({\r\n data: data,\r\n key: ['Id']\r\n });\r\n }\r\n });\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getList() {\r\n this.dataArea$.getList(0).subscribe(listWithCreated => {\r\n this.dataArea$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n\r\n this.dataArea$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.getList();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n deleteConfirm() {\r\n let param = { Id: this.entityData.value.Id };\r\n this.dataArea$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onContentReady(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Data Areas Found\";\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData) {\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.app$.notifyScreenBusy();\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n this.dataArea$.getEntity(key).subscribe((res: any) => {\r\n this.entityDataDeleteConfirm = true;\r\n this.app$.notifyScreenReady();\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.entityData.value = cloneDeep(res);\r\n this.changeDetectorRef.detectChanges();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private reset() {\r\n this.entityData.restore();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.entityData = new Entity();\r\n this.entityData.value = cloneDeep(this.newEntityData);\r\n this.entityData.created = true;\r\n this.collapseColor = 'yellow';\r\n this.changeDetectorRef.detectChanges();\r\n this.isAddForm = 1;\r\n }\r\n\r\n onContentReadyCustomerSettings(e: any) {\r\n this.dataGridCustomerSettings.noDataText = this.dataGridCustomerSettings.instance.totalCount() ? '' : \"No Data\";\r\n }\r\n\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Data Area Name is required\r\n \r\n \r\n Data Area Name cannot be longer than 20 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Customer Settings\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
Customer Settings
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity } from \"@app/app.model\";\r\n\r\nexport class DataArea {\r\n Id: number;\r\n Name: string;\r\n Number: string;\r\n CustomerTypePostcodes: any;\r\n ProductGroups: any;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class CustomerDataAreaInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (param: any) => Observable;\r\n getList: (param: any) => Observable;\r\n getEntity: (param: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: DataArea[]) => void;\r\n getNewEntity: () => Observable;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Entity } from '@app/app.model';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { DataArea, CustomerDataAreaInterface } from './customer-data-area.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomerDataAreaService implements CustomerDataAreaInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n notifyRetrieved(data: DataArea[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.products.dataArea + \"/customertype/\",\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getList(lookup: any): Observable {\r\n return this._http.get(e.endpoint.products.dataArea + '/list/' + lookup, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.products.dataArea + '/' + param.Id, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getEntity(param: any) {\r\n return this._http.get(e.endpoint.products.dataArea + \"/customertype/\" + param.Id, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewEntity(): Observable {\r\n return this._http.get(e.endpoint.products.dataArea + '/newdataarea', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n \r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { Customer, CustomerInterface } from './customer.model';\r\nimport { CustomerService } from './customer.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { CompanyService } from '@settings/company/company.service';\r\nimport { IsUndefinedOrNull, dxDataGridHeightAdjustment, displayZeroValueText, refreshElement, makePDIDropDownOptions, dxSelectOptions } from '@app/common_helper';\r\nimport { SharedService } from '@app/_shared/shared.service';\r\nimport { ProductService } from '@products/product/product.service';\r\n\r\n@Component({\r\n selector: 'facnm-customer',\r\n templateUrl: './customer.component.html',\r\n styleUrls: ['./customer.component.scss'],\r\n providers: [\r\n {\r\n provide: CustomerInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new CustomerService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class CustomerComponent implements OnInit {\r\n\r\n constructor(\r\n private customers$: CustomerInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private shared$: SharedService,\r\n private company$: CompanyService,\r\n private products$: ProductService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n private dataGridUnloadPoint: DxDataGridComponent;\r\n @ViewChild('dataGridUnloadPoint', { static: false }) set unloadPointContent(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridUnloadPoint = content;\r\n }\r\n }\r\n\r\n private dataGridSpcificPrice: DxDataGridComponent;\r\n @ViewChild('dataGridSpcificPrice', { static: false }) set dataGridSPContent(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridSpcificPrice = content;\r\n }\r\n }\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n private unsubscribe$ = new Subject();\r\n VCollapse = false;\r\n GICollapse = false;\r\n ADCollapse = false;\r\n CICollapse = false;\r\n UPCollapse = false;\r\n OTCollapse = false;\r\n saveTypeProgress: boolean;\r\n modalError: string;\r\n gridData: ArrayStore;\r\n isAddForm = 0;\r\n collapseColor = 'green';\r\n entityName = 'Customers';\r\n entityNameNotification = \"Customer\";\r\n entityData: Entity;\r\n newEntityData: Customer;\r\n newEntity: any;\r\n customDataSource: any;\r\n user: any;\r\n countries: any;\r\n specialPriceGroups: any;\r\n companies: any;\r\n languages: any;\r\n customerTypes: any;\r\n generalProductList: any;\r\n productList: any;\r\n productDropdown: any;\r\n billQuantityTypeList: any;\r\n nonPrintCompanies: any;\r\n autoEmailOptionsList: any;\r\n signatureSettingsOptions: any;\r\n productOptions: any;\r\n printOptions: any;\r\n strappingChartProfileDropdown: any;\r\n dippingTypes: any;\r\n paymentTerms: any;\r\n unloadPoint: any;\r\n isUnloadPointSelected: boolean;\r\n isIdenticalToCustomer: boolean;\r\n deleteWarning: boolean;\r\n lastDeliveryLocation: {};\r\n showProductModal: boolean;\r\n unloadPointProductName: any;\r\n showBillingCustomerModal: boolean;\r\n filterOptions = {\r\n CustomerNo: null,\r\n CustomerName: null,\r\n CustomerAddress: null,\r\n GridPagerOptions: { PageIndex: 0, PageSize: 20, TotalPages: null }\r\n };\r\n PageSize = 20;\r\n TotalCount = null;\r\n originalId: any;\r\n originalPos: any;\r\n showCustomerTypeModal = false;\r\n customerType = { Id: \"\", Name: \"\" }\r\n searchExprOption = ['Name', 'Code'];\r\n defaultSCPItem = { Id: null, ProfileId: \"Select\" };\r\n defaultDippingType = { id: null, name: \"Default\" };\r\n paymentTermsDef = { Id: null, Name: \"None\" };\r\n popoverVisibility: boolean[] = [];\r\n defaultBillQuantityType = {Id: null, Name: \"None\"};\r\n dxSelectOptions = new dxSelectOptions();\r\n ngOnInit(): void {\r\n this.actions();\r\n this.getCustomDataSource();\r\n this.app$.setScreenTitle(this.entityName);\r\n this.app$.loginUserInfo.subscribe((res: any) => {\r\n this.user = {};\r\n this.user.isStrappingChartEnabled = res.IsStrappingChartEnabled;\r\n });\r\n\r\n forkJoin({\r\n newEntity: this.customers$.getNewEntity(),\r\n countries: this.shared$.getCountryList(),\r\n companies: this.shared$.getCompanies(0),\r\n specialPriceGroups: this.customers$.getSpecialPriceGroupList(),\r\n languages: this.shared$.getLanguageList(),\r\n customerTypes: this.shared$.getCustomerTypeList(),\r\n productList: this.customers$.getProductList(0),\r\n productDropdown: this.customers$.getProductDropdown(),\r\n nonPrintCompanies: this.company$.getNonPrintCompanyList(0),\r\n billQuantityTypeList: this.customers$.getBillQuantityTypeList(),\r\n autoEmailOptionsList: this.customers$.getAutoEmailOptionsList(),\r\n signatureSettingsOptions: this.customers$.getSignatureSettingsOptionList(),\r\n productOptions: this.customers$.getProductOptions(),\r\n printOptions: this.customers$.getPrintOptions(),\r\n strappingChartProfileDropdown: this.customers$.getStrappingChartProfile(),\r\n dippingTypes: this.customers$.getDippingType(),\r\n\r\n }).subscribe(\r\n (res: any) => {\r\n this.newEntityData = res['newEntity'];\r\n this.countries = res['countries'];\r\n this.companies = res['companies'];\r\n this.specialPriceGroups = res['specialPriceGroups'];\r\n this.languages = res['languages'];\r\n this.customerTypes = res['customerTypes'];\r\n this.productList = res['productList'];\r\n this.generalProductList = cloneDeep(res['productList'])\r\n this.productDropdown = res['productDropdown'];\r\n this.nonPrintCompanies = res['nonPrintCompanies'];\r\n this.billQuantityTypeList = res['billQuantityTypeList'];\r\n this.billQuantityTypeList.splice(0,0,this.defaultBillQuantityType);\r\n this.autoEmailOptionsList = res['autoEmailOptionsList'];\r\n this.signatureSettingsOptions = res['signatureSettingsOptions'].filter((a: any) => a.name != 'None');\r\n this.productOptions = res['productOptions'].filter((a: any) => a.name != 'None');\r\n this.printOptions = res['printOptions'].filter((a: any) => a.name != 'None');\r\n this.strappingChartProfileDropdown = res['strappingChartProfileDropdown'];\r\n this.strappingChartProfileDropdown.splice(0, 0, this.defaultSCPItem);\r\n this.dippingTypes = res['dippingTypes'];\r\n this.dippingTypes.splice(0, 0, this.defaultDippingType);\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n actions() {\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getCustomDataSource() {\r\n this.customDataSource = new CustomStore({\r\n key: [\"Id\", \"Position\"],\r\n load: (loadOptions) => {\r\n if (loadOptions != undefined) {\r\n this.filterOptions.CustomerName = null;\r\n this.filterOptions.CustomerAddress = null;\r\n this.filterOptions.CustomerNo = null;\r\n if (loadOptions.filter != undefined) {\r\n if (loadOptions.filter.length) {\r\n if (!Array.isArray(loadOptions.filter[0])) {\r\n let filter = loadOptions.filter;\r\n loadOptions.filter = [];\r\n loadOptions.filter.push(filter);\r\n }\r\n }\r\n for (var i = 0; i < loadOptions.filter.length; i++) {\r\n if (loadOptions.filter[i].length == 3) {\r\n if (loadOptions.filter[i][0] == \"FullName\") this.filterOptions.CustomerName = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"Address\") this.filterOptions.CustomerAddress = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"Number\") this.filterOptions.CustomerNo = loadOptions.filter[i][2];\r\n }\r\n }\r\n }\r\n this.filterOptions.GridPagerOptions.PageSize = (IsUndefinedOrNull(loadOptions.take) == true) ? this.PageSize : loadOptions.take;\r\n this.filterOptions.GridPagerOptions.PageIndex = ((IsUndefinedOrNull(loadOptions.take) && IsUndefinedOrNull(loadOptions.skip)) == true) ? 0 : (loadOptions.skip / loadOptions.take);\r\n }\r\n return this.customers$.getList(this.filterOptions)\r\n .toPromise()\r\n .then((response: any) => {\r\n this.app$.notifyScreenReady();\r\n return {\r\n data: response.CustomerListVM,\r\n totalCount: response.TotalCount,\r\n };\r\n })\r\n .catch((errorNetwork) => this.errors$.handleServerErrors(errorNetwork));\r\n }\r\n });\r\n }\r\n\r\n onContentReadyGrid(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Customers Found\";\r\n }\r\n\r\n onCellPrepared(e: any) {\r\n if (e.rowType === \"data\" && e.column.dataField === \"Address\") {\r\n let addressLine2 = [];\r\n if (e.data.PostcodeString != null) addressLine2.push(e.data.PostcodeString);\r\n if (e.data.City != null) addressLine2.push(e.data.City);\r\n if (e.data.District != null) addressLine2.push(e.data.District);\r\n if (e.data.State != null) addressLine2.push(e.data.State);\r\n e.cellElement.innerHTML = e.data.Address + '
' + addressLine2.join(\" \");\r\n } else if (e.rowType === \"data\" && e.column.dataField === \"FullName\") {\r\n e.cellElement.innerHTML = e.data.Name1 + '
' + e.data.Name2;\r\n }\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => {\r\n this.app$.notifyScreenReady();\r\n })\r\n return;\r\n }\r\n\r\n var id = -1;\r\n this.entityData.value.UnloadPoints.forEach((unloadPoint: any) => {\r\n if (unloadPoint.CustomerId == null && unloadPoint.CustomerPos == null) {\r\n unloadPoint.CustomerId = this.entityData.value.Id;\r\n unloadPoint.CustomerPos = this.entityData.value.Position;\r\n unloadPoint.Id = id;\r\n id--;\r\n }\r\n });\r\n\r\n this.entityData.value.originalId = this.originalId;\r\n this.entityData.value.originalPos = this.originalPos;\r\n\r\n this.customers$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n private deleteConfirm() {\r\n let param = { Id: this.entityData.value.Id, Position: this.entityData.value.Position };\r\n this.customers$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.refreshGrid();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n private addNewEntity() {\r\n this.resetUnLoadPointObjects();\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n\r\n this.entityData = new Entity();\r\n this.entityData.value = cloneDeep(this.newEntityData);\r\n this.entityData.created = true;\r\n this.entityData.value.SpecialPriceProducts = [];\r\n this.entityData.value.UnloadPoints = [];\r\n this.entityData.value.DeliveryCustomers = [];\r\n this.changeDetectorRef.detectChanges();\r\n this.productList = cloneDeep(this.generalProductList);\r\n\r\n this.originalId = 0;\r\n this.originalPos = 0;\r\n this.isAddForm = 1;\r\n this.collapseColor = 'yellow';\r\n\r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.resetUnLoadPointObjects();\r\n this.app$.notifyScreenBusy();\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n this.customers$.getEntity(key).subscribe((res: any) => {\r\n this.app$.notifyScreenReady();\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.entityData.value = cloneDeep(res);\r\n refreshElement(this,'customerTypeBillingOrDeliverLoading');\r\n this.changeDetectorRef.detectChanges();\r\n this.originalId = res.Id;\r\n this.originalPos = res.Position;\r\n if(this.entityData.value.AutoEmailOptions == 0){\r\n displayZeroValueText(this.autoEmailOptionsList,'autoEmailOptions','Id','Name');\r\n }\r\n if(this.entityData.value.TypeId == 0){\r\n displayZeroValueText(this.customerTypes,'customerTypeId','Id','Name');\r\n }\r\n if(this.entityData.value.CountryId == 0){\r\n displayZeroValueText(this.countries,'countryId','Id','Name');\r\n }\r\n if (!this.companies.find(o => o.Id == this.entityData.value.CompanyId)) {\r\n this.entityData.value.CompanyId = null;\r\n let error = {\r\n modelState: \"\",\r\n message: \"Invalid Company is detected.\",\r\n details: \"\",\r\n redirectToLogin: false,\r\n };\r\n this.errors$.handleServerErrors(error);\r\n }\r\n if (!this.nonPrintCompanies.find(o => o.Id == this.entityData.value.CompanyId)) {\r\n this.entityData.value.CompanyId = null;\r\n }\r\n\r\n this.getPaymentTermList(this.entityData.value.CompanyId);\r\n\r\n if (this.entityData.value.PriceGroupId != null && this.entityData.value.PriceGroupId != 0) {\r\n this.getProductList(this.entityData.value.PriceGroupId);\r\n }\r\n else {\r\n this.productList = cloneDeep(this.generalProductList);\r\n }\r\n this.refreshSpecialPriceGrid();\r\n this.clearSelectAndRefreshUnloadPoint();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n getPaymentTermList(companyId) {\r\n this.customers$.getPaymentTermList(companyId).subscribe((res: any) => {\r\n this.paymentTerms = res;\r\n this.paymentTerms.splice(0, 0, this.paymentTermsDef);\r\n refreshElement(this,'paymentTermsLoading');\r\n if(this.entityData.value.PaymentTermsId == 0){\r\n displayZeroValueText(this.paymentTerms,'paymentTermsId','Id','Name');\r\n }\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n onCompanyChange = function () {\r\n this.getPaymentTermList(this.entityData.value.CompanyId);\r\n };\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n }\r\n\r\n private reset() {\r\n this.entityData.restore();\r\n let selectedRow = this.dataGridUnloadPoint.instance.getSelectedRowKeys();\r\n if (selectedRow.length) {\r\n this.dataGridUnloadPoint.instance.clearSelection();\r\n this.dataGridUnloadPoint.instance.selectRows(selectedRow, false);\r\n }\r\n if (IsUndefinedOrNull(this.entityData.value.SpecialPriceProducts)) {\r\n this.entityData.value.SpecialPriceProducts = [];\r\n }\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData) {\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n\r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n\r\n onCustomerTypeChange() {\r\n if (this.originalId != 0)\r\n this.entityData.value.Number = '';\r\n }\r\n\r\n onPriceGroupChange() {\r\n if (this.entityData.value.PriceGroupId != null && this.entityData.value.PriceGroupId != undefined && this.entityData.value.PriceGroupId > 0) {\r\n this.getProductList(this.entityData.value.PriceGroupId);\r\n } else {\r\n this.productList = cloneDeep(this.generalProductList);\r\n }\r\n }\r\n\r\n getProductList(priceGroupId) {\r\n this.customers$.getProductList(priceGroupId).subscribe((data) => {\r\n this.productList = data;\r\n this.refreshSpecialPriceGrid();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n refreshSpecialPriceGrid() {\r\n if (this.dataGridSpcificPrice) {\r\n this.dataGridSpcificPrice.instance.refresh();\r\n }\r\n }\r\n\r\n unloadPointRowRemoving(event: any) {\r\n if (this.entityData && this.entityData.value.UnloadPoints.length < 2) {\r\n event.cancel = true; // Cancel the deletion\r\n this.deleteWarning = true;\r\n }\r\n }\r\n\r\n resetUnLoadPointObjects() {\r\n this.unloadPoint = {};\r\n this.lastDeliveryLocation = {};\r\n this.isUnloadPointSelected = false;\r\n }\r\n\r\n addNewUnloadPoint = function () {\r\n let unloadPoint = {};\r\n let id = 1;\r\n if (this.entityData && this.entityData.value.UnloadPoints?.length > 0) {\r\n let sortULP = this.entityData.value.UnloadPoints.sort((a, b) => b.Id - a.Id);\r\n id = sortULP[0].Id + 1;;\r\n }\r\n else {\r\n this.entityData.value.UnloadPoints = [];\r\n }\r\n unloadPoint['Id'] = id;\r\n this.entityData.value.UnloadPoints.push(unloadPoint);\r\n this.clearSelectAndRefreshUnloadPoint()\r\n }\r\n\r\n clearSelectAndRefreshUnloadPoint() {\r\n this.unloadPoint = {};\r\n if (this.dataGridUnloadPoint) {\r\n this.dataGridUnloadPoint.instance.deselectAll();\r\n this.dataGridUnloadPoint.instance.refresh();\r\n }\r\n }\r\n\r\n onContentReadyUnloadPoint(e) {\r\n this.dataGridUnloadPoint.noDataText = this.dataGridUnloadPoint.instance.totalCount() ? '' : \"No Data\";\r\n }\r\n\r\n onChangeUnloadPoint(selectedRowsInfo) {\r\n this.unloadPointProductName = '';\r\n if (selectedRowsInfo.selectedRowsData.length > 0 && !selectedRowsInfo.selectedRowsData[0].Changed) {\r\n let data = selectedRowsInfo.selectedRowsData[0];\r\n this.unloadPoint = this.entityData.value.UnloadPoints.find(a => a.Id == data.Id);\r\n if(this.unloadPoint.DipRequired == 0){\r\n displayZeroValueText(this.dippingTypes,'dipRequired','Id','Name');\r\n }\r\n \r\n this.isUnloadPointSelected = true;\r\n this.isIdenticalToCustomer = this.unloadPoint.Name1 == null;\r\n if (data.CustomerPos != data.LastDeliveryCustomerPos && data.LastDeliveryCustomerPos > 0) {\r\n this.customers$.getLastDeliveryLocationById(data.CustomerId, data.LastDeliveryCustomerPos).subscribe((res: any) => {\r\n this.lastDeliveryLocation = res;\r\n }, (err) => this.errors$.handleServerErrors(err));\r\n }\r\n else {\r\n this.lastDeliveryLocation = {};\r\n }\r\n if (this.unloadPoint.ProductId) {\r\n this.products$.getEntity(this.unloadPoint.ProductId).subscribe((res: any) => {\r\n this.unloadPointProductName = res.ShortProductName;\r\n }, (err) => this.errors$.handleServerErrors(err));\r\n }\r\n }\r\n else if (selectedRowsInfo.selectedRowsData.length > 0 && selectedRowsInfo.selectedRowsData[0].Changed) {\r\n this.unloadPoint = selectedRowsInfo.selectedRowsData[0];\r\n this.isUnloadPointSelected = true;\r\n this.isIdenticalToCustomer = this.unloadPoint.Name1 == null;\r\n }\r\n else {\r\n this.unloadPoint = {};\r\n this.isUnloadPointSelected = false;\r\n }\r\n }\r\n\r\n viewProductModal() {\r\n this.showProductModal = true;\r\n }\r\n\r\n productSelectionOk(data: any) {\r\n this.showProductModal = false;\r\n if (data.length > 0) {\r\n let selectedRowData = data[0];\r\n this.unloadPoint.ProductId = selectedRowData.Id;\r\n this.unloadPointProductName = selectedRowData.ShortProductName;\r\n }\r\n }\r\n\r\n productSelectionCancel() {\r\n this.showProductModal = false;\r\n }\r\n\r\n addCustomerType() {\r\n this.modalError = \"\";\r\n this.saveTypeProgress = true;\r\n this.shared$.saveCustomerType(this.customerType).subscribe(\r\n (okCreate) => {\r\n this.saveTypeProgress = false;\r\n this.actions$.notifyEntityCustomAction({ title: 'Success', message: 'Product Type created successfully' });\r\n this.closeCustomerType();\r\n this.shared$.getCustomerTypeList().subscribe((res) => {\r\n this.customerTypes = res;\r\n refreshElement(this,'customerTypeLoading');\r\n }, (err) => {\r\n this.errors$.handleServerErrors(err);\r\n })\r\n },\r\n (errorCreate) => {\r\n this.saveTypeProgress = false;\r\n this.modalError = errorCreate.message;\r\n }\r\n );\r\n }\r\n\r\n closeCustomerType() {\r\n this.customerType.Id = '';\r\n this.customerType.Name = '';\r\n this.showCustomerTypeModal = false;\r\n this.saveTypeProgress = false;\r\n this.modalError = '';\r\n }\r\n\r\n viewBillingCustomerModal() {\r\n this.showBillingCustomerModal = true;\r\n }\r\n\r\n billingCustomerSelectionOk(data: any) {\r\n this.showBillingCustomerModal = false;\r\n if (data.length > 0) {\r\n let selectedRowData = data[0];\r\n this.entityData.value.Id = selectedRowData.Id;\r\n this.entityData.value.DefaultCustomerName = selectedRowData.Name1;\r\n }\r\n }\r\n\r\n billingCustomerSelectionCancel() {\r\n this.showBillingCustomerModal = false;\r\n }\r\n\r\n languageLabel(item: any): string {\r\n return item ? item.Name + ' - ' + item.Code : '';\r\n }\r\n\r\n onRowInsertedSpecificPrice(event: any) {\r\n event.data.Changed = true;\r\n event.data.CustomerId = this.entityData.value.Id != undefined ? this.entityData.value.Id : 0;\r\n event.data.CustomerPosition = this.entityData.value.Position;\r\n }\r\n\r\n onContentReadySpecificPrice(e: any) {\r\n this.dataGridSpcificPrice.noDataText = this.dataGridSpcificPrice.instance.totalCount() ? '' : \"No Data\";\r\n }\r\n\r\n togglePopover(rowIndex: number) {\r\n this.popoverVisibility[rowIndex] = !this.popoverVisibility[rowIndex];\r\n }\r\n\r\n getGroupSpecialPrices(selectedId) {\r\n let rows = [];\r\n let selProduct = this.productList.filter(a => a.Id == selectedId);\r\n selProduct = selProduct ? selProduct[0] : null;\r\n if (selProduct && selProduct.GroupSpecialPrices && selProduct.GroupSpecialPrices.length > 0) {\r\n selProduct.GroupSpecialPrices.forEach((a: any) => {\r\n let row = { min: a.MinimumQty + \" \" + selProduct.QuantityUnit, price: a.Price + \"/\" + selProduct.PricePer + \" \" + selProduct.QuantityUnit };\r\n rows.push(row);\r\n });\r\n }\r\n return rows;\r\n }\r\n\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n\r\n strappingChartDisplayExpr(item) {\r\n return item ? (item.ProfileDescription ? `${item.ProfileId} - ${item.ProfileDescription}`: `${item.ProfileId}` ) :'';\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n General Information\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Number is required\r\n \r\n \r\n Number cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Name 1 is required\r\n \r\n \r\n Name 1 cannot be longer than 250 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Name 2 cannot be longer than 250 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{bqt.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{company.Name}}\r\n \r\n \r\n
\r\n
\r\n \r\n Please select a company\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Tax Group cannot be longer than 20 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{type.Name}}\r\n \r\n \r\n
\r\n
\r\n \r\n Please select a customer type\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
0\">\r\n
\r\n
\r\n
\r\n
Delivery Customers
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Address\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n Address is required\r\n \r\n \r\n Address cannot be longer than 250 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Post Code is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n City is required\r\n \r\n \r\n City cannot be longer than 250 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{country.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Contact\r\n Information\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{aeo.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Email is not valid\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Sale\r\n Information\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n Payment Terms\r\n
\r\n
\r\n \r\n \r\n {{paymentTerm.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Days of Payment\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n Purchase Order Number Mandatory\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Max Discount\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Cash Discount\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Cash Discount is not a valid number\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Price Group\r\n
\r\n
\r\n \r\n \r\n {{specialPriceGroup.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Customer Specific Price
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n 0\">\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Minimum QtyPrice
{{row.min}}{{row.price}}
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Unload\r\n Points\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Unload Points\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{dippingType.name }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Last Delivery Location\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Other\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n Language\r\n
\r\n
\r\n \r\n
\r\n
{{data.Name}}
\r\n
{{data.Code}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Print Company\r\n
\r\n
\r\n \r\n \r\n {{company.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n Print Info\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Print Options\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n Product Options\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{customerType.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n Ext. Nr. 1 cannot be longer than 50 characters\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n Ext. Nr. 2 cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Ext. Nr. 3 cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n\r\n\r\n\r\n
\r\n
\r\n
Cannot delete Unload Point, Atleast one Unload Point is required per customer.
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n Error! {{modalError}}\">\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\nexport class Customer {\r\n\r\n Id: number;\r\n Number: string;\r\n Name: string;\r\n CompanyId: any;\r\n Position: number;\r\n UnloadPoints: any;\r\n DefaultCustomerName: any;\r\n SpecialPriceProducts: any;\r\n DeliveryCustomers: any;\r\n PriceGroupId: any;\r\n originalId: any;\r\n originalPos: any;\r\n AutoEmailOptions: number;\r\n TypeId:number;\r\n PaymentTermsId:number;\r\n CountryId: number;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class CustomerInterface implements EntityInterface {\r\n\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: (data: any) => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: Customer[]) => void;\r\n\r\n getNewEntity: () => Observable;\r\n getPaymentTermList: (companyId: any) => Observable;\r\n getSpecialPriceGroupList: () => Observable;\r\n getProductList: (groupId: any) => Observable;\r\n getProductDropdown: () => Observable;\r\n // getUnloadPointById: (id: any, customerId: any, position: any) => Observable;\r\n getLastDeliveryLocationById: (customerId: any, position: any) => Observable;\r\n getBillQuantityTypeList: () => Observable;\r\n getAutoEmailOptionsList: () => Observable;\r\n getSignatureSettingsOptionList: () => Observable;\r\n getProductOptions: () => Observable;\r\n getPrintOptions: () => Observable;\r\n getStrappingChartProfile: () => Observable;\r\n getDippingType: () => Observable;\r\n\r\n //getCustomerCategoryList: () => Observable;\r\n //getPriceChangeableDropdown: () => Observable;\r\n //getSalesTaxDropdown: () => Observable;\r\n //getQuantityUnitDropdown: () => Observable;\r\n //getCustomerTypeDropdown: () => Observable;\r\n //getDangerousGoodsDropdown: () => Observable;\r\n //getCustomerDropdown: () => Observable;\r\n //getNewCustomer: () => Observable;\r\n //saveCustomerType: (data: any) => Observable;\r\n //getCustomerCategoryShapes: () => Observable;\r\n //saveCustomerCategory: (data: any) => Observable;\r\n //isCustomerCategoryDeletable: (data: any) => Observable;\r\n //deleteCustomerCategory: (data: any) => Observable;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Entity, Enum } from '@app/app.model';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { Customer, CustomerInterface } from './customer.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomerService implements CustomerInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n notifyRetrieved(data: Customer[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n getEntity(param: any): Observable {\r\n return this._http.get(e.endpoint.customers.customer + \"/\" + param.Id + \"/\" + param.Position, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.customers.customer + \"/\" + data.value.originalId + \"/\" + data.value.originalPos,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getList(param): Observable {\r\n return this._http.put(e.endpoint.customers.customer + '/filter/', param, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.customers.customer + '/' + param.Id + \"/\" + param.Position, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewEntity(): Observable {\r\n return this._http.get(e.endpoint.customers.customer + '/newcustomer', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n getBillingCustomers(param): Observable {\r\n return this._http.put(e.endpoint.customers.customer + '/billingcustomer/', param, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getPaymentTermList(companyId): Observable {\r\n if (companyId == null) companyId = 0;\r\n return this._http.get(e.endpoint.paymentTerms + '/paymentterms/' + companyId + '/1', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getSpecialPriceGroupList(): Observable {\r\n return this._http.get(e.endpoint.customers.specialPriceGroup + '/1', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getProductList(groupId): Observable {\r\n return this._http.get(e.endpoint.products.product + '/withgroupspecialprices/' + groupId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getProductDropdown(): Observable {\r\n return this._http.get(e.endpoint.products.product + '/dropdown/0', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getLastDeliveryLocationById(customerId, position): Observable {\r\n return this._http.get(e.endpoint.unloadPoint + \"/lastDeliveryLocation/\" + customerId + \"/\" + position, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getBillQuantityTypeList(): Observable {\r\n return this._http.get(e.endpoint.customers.customer + \"/GetBillQuantityTypeList\", {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n getAutoEmailOptionsList(): Observable {\r\n return this._http.get(e.endpoint.customers.customer + \"/GetAutoEmailOptionsList\", {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getSignatureSettingsOptionList(): Observable {\r\n return this._http.get(e.endpoint.customers.customer + \"/SignatureSettingsOptionList\", {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getProductOptions(): Observable {\r\n return this._http.get(e.endpoint.customers.customer + \"/ProductOptions\", {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getPrintOptions(): Observable {\r\n return this._http.get(e.endpoint.customers.customer + \"/PrintOptions\", {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getStrappingChartProfile(): Observable {\r\n return this._http.get(e.endpoint.strappingChartProfiles + \"/list\", {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getDippingType(): Observable {\r\n return this._http.get(e.endpoint.unloadPoint + \"/getUnloadPointDippingTypes\", {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from '@app/_shared/shared.module';\r\nimport { DxDataGridModule, DxTooltipModule, DxToastModule, DxLoadPanelModule, DxPopupModule, DxTagBoxModule, DxScrollViewModule, DxTemplateModule, DxSelectBoxModule, DxTextBoxModule, DxPopoverModule, DxButtonModule } from 'devextreme-angular';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgxSmartModalModule, NgxSmartModalService } from 'ngx-smart-modal';\r\n\r\nimport { CustomerComponent } from './customer/customer.component';\r\nimport { ProductPopupComponent } from '@products/product-popup/product-popup.component';\r\nimport { CustomerDataAreaComponent } from './customer-data-area/customer-data-area.component';\r\nimport { StrappingChartComponent } from './strapping-chart/strapping-chart.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomerComponent,\r\n ProductPopupComponent,\r\n CustomerDataAreaComponent,\r\n StrappingChartComponent\r\n\r\n ],\r\n providers: [NgxSmartModalService],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule,\r\n DxDataGridModule,\r\n DxTooltipModule,\r\n DxLoadPanelModule,\r\n DxToastModule,\r\n DxPopupModule,\r\n DxTagBoxModule,\r\n \r\n DxScrollViewModule,\r\n DxTemplateModule,\r\n DxSelectBoxModule,\r\n DxTemplateModule,\r\n DxTextBoxModule,\r\n DxPopoverModule,\r\n DxButtonModule,\r\n NgxSmartModalModule.forRoot()\r\n ]\r\n})\r\nexport class CustomersModule { }\r\n","import { ChangeDetectorRef,Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { StrappingChart, StrappingChartInterface } from './strapping-chart.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { StrappingChartService } from './strapping-chart.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { AppService } from '@app/app.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Subject, forkJoin } from 'rxjs';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { Entity } from '@app/app.model';\r\nimport { cloneDeep } from 'lodash';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { displayZeroValueText, dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-strapping-chart',\r\n templateUrl: './strapping-chart.component.html',\r\n styleUrls: ['./strapping-chart.component.scss'],\r\n providers: [\r\n {\r\n provide: StrappingChartInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new StrappingChartService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class StrappingChartComponent implements OnInit {\r\n showError: boolean;\r\n\r\n constructor(\r\n private strappingChart$: StrappingChartInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n private dataGridStrappingChart: DxDataGridComponent;\r\n @ViewChild('dataGridStrappingChart', { static: false }) set dataGridSPContent(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridStrappingChart = content;\r\n }\r\n }\r\n\r\n private unsubscribe$ = new Subject();\r\n gridData: ArrayStore;\r\n isAddForm = 0;\r\n entityName = 'Strapping Chart Profile';\r\n entityNameAdd = 'Chart Profile';\r\n entityData: Entity;\r\n newEntityData: StrappingChart;\r\n newEntity: any;\r\n shapes: any;\r\n orientations: any;\r\n collapseColor = 'green';\r\n GICollapse = false;\r\n incrementDuplicateErr = false;\r\n isEmptyErr = false;\r\n hasPermission = false;\r\n\r\n ngOnInit(): void {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.app$.loginUserInfo.pipe(takeUntil(this.unsubscribe$)).subscribe((user: any) => {\r\n if (!user.IsStrappingChartEnabled) {\r\n this.app$.notifyScreenReady();\r\n return;\r\n }\r\n this.hasPermission =true;\r\n this.actions();\r\n this.getList();\r\n forkJoin({\r\n newEntity: this.strappingChart$.getNewEntity(),\r\n orientation: this.strappingChart$.getOrientation(),\r\n shape: this.strappingChart$.getShape()\r\n }).subscribe(\r\n res => {\r\n this.newEntityData = res['newEntity'];\r\n this.orientations = res['orientation'];\r\n this.shapes = res['shape'];\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n })\r\n }\r\n actions() {\r\n this.strappingChart$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.gridData = new ArrayStore({\r\n data: data,\r\n key: [\"Id\"]\r\n });\r\n }\r\n });\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getList() {\r\n this.strappingChart$.getList().subscribe(listWithCreated => {\r\n this.strappingChart$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n let hasDuplicates = false;\r\n let isEmpty = false;\r\n let noIncrement = false;\r\n this.incrementDuplicateErr = false;\r\n this.isEmptyErr = false;\r\n this.showError = true;\r\n\r\n if (this.entityData.value.StrappingChartProfileIncrements.length > 0) {\r\n hasDuplicates = this.entityData.value.StrappingChartProfileIncrements.some((element, index, self) => {\r\n return self.findIndex((item) => item.Increment === element.Increment) !== index;\r\n })\r\n isEmpty = this.entityData.value.StrappingChartProfileIncrements.filter((a) => a.Increment == null || a.IncrementVolume == null).length > 0;\r\n } else {\r\n noIncrement = true;\r\n }\r\n\r\n if (this.entityForm.form.invalid || hasDuplicates || isEmpty || noIncrement) {\r\n if (hasDuplicates) this.incrementDuplicateErr = true;\r\n if (isEmpty) this.isEmptyErr = true;\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n\r\n this.strappingChart$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.getList();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n private deleteConfirm() {\r\n let param = {\r\n Id: this.entityData.value.Id,\r\n };\r\n this.strappingChart$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityNameAdd);\r\n this.entityData = new Entity();\r\n this.entityData.value = cloneDeep(this.newEntityData);;\r\n this.entityData.created = true;\r\n this.collapseColor = 'yellow';\r\n this.changeDetectorRef.detectChanges();\r\n this.isAddForm = 1;\r\n this.showError = false;\r\n\r\n }\r\n\r\n onContentReady(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Data Found\";\r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.showError = false;\r\n this.app$.notifyScreenBusy();\r\n this.strappingChart$.getEntity(key).subscribe((res: any) => {\r\n this.app$.notifyScreenReady();\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.entityData.value = cloneDeep(res);\r\n this.changeDetectorRef.detectChanges();\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n if(this.entityData.value.Orientation == 0){\r\n displayZeroValueText(this.orientations,'Orientation','id','name');\r\n }\r\n if(this.entityData.value.Shape == 0){\r\n displayZeroValueText(this.shapes,'Shape','id','name');\r\n }\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n }\r\n\r\n private reset() {\r\n this.entityData.restore();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData) {\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n\r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n\r\n onContentReadyStrappingChart(e: any) {\r\n this.dataGridStrappingChart.noDataText = this.dataGridStrappingChart.instance.totalCount() ? '' : \"No Data\";\r\n }\r\n\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Profile ID is required\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{orientation.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Description is required\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{shape.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Increments\r\n and Volume\r\n
\r\n
\r\n
\r\n
\r\n \r\n Chart Profile should have minimum one Increment and Volume\r\n \r\n
\r\n
\r\n \r\n Increment should be unique\r\n \r\n
\r\n
\r\n \r\n Increment and volume should not be empty\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Increments and Volume
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity } from \"@app/app.model\";\r\n\r\nexport class StrappingChart {\r\n Id: number;\r\n ProfileId: string;\r\n ProfileDescription: number;\r\n Orientation: number;\r\n Shape: number;\r\n Length: string;\r\n Diameter: number;\r\n Height: number;\r\n Position: any;\r\n StrappingChartProfileIncrements: any;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class StrappingChartInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: StrappingChart[]) => void;\r\n\r\n getNewEntity: () => Observable;\r\n getOrientation: () => Observable;\r\n getShape: () => Observable;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Entity } from '@app/app.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { StrappingChart, StrappingChartInterface } from './strapping-chart.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StrappingChartService implements StrappingChartInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n notifyRetrieved(data: StrappingChart[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.strappingChartProfiles+ \"/list/\", {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n \r\n getEntity(param: any): Observable {\r\n return this._http.get(e.endpoint.strappingChartProfiles + '/' + param.Id, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.strappingChartProfiles,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.strappingChartProfiles + \"/\" + param.Id, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewEntity() {\r\n return this._http.get(e.endpoint.strappingChartProfiles + '/newchartprofile', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getOrientation() {\r\n return this._http.get(e.endpoint.strappingChartProfiles + '/orientation', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getShape() {\r\n return this._http.get(e.endpoint.strappingChartProfiles + '/shape', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity, Enum } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { SharedService } from '@app/_shared/shared.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { AdditionalFields, AdditionalFieldsInterface, AdditionalFieldViewLocation, FieldLocationEng } from './additional-fields.model';\r\nimport { AdditionalFieldsService } from './additional-fields.service';\r\nimport { dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-additional-fields',\r\n templateUrl: './additional-fields.component.html',\r\n styleUrls: ['./additional-fields.component.scss'],\r\n providers: [\r\n {\r\n provide: AdditionalFieldsInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new AdditionalFieldsService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class AdditionalFieldsComponent implements OnInit {\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n private dataGridCompany: DxDataGridComponent;\r\n @ViewChild('dataGridCompany', { static: false }) set content(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridCompany = content;\r\n }\r\n }\r\n\r\n private dataGridTimeLog: DxDataGridComponent;\r\n @ViewChild('dataGridTimeLog', { static: false }) set timeLogContent(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridTimeLog = content;\r\n }\r\n }\r\n\r\n private dataGridLoadLocation: DxDataGridComponent;\r\n @ViewChild('dataGridLoadLocation', { static: false }) set loadLocationContent(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridLoadLocation = content;\r\n }\r\n }\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n gridData: ArrayStore;\r\n gridDataCompany: ArrayStore;\r\n gridDataTimeLog: ArrayStore;\r\n gridDataLoadLocation: ArrayStore;\r\n entityData: Entity;\r\n newEntityData: AdditionalFields;\r\n selectedVisibilityRow: any;\r\n selectedFieldLocation: any;\r\n GICollapse = false;\r\n ResCollapse = false;\r\n VCollapse = false;\r\n isFormVisibilityVisible = false;\r\n dataTypeList = [];\r\n fieldLocationsList = []\r\n viewModeList = [];\r\n viewModeListAll = [];\r\n companyList = [];\r\n timeLogTypeList = [];\r\n loadLocationTypes = [];\r\n isAddForm = 0;\r\n collapseColor = 'green';\r\n entityName = 'Additional Fields';\r\n\r\n FieldLocationEng = FieldLocationEng;\r\n\r\n constructor(\r\n private AdditionalFields$: AdditionalFieldsInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private shared$: SharedService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.actions();\r\n this.getList();\r\n this.app$.setScreenTitle(this.entityName);\r\n forkJoin({\r\n viewModeList: this.AdditionalFields$.getViewModeTypes(),\r\n dataTypeList: this.AdditionalFields$.getDataTypeList(),\r\n fieldLocationsList: this.AdditionalFields$.getFieldLocations(),\r\n companyList: this.shared$.getCompanyList(),\r\n timeLogTypeList: this.AdditionalFields$.getTimeLogTypeList(),\r\n loadLocationTypes: this.AdditionalFields$.getLoadLocationTypes()\r\n }).subscribe(\r\n res => {\r\n this.dataTypeList = res['dataTypeList'];\r\n this.fieldLocationsList = res['fieldLocationsList'];\r\n let viewModeList = res['viewModeList'].filter(d => d.id != 0);\r\n this.viewModeListAll = [...viewModeList];\r\n this.viewModeList = [...viewModeList];\r\n this.companyList = res['companyList'];\r\n this.timeLogTypeList = res['timeLogTypeList'];\r\n this.loadLocationTypes = res['loadLocationTypes'];\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n actions() {\r\n this.AdditionalFields$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.gridData = new ArrayStore({\r\n data: data,\r\n key: ['FieldType', 'FieldLocation']\r\n });\r\n\r\n if (data.length == 0) {\r\n this.dataGrid.noDataText = 'No Product Found';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n });\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getList() {\r\n this.AdditionalFields$.getList().subscribe(listWithCreated => {\r\n this.AdditionalFields$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.entityData = new Entity();\r\n this.entityData.value = { ...this.newEntityData };\r\n this.entityData.value.Visibility = [];\r\n this.entityData.created = true;\r\n this.isAddForm = 1;\r\n this.collapseColor = 'yellow';\r\n this.changeDetectorRef.detectChanges();\r\n this.isFormVisibilityVisible = false;\r\n this.removeTemporaryVisibilities();\r\n this.dataGridIntialization();\r\n this.refreshViewModes();\r\n }\r\n\r\n private deleteConfirm() {\r\n let param = { FieldType: this.entityData.value.FieldType, FieldLocation: this.entityData.value.FieldLocation }\r\n this.AdditionalFields$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n this.entityData.value.Visibility = this.entityData.value.Visibility.filter((afv) => {\r\n if (afv.OsrChecked) {\r\n afv.Osr = Object.values(afv.OsrChecked).filter(v => v >= 0);\r\n }\r\n return afv.IsVisible == true;\r\n });\r\n\r\n this.AdditionalFields$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.getList();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n onVisibilitySelectionChange(selectedRowsInfo) {\r\n var row = selectedRowsInfo.selectedRowsData[0];\r\n if (row != null) {\r\n this.selectedVisibilityRow = row;\r\n this.selectedFieldLocation = this.entityData.value.FieldLocation;\r\n this.isFormVisibilityVisible = true;\r\n }\r\n }\r\n\r\n removeTemporaryVisibilities() {\r\n this.companyList.forEach((v) => {\r\n v.$visibility = { OsrChecked: {} };\r\n });\r\n this.timeLogTypeList.forEach((v) => {\r\n v.$visibility = { OsrChecked: {} };\r\n });\r\n this.loadLocationTypes.forEach((v) => {\r\n v.$visibility = { OsrChecked: {} };\r\n });\r\n\r\n }\r\n\r\n onShowFieldChange() {\r\n var afVisibility;\r\n switch (this.entityData.value.FieldLocation) {\r\n\r\n case FieldLocationEng.LoadLocation:\r\n afVisibility = this.entityData.value.Visibility.filter((afv) => {\r\n return afv.LoadLocationType == this.selectedVisibilityRow.LoadLocationType;\r\n });\r\n if (!afVisibility.length) {\r\n this.selectedVisibilityRow.$visibility.LoadLocationType = this.selectedVisibilityRow.LoadLocationType;\r\n }\r\n this.dataGridLoadLocation.instance.refresh();\r\n break;\r\n\r\n case FieldLocationEng.TimeLog: \r\n afVisibility = this.entityData.value.Visibility.filter((afv) => {\r\n return this.selectedVisibilityRow.TimeLogType === afv.TimeLogType && this.selectedVisibilityRow.TimeLogId == afv.TimeLogId\r\n });\r\n if (!afVisibility.length) {\r\n this.selectedVisibilityRow.$visibility.TimeLogId = this.selectedVisibilityRow.TimeLogId;\r\n this.selectedVisibilityRow.$visibility.TimeLogType = this.selectedVisibilityRow.TimeLogType;\r\n }\r\n this.dataGridTimeLog.instance.refresh();\r\n break;\r\n\r\n case FieldLocationEng.OrderDetail:\r\n\r\n afVisibility = this.entityData.value.Visibility.filter((afv) => {\r\n return afv.CompanyId == this.selectedVisibilityRow.Id;\r\n });\r\n if (!afVisibility.length) {\r\n this.selectedVisibilityRow.$visibility.CompanyId = this.selectedVisibilityRow.Id;\r\n }\r\n this.selectedVisibilityRow.$visibility.IsVisible = Object.values(this.selectedVisibilityRow.$visibility.OsrChecked).filter(v => v >= 0).length > 0;\r\n\r\n this.dataGridCompany.instance.refresh();\r\n break;\r\n\r\n default:\r\n afVisibility = this.entityData.value.Visibility.filter((afv) => {\r\n return afv.CompanyId == this.selectedVisibilityRow.Id;\r\n });\r\n if (!afVisibility.length) {\r\n this.selectedVisibilityRow.$visibility.CompanyId = this.selectedVisibilityRow.Id;\r\n }\r\n\r\n this.dataGridCompany.instance.refresh();\r\n }\r\n\r\n if (!afVisibility.length) {\r\n this.entityData.value.Visibility.push(this.selectedVisibilityRow.$visibility);\r\n } else {\r\n this.entityData.value.Visibility.forEach((s, index) => {\r\n if (this.checkUpdateCondition(s)) {\r\n this.entityData.value.Visibility[index] = this.selectedVisibilityRow.$visibility\r\n }\r\n });\r\n }\r\n }\r\n \r\n checkUpdateCondition(data:any) {\r\n let res = false;\r\n switch (this.entityData.value.FieldLocation) {\r\n\r\n case FieldLocationEng.LoadLocation:\r\n res = data.LoadLocationType == this.selectedVisibilityRow.LoadLocationType\r\n break;\r\n\r\n case FieldLocationEng.TimeLog:\r\n res = data.TimeLogId == this.selectedVisibilityRow.TimeLogId && data.TimeLogType == this.selectedVisibilityRow.TimeLogType\r\n break;\r\n\r\n default:\r\n res = data.CompanyId == this.selectedVisibilityRow.Id\r\n break;\r\n }\r\n return res;\r\n }\r\n\r\n restoreVisibilities(visibilities, fieldLocationId) {\r\n switch (fieldLocationId) {\r\n\r\n case FieldLocationEng.TimeLog:\r\n\r\n visibilities.forEach((visibility, key) => {\r\n if (visibility.TimeLogType > 0) {\r\n visibility.IsVisible = true;\r\n var timeLogType = this.timeLogTypeList.filter((t) => t.TimeLogType === visibility.TimeLogType && t.TimeLogId == visibility.TimeLogId);\r\n if (timeLogType.length == 1) {\r\n timeLogType[0].$visibility = visibility;\r\n timeLogType[0].$visibilityKey = key;\r\n }\r\n }\r\n });\r\n break;\r\n\r\n case FieldLocationEng.LoadLocation:\r\n\r\n visibilities.forEach((visibility, key) => {\r\n if (visibility.LoadLocationType > 0) {\r\n visibility.IsVisible = true;\r\n var loadLocationType = this.loadLocationTypes.filter((l) => l.LoadLocationType === visibility.LoadLocationType);\r\n if (loadLocationType.length == 1) {\r\n loadLocationType[0].$visibility = visibility;\r\n loadLocationType[0].$visibilityKey = key;\r\n }\r\n }\r\n });\r\n break;\r\n\r\n case FieldLocationEng.OrderDetail:\r\n visibilities.forEach((visibility, key) => {\r\n var osrChecked = {};\r\n if (visibility.CompanyId > 0) {\r\n visibility.IsVisible = true;\r\n var company = this.companyList.filter((c) => c.Id === visibility.CompanyId);\r\n if (company.length == 1) {\r\n visibility.Osr.forEach((osr, key) => {\r\n switch (osr) {\r\n case 0: osrChecked['0'] = 0;\r\n break;\r\n case 1: osrChecked['1'] = 1;\r\n break;\r\n case 2: osrChecked['2'] = 2;\r\n break;\r\n }\r\n });\r\n company[0].$visibility = visibility;\r\n company[0].$visibilityKey = key;\r\n }\r\n }\r\n visibility.OsrChecked = osrChecked;\r\n\r\n });\r\n break;\r\n\r\n default:\r\n\r\n visibilities.forEach((visibility, key) => {\r\n if (visibility.CompanyId > 0) {\r\n visibility.IsVisible = true;\r\n var company = this.companyList.filter((c) => c.Id === visibility.CompanyId);\r\n if (company.length == 1) {\r\n company[0].$visibility = visibility;\r\n company[0].$visibilityKey = key;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n onFieldLocationChange() {\r\n this.isFormVisibilityVisible = false;\r\n if (this.selectedFieldLocation) {\r\n this.clearVisibilitySelection();\r\n }\r\n this.refreshViewModes();\r\n this.dataGridIntialization();\r\n }\r\n\r\n clearVisibilitySelection() {\r\n this.selectedVisibilityRow = null;\r\n switch (this.selectedFieldLocation) {\r\n case FieldLocationEng.LoadLocation:\r\n this.dataGridLoadLocation?.instance.deselectAll();\r\n break;\r\n case FieldLocationEng.TimeLog:\r\n this.dataGridTimeLog?.instance.deselectAll();\r\n break;\r\n default:\r\n this.dataGridCompany?.instance.deselectAll();\r\n break;\r\n }\r\n }\r\n\r\n refreshViewModes() {\r\n\r\n if (this.isAddForm) this.entityData.value.ViewMode = [];\r\n\r\n switch (this.entityData.value.FieldLocation) {\r\n case FieldLocationEng.LoadingDetail:\r\n this.viewModeList = this.viewModeListAll.filter((t: Enum) =>\r\n t.id == AdditionalFieldViewLocation.LoadingProductCompartment);\r\n if (this.isAddForm) this.entityData.value.ViewMode = [this.viewModeList[0].id];\r\n break;\r\n\r\n case FieldLocationEng.LoadingDetailPerProduct:\r\n this.viewModeList = this.viewModeListAll.filter((t: Enum) =>\r\n t.id == AdditionalFieldViewLocation.LoadingProductDetail);\r\n if (this.isAddForm) this.entityData.value.ViewMode = [this.viewModeList[0].id];\r\n break;\r\n\r\n case FieldLocationEng.OrderDetail:\r\n this.viewModeList = this.viewModeListAll.filter((t: Enum) =>\r\n t.id == AdditionalFieldViewLocation.OrderProductDetail);\r\n if (this.isAddForm) this.entityData.value.ViewMode = [this.viewModeList[0].id];\r\n break;\r\n\r\n case FieldLocationEng.LoadLocation:\r\n this.viewModeList = this.viewModeListAll.filter((t: Enum) =>\r\n t.id == AdditionalFieldViewLocation.LoadingLoadLocationProductCompartment);\r\n if (this.isAddForm) this.entityData.value.ViewMode = [this.viewModeList[0].id];\r\n break;\r\n\r\n case FieldLocationEng.Loading:\r\n this.viewModeList = this.viewModeListAll.filter((t: Enum) =>\r\n [\r\n AdditionalFieldViewLocation.LoadingStart,\r\n AdditionalFieldViewLocation.LoadingProductsDone\r\n ].includes(t.id));\r\n break;\r\n\r\n case FieldLocationEng.TimeLog:\r\n this.viewModeList = this.viewModeListAll.filter((t: Enum) =>\r\n t.id == AdditionalFieldViewLocation.TimeLog);\r\n if (this.isAddForm) this.entityData.value.ViewMode = [this.viewModeList[0].id];\r\n break;\r\n\r\n case FieldLocationEng.Order:\r\n this.viewModeList = this.viewModeListAll.filter((t: Enum) =>\r\n [\r\n AdditionalFieldViewLocation.OrderStart,\r\n AdditionalFieldViewLocation.OrderProductsDone,\r\n AdditionalFieldViewLocation.OrderAfterSignature,\r\n AdditionalFieldViewLocation.OrderPrintSaleDone,\r\n AdditionalFieldViewLocation.OrderRegisterReceiveScreen\r\n ].includes(t.id));\r\n break;\r\n\r\n default:\r\n this.viewModeList = cloneDeep(this.viewModeListAll);\r\n break;\r\n }\r\n }\r\n\r\n dataGridIntialization() {\r\n switch (this.entityData.value.FieldLocation) {\r\n case FieldLocationEng.LoadLocation:\r\n this.gridDataLoadLocation = new ArrayStore({\r\n data: this.loadLocationTypes,\r\n });\r\n break;\r\n\r\n case FieldLocationEng.TimeLog:\r\n this.gridDataTimeLog = new ArrayStore({\r\n data: this.timeLogTypeList,\r\n });\r\n break;\r\n\r\n default:\r\n this.gridDataCompany = new ArrayStore({\r\n data: this.companyList,\r\n key: ['Id']\r\n });\r\n break;\r\n }\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n }\r\n\r\n private reset() {\r\n this.entityData.restore();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n onCellPreparedVisibility(e: any) {\r\n if (e.rowType === \"data\" && e.column.dataField === \"Visibility\") {\r\n if (e.data.$visibility.IsVisible)\r\n e.cellElement.innerHTML = '';\r\n else\r\n e.cellElement.innerHTML = '';\r\n }\r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.app$.notifyScreenBusy();\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n this.isFormVisibilityVisible = false;\r\n this.AdditionalFields$.getEntity(key).subscribe((res: any) => {\r\n this.clearVisibilitySelection();\r\n this.removeTemporaryVisibilities();\r\n this.restoreVisibilities(res.Visibility, res.FieldLocation);\r\n this.app$.notifyScreenReady();\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.entityData.value = cloneDeep(res);\r\n this.changeDetectorRef.detectChanges();\r\n this.dataGridIntialization();\r\n this.refreshViewModes();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData){\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n \r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n\r\n\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n isNumberOnly(event) {\r\n return (event.charCode != 8 && event.charCode == 0 || (event.charCode == 46) || (event.charCode >= 48 && event.charCode <= 57))\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n}\r\n\r\n\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n General Information\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Title is required\r\n \r\n \r\n Title cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{fieldLocation.id - 10 }} - {{fieldLocation.name}}\r\n \r\n \r\n
\r\n
\r\n \r\n Field location is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n View mode is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{dataType.name}}\r\n \r\n \r\n
\r\n
\r\n \r\n Data type is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Export field cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Sort can be up to 255\r\n \r\n \r\n Sort is not a valid number\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Restrictions\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Visibility\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n N. repetitions\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n Show the field for normal orders\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n Show the field for OSR orders\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n Show the field for OSR orders when new equipment was created\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\nexport class AdditionalFields {\r\n\r\n Id: Number;\r\n Visibility: any;\r\n ViewMode: any[];\r\n FieldLocation: any;\r\n DataSource: String;\r\n DataType: Number;\r\n DigitsAfterComma: Number;\r\n DigitsBeforeComma: Number;\r\n ExportFieldName: String;\r\n FieldType: Number;\r\n IsViewModeReadOnly: boolean;\r\n MaxLength: Number\r\n MinLength: Number;\r\n Sort: Number;\r\n Title: String;\r\n\r\n}\r\nexport enum FieldLocationEng {\r\n Loading = 17,\r\n LoadingDetail = 11,\r\n LoadingDetailPerProduct = 19,\r\n LoadLocation = 15,\r\n Order = 18,\r\n OrderDetail = 13,\r\n Sale = 14,\r\n TimeLog = 16\r\n}\r\nexport enum AdditionalFieldViewLocation {\r\n LoadingStart = 1,\r\n LoadingProductsDone = 2,\r\n LoadingProductDetail = 4,\r\n LoadingProductCompartment = 8,\r\n LoadingLoadLocationProductCompartment = 16,\r\n OrderStart = 1024,\r\n OrderProductsDone = 2048,\r\n OrderAfterSignature = 4096,\r\n OrderProductDetail = 8192,\r\n OrderPrintSaleDone = 16384,\r\n OrderRegisterReceiveScreen = 32768,\r\n TimeLog = 1048576\r\n}\r\n\r\n@Injectable()\r\nexport abstract class AdditionalFieldsInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: AdditionalFields[]) => void;\r\n\r\n getDataTypeList: () => Observable;\r\n getFieldLocations: () => Observable;\r\n getViewModeTypes: () => Observable;\r\n getTimeLogTypeList: () => Observable;\r\n getLoadLocationTypes: () => Observable;\r\n getNewEntity: () => Observable;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Entity, Enum } from '@app/app.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { AdditionalFields, AdditionalFieldsInterface } from './additional-fields.model';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AdditionalFieldsService implements AdditionalFieldsInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n notifyRetrieved(data: AdditionalFields[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.fleet.additionalFields + \"/additionalField\",\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.fleet.additionalFields + '/list', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewEntity(): Observable {\r\n return this._http.get(e.endpoint.fleet.additionalFields + '/new', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(key: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.fleet.additionalFields + \"/\" + key.FieldType + \"/\" + key.FieldLocation, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getEntity(param) {\r\n return this._http.get(e.endpoint.fleet.additionalFields + '/' + param.FieldType + '/' + param.FieldLocation, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getDataTypeList() {\r\n return this._http.get(e.endpoint.fleet.additionalFields + '/datatypes', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getFieldLocations() {\r\n return this._http.get(e.endpoint.fleet.additionalFields + '/fieldtypes', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getViewModeTypes() {\r\n return this._http.get(e.endpoint.fleet.additionalFields + '/viewmodetypes', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getTimeLogTypeList() {\r\n return this._http.get(e.endpoint.fleet.timeLog, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getLoadLocationTypes() {\r\n return this._http.get(e.endpoint.fleet.additionalFields + '/loadLocationTypes', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n\r\n\r\n","import { ChangeDetectorRef, Component, OnInit, ViewChild, ElementRef, DoCheck, OnDestroy } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Entity, Enum } from '@app/app.model';\r\n\r\nimport { NgForm } from '@angular/forms';\r\nimport { DxDataGridComponent, DxTabsComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { forkJoin, Subject } from 'rxjs';\r\n\r\nimport { AssessmentInterface, Assessment, SectionField, FormSection, FieldOption } from './assessment.model';\r\nimport { AssessmentService } from './assessment.service';\r\n\r\nimport { AppService } from '@app/app.service';\r\n\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport maxBy from 'lodash/maxBy';\r\nimport isEmpty from 'lodash/isEmpty';\r\n\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { dxDataGridHeightAdjustment, displayZeroValueText } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-assessment',\r\n templateUrl: './assessment.component.html',\r\n styleUrls: ['./assessment.component.scss'],\r\n providers: [\r\n {\r\n provide: AssessmentInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new AssessmentService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class AssessmentComponent implements OnInit, DoCheck, OnDestroy {\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n entityName = 'Assessment';\r\n\r\n assessment: Entity;\r\n assessmentsStore: ArrayStore;\r\n\r\n currentSectionsTabList: FormSection[];\r\n currentSectionsList: FormSection[];\r\n currentFieldsList: SectionField[];\r\n currentOptionsList: FieldOption[];\r\n\r\n @ViewChild('entityForm')\r\n entityForm: NgForm;\r\n @ViewChild('entityForm', { read: ElementRef }) entityFormElement: ElementRef;\r\n @ViewChild('sectionsForm', { read: ElementRef }) sectionsFormElement: ElementRef;\r\n @ViewChild('optionsForm', { read: ElementRef }) optionsFormElement: ElementRef;\r\n @ViewChild('optionsFormContainer', { read: ElementRef }) optionsFormContainer: ElementRef;\r\n\r\n currentSections: FormSection[];\r\n currentSections_modified: boolean;\r\n currentSectionTab: number = 0;\r\n currentSectionEdit: FormSection;\r\n currentSection_modified: boolean;\r\n currentSectionIndex: number = 0;\r\n currentFieldIndex: number;\r\n currentField: SectionField;\r\n currentField_modified: boolean;\r\n currentFieldTab: number = 0;\r\n\r\n @ViewChild('sectionsTabs') sectionsTabs: DxTabsComponent;\r\n\r\n fieldTypeList: Enum[];\r\n\r\n\r\n isVisible_sections_edit: boolean;\r\n isVisible_section_edit: boolean;\r\n isVisible_field_edit: boolean;\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n error_variableName: boolean;\r\n\r\n\r\n constructor(private assessments$: AssessmentInterface, private actions$: ActionsService, private errors$: ErrorsService, private app$: AppService, private changeDetectorRef: ChangeDetectorRef) {\r\n\r\n\r\n assessments$.ListRetrieved.subscribe(data => {\r\n\r\n if (data) {\r\n\r\n this.assessmentsStore = new ArrayStore({\r\n data: data,\r\n key: ['FormId']\r\n });\r\n\r\n if (data.length == 0) {\r\n this.dataGrid.noDataText = 'No Forms';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n });\r\n\r\n actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create());\r\n actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.save());\r\n actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n\r\n if (errors) {\r\n\r\n let entityForm = document.getElementById('entity-form');\r\n\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n ngDoCheck() {\r\n\r\n if (this.assessment) {\r\n\r\n if (this.currentSections) {\r\n this.currentSections_modified = JSON.stringify(this.currentSectionsList) !== JSON.stringify(this.assessment.value.FormSections);\r\n }\r\n\r\n if (this.currentSectionEdit) {\r\n this.currentSection_modified = JSON.stringify(this.currentSectionEdit.Condition) !== JSON.stringify(this.currentSectionsList[this.currentSectionIndex].Condition);\r\n }\r\n\r\n if (this.currentField) {\r\n this.currentField_modified = JSON.stringify(this.currentField) !== JSON.stringify(this.assessment.value.FormSections[this.currentSectionTab].SectionFields[this.currentFieldIndex]);\r\n }\r\n }\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n forkJoin(\r\n\r\n this.assessments$.getFieldTypeList(),\r\n\r\n ).subscribe(\r\n\r\n multipleData => {\r\n\r\n this.fieldTypeList = multipleData[0];\r\n\r\n this.assessments$.getList().subscribe(assessmentsData => {\r\n this.assessments$.notifyRetrieved(assessmentsData);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n\r\n onSelectionChanged($clikedRow) {\r\n\r\n if (!this.assessment)\r\n try {\r\n let keySaved = JSON.parse(localStorage.getItem('assessment.dataGrid')).selectedRowKeys[0];\r\n\r\n if (keySaved) {\r\n this.selectAssessment(keySaved);\r\n }\r\n }\r\n catch{ }\r\n }\r\n\r\n onRowClick($clikedRow) {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n if (!this.assessment)\r\n this.assessment = new Entity();\r\n\r\n if (JSON.stringify(this.assessment.key) === JSON.stringify($clikedRow.key)) {\r\n this.deselectAssessment();\r\n }\r\n else {\r\n this.selectAssessment($clikedRow.key);\r\n }\r\n }\r\n\r\n\r\n onContentReady_sections(e) {\r\n\r\n e.component.selectItem(0);\r\n\r\n if (this.assessment.value.FormSections && this.assessment.value.FormSections.length > 0)\r\n {\r\n this.currentFieldsList = this.assessment.value.FormSections[this.currentSectionTab].SectionFields.filter(f => !f.deleted);\r\n this.changeDetectorRef.detectChanges(); \r\n var dividerFields= this.assessment.value.FormSections[this.currentSectionTab].SectionFields.filter(i=>i.FieldType ==0)\r\n if(dividerFields.length>0)\r\n {\r\n dividerFields.forEach(d => {\r\n let fieldTypeId ='fieldTypeId'+d.id;\r\n displayZeroValueText(this.fieldTypeList,fieldTypeId,'id','name');\r\n });\r\n }\r\n } \r\n }\r\n\r\n onItemClick_sections(e) {\r\n\r\n this.currentSectionTab = e.itemIndex;\r\n this.currentFieldsList = this.assessment.value.FormSections[this.currentSectionTab].SectionFields.filter(f => !f.deleted);\r\n }\r\n\r\n\r\n onItemReordered_sections(e) {\r\n this.currentSections.splice(e.toIndex, 0, this.currentSections.splice(e.fromIndex, 1)[0]);\r\n this.currentSections.forEach((s, i) => {\r\n s.SequenceNo = i + 1;\r\n });\r\n }\r\n\r\n onClick_open_sections_edit(e) {\r\n\r\n this.isVisible_sections_edit = true;\r\n\r\n this.currentSections = cloneDeep(this.assessment.value.FormSections);\r\n\r\n this.currentSectionsList = this.currentSections.filter(s => !s.deleted);\r\n\r\n setTimeout(() => {\r\n this.sectionsFormElement.nativeElement.style.height = this.sectionsFormElement.nativeElement.parentElement.clientHeight - 75 + 'px';\r\n });\r\n }\r\n\r\n onClick_add_section() {\r\n\r\n let section = new FormSection();\r\n\r\n section.SequenceNo = 1;\r\n\r\n let sectionPrev: FormSection = maxBy(this.currentSectionsList, 'SequenceNo');\r\n if (sectionPrev) {\r\n section.SequenceNo = sectionPrev.SequenceNo + 1;\r\n }\r\n section.id = -1;\r\n section.SectionName = '';\r\n section.formID = this.assessment.value.FormId;\r\n\r\n this.currentSectionsList.push(section);\r\n this.currentSections.push(section);\r\n setTimeout(() => {\r\n this.sectionsFormElement.nativeElement.scrollTop = this.sectionsFormElement.nativeElement.scrollHeight;\r\n });\r\n }\r\n\r\n onClick_delete_section(e, si) {\r\n\r\n let sDeleting = this.currentSectionsList[si];\r\n\r\n if (sDeleting.id == -1) {\r\n this.currentSectionsList.splice(si, 1);\r\n }\r\n\r\n else {\r\n\r\n let sOrig = this.currentSections.find(so => sDeleting.id == so.id && sDeleting.formID == so.formID);\r\n\r\n sOrig.deleted = true;\r\n\r\n sOrig.SectionFields.forEach(f => {\r\n\r\n f.deleted = true;\r\n\r\n f.FieldOptions.forEach(fo => {\r\n fo.deleted = true;\r\n });\r\n });\r\n\r\n this.currentSectionsList = this.currentSections.filter(s => !s.deleted);\r\n }\r\n }\r\n\r\n\r\n onCancel_sections_edit() {\r\n\r\n this.isVisible_sections_edit = false;\r\n }\r\n\r\n\r\n\r\n onClick_open_section_edit(e, si) {\r\n\r\n this.isVisible_section_edit = true;\r\n\r\n this.currentSectionIndex = si;\r\n\r\n this.currentSectionEdit = cloneDeep(this.currentSectionsList[this.currentSectionIndex]);\r\n }\r\n\r\n\r\n onSave_section() {\r\n\r\n this.isVisible_section_edit = false;\r\n\r\n this.currentSectionsList[this.currentSectionIndex] = this.currentSectionEdit;\r\n\r\n this.currentSection_modified = false;\r\n }\r\n\r\n onCancel_section() {\r\n\r\n this.isVisible_section_edit = false;\r\n }\r\n\r\n\r\n onSave_sections() {\r\n\r\n this.isVisible_sections_edit = false;\r\n\r\n this.currentSectionsList.forEach(sSaving => {\r\n\r\n let siOrig = this.currentSections.findIndex(so => sSaving.id == so.id && sSaving.formID == so.formID && sSaving.SequenceNo == so.SequenceNo);\r\n\r\n if (siOrig < 0) {\r\n this.currentSections.push(sSaving);\r\n }\r\n else {\r\n this.currentSections[siOrig] = cloneDeep(sSaving);\r\n }\r\n\r\n });\r\n\r\n this.assessment.value.FormSections = cloneDeep(this.currentSections);\r\n\r\n this.currentSectionTab = 0;\r\n this.currentSectionsTabList = this.assessment.value.FormSections.filter(s => !s.deleted);\r\n }\r\n\r\n\r\n\r\n onItemReordered_fields(e) {\r\n this.assessment.value.FormSections[this.currentSectionTab].SectionFields.splice(e.toIndex, 0, this.assessment.value.FormSections[this.currentSectionTab].SectionFields.splice(e.fromIndex, 1)[0]); \r\n this.assessment.value.FormSections[this.currentSectionTab].SectionFields.forEach((s, i) => {\r\n s.SequenceNo = i + 1;\r\n });\r\n\r\n this.currentFieldsList = this.assessment.value.FormSections[this.currentSectionTab].SectionFields.filter(f => !f.deleted);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n\r\n onClick_add_field(e) {\r\n\r\n let newField = new SectionField();\r\n\r\n newField.SequenceNo = 1;\r\n newField.FieldType = this.fieldTypeList.find((v: Enum) => v.name == 'Small Text').id;\r\n\r\n let fieldPrev: SectionField = maxBy(this.assessment.value.FormSections[this.currentSectionTab].SectionFields, 'SequenceNo');\r\n if (fieldPrev) {\r\n newField.SequenceNo = fieldPrev.SequenceNo + 1;\r\n }\r\n newField.id = -1;\r\n newField.formID = this.assessment.value.FormId;\r\n newField.sectionID = this.assessment.value.FormSections[this.currentSectionTab].id;\r\n\r\n this.currentFieldsList.push(newField);\r\n\r\n this.assessment.value.FormSections[this.currentSectionTab].SectionFields.push(newField);\r\n\r\n setTimeout(() => this.entityFormElement.nativeElement.scrollTop = this.entityFormElement.nativeElement.scrollHeight);\r\n\r\n }\r\n\r\n onClick_delete_field(e, fi) {\r\n\r\n let fDeleting = this.currentFieldsList[fi];\r\n\r\n if (fDeleting.id == -1) {\r\n this.currentFieldsList.splice(fi, 1);\r\n }\r\n\r\n else {\r\n\r\n let fOrig = this.assessment.value.FormSections[this.currentSectionTab].SectionFields.find(fo => fDeleting.id == fo.id && fDeleting.formID == fo.formID && fDeleting.sectionID == fo.sectionID);\r\n\r\n fOrig.deleted = true;\r\n\r\n fOrig.FieldOptions.forEach(fo => {\r\n fo.deleted = true;\r\n });\r\n\r\n this.currentFieldsList = this.assessment.value.FormSections[this.currentSectionTab].SectionFields.filter(f => !f.deleted);\r\n }\r\n }\r\n\r\n onClick_open_field_edit(e, i) {\r\n\r\n this.isVisible_field_edit = true;\r\n this.currentFieldIndex = i;\r\n\r\n this.currentField = cloneDeep(this.currentFieldsList[this.currentFieldIndex]);\r\n\r\n this.currentOptionsList = this.currentField.FieldOptions.filter(o => !o.deleted);\r\n\r\n setTimeout(() => {\r\n this.optionsFormElement.nativeElement.style.height = this.optionsFormContainer.nativeElement.parentElement.clientHeight - 200 + 'px';\r\n });\r\n }\r\n\r\n onSave_field() {\r\n\r\n this.error_variableName = false;\r\n\r\n let validVariableNameJs = new RegExp('^[a-zA-Z_$][0-9a-zA-Z_$]*$');\r\n if (validVariableNameJs.test(this.currentField.VariableName)) {\r\n this.isVisible_field_edit = false;\r\n\r\n this.currentField.FieldOptions = this.currentField.FieldOptions.filter(o => !isEmpty(o) && o.OptionName != null);\r\n\r\n let fOrigIndex = this.assessment.value.FormSections[this.currentSectionTab].SectionFields.findIndex(fo => this.currentField.id == fo.id && this.currentField.formID == fo.formID && this.currentField.sectionID == fo.sectionID);\r\n\r\n this.assessment.value.FormSections[this.currentSectionTab].SectionFields[fOrigIndex] = this.currentField;\r\n this.currentField_modified = false;\r\n\r\n this.currentFieldsList = this.assessment.value.FormSections[this.currentSectionTab].SectionFields.filter(f => !f.deleted);\r\n }\r\n\r\n else {\r\n this.error_variableName = true;\r\n }\r\n }\r\n\r\n onCancel_field_edit() {\r\n\r\n this.isVisible_field_edit = false;\r\n }\r\n\r\n\r\n\r\n onItemClick_field_edit_tabs(e) {\r\n\r\n this.currentFieldTab = e.itemIndex;\r\n }\r\n\r\n\r\n onClick_add_option(e) {\r\n\r\n let newOption = new FieldOption();\r\n newOption.id = -1;\r\n this.currentField.FieldOptions.push(newOption);\r\n\r\n this.currentOptionsList = this.currentField.FieldOptions.filter(o => !o.deleted);\r\n\r\n setTimeout(() => this.optionsFormElement.nativeElement.scrollTop = this.optionsFormElement.nativeElement.scrollHeight);\r\n }\r\n\r\n onClick_delete_option(e, oi) {\r\n\r\n let oDeleting = this.currentOptionsList[oi];\r\n\r\n if (oDeleting.id == -1) {\r\n this.currentOptionsList.splice(oi, 1);\r\n }\r\n\r\n else {\r\n\r\n let oOrig = this.currentField.FieldOptions.find(oo => oDeleting.id == oo.id && oDeleting.formID == oo.formID && oDeleting.sectionID == oo.sectionID && oDeleting.fieldID == oo.fieldID);\r\n\r\n oOrig.deleted = true;\r\n\r\n this.currentOptionsList = this.currentField.FieldOptions.filter(o => !o.deleted);\r\n }\r\n }\r\n\r\n\r\n isDivider(field: SectionField) {\r\n\r\n let divider = this.fieldTypeList.filter((v: Enum) => ['Divider'].includes(v.name)).map((f => f.id));\r\n\r\n return divider.includes(field.FieldType);\r\n }\r\n\r\n hasFieldUnit() {\r\n\r\n let fieldTypesWithUnit = this.fieldTypeList.filter((v: Enum) => ['Small Text', 'Large Text', 'Number', 'Text Only'].includes(v.name)).map((f => f.id));\r\n\r\n return fieldTypesWithUnit.includes(this.currentField.FieldType);\r\n }\r\n\r\n\r\n isInvalid(field) { return this.errors$.isInvalid(field); }\r\n\r\n getError(field) { return this.errors$.getError(field); }\r\n\r\n\r\n private addNewEntity() {\r\n\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n\r\n this.assessment = new Entity();\r\n\r\n let section = new FormSection();\r\n section.SectionName = 'section';\r\n section.SequenceNo = 1;\r\n this.assessment.value.FormSections = [];\r\n this.assessment.value.FormSections.push(section);\r\n\r\n this.assessment.original = cloneDeep(this.assessment.value);\r\n this.changeDetectorRef.detectChanges();\r\n\r\n this.currentSectionTab = 0;\r\n this.currentSectionsTabList = this.assessment.value.FormSections.filter(s => !s.deleted);\r\n\r\n this.assessment.created = true;\r\n }\r\n\r\n\r\n private reset() {\r\n\r\n this.assessment.restore();\r\n\r\n this.currentSectionTab = 0;\r\n this.currentSectionsTabList = this.assessment.value.FormSections.filter(s => !s.deleted);\r\n }\r\n\r\n create() {\r\n\r\n this.handleFormSubmit();\r\n\r\n this.assessments$.create(this.assessment).subscribe(\r\n\r\n (okCreate) => {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n this.actions$.notifyCreated();\r\n\r\n this.deselectAssessment();\r\n\r\n this.assessments$.getList().subscribe(listWithCreated => {\r\n\r\n this.assessments$.notifyRetrieved(listWithCreated)\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n private save() {\r\n\r\n this.handleFormSubmit();\r\n\r\n this.assessments$.save(this.assessment).subscribe(\r\n\r\n (okSave) => {\r\n\r\n this.actions$.notifySaved();\r\n\r\n this.deselectAssessment();\r\n\r\n this.assessments$.getList().subscribe(listWithSaved => {\r\n\r\n this.assessments$.notifyRetrieved(listWithSaved);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n\r\n },\r\n\r\n (errorSave) => {\r\n this.errors$.handleServerErrors(errorSave);\r\n }\r\n );\r\n }\r\n\r\n\r\n private deleteConfirm() {\r\n\r\n this.assessments$.delete(this.assessment.key).subscribe(\r\n\r\n (okDelete) => {\r\n\r\n this.actions$.notifyDeleted();\r\n\r\n this.deselectAssessment();\r\n\r\n this.assessments$.getList().subscribe(data => {\r\n\r\n this.assessments$.notifyRetrieved(data);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n\r\n private cancel() {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n this.deselectAssessment();\r\n }\r\n\r\n\r\n private selectAssessment(key: any) {\r\n\r\n this.assessments$.getEntity(key).pipe(\r\n map(entity => {\r\n entity.FormSections = entity.FormSections.sort((a, b) => a.SequenceNo - b.SequenceNo);\r\n entity.FormSections.forEach(s => s.SectionFields = s.SectionFields.sort((a, b) => a.SequenceNo - b.SequenceNo));\r\n return entity;\r\n }),\r\n ).subscribe(\r\n entitySortedBySequenceNo => {\r\n\r\n this.assessment = new Entity();\r\n this.assessment.value = entitySortedBySequenceNo;\r\n this.assessment.key = key;\r\n this.changeDetectorRef.detectChanges();\r\n\r\n this.currentSectionTab = 0;\r\n this.currentSectionsTabList = this.assessment.value.FormSections.filter(s => !s.deleted);\r\n\r\n this.app$.notifyScreenReady()\r\n },\r\n\r\n (errorGetEntity) => this.errors$.handleServerErrors(errorGetEntity)\r\n );\r\n }\r\n\r\n\r\n private deselectAssessment() {\r\n\r\n this.dataGrid.instance.deselectRows(this.assessment.key);\r\n this.assessment.key = undefined;\r\n }\r\n\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n onInitialized(e) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onResize(e): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n}\r\n","
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n {{getError('FormName')}}\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
{{section.SectionName}}
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n 0\">\r\n\r\n
\r\n\r\n
\r\n Title / Description /\r\n Question\r\n
\r\n
\r\n Field Type\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n\r\n \r\n \r\n {{ft.name}}\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n
{{field.Name}}
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n\r\n
\r\n \r\n The variable name can start with a\r\n letter or _, $; It cannot contain spaces.\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n\r\n\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\n\r\nexport class Assessment {\r\n\r\n FormId: number;\r\n FormName: string;\r\n\r\n FormSections: FormSection[] = [];\r\n}\r\n\r\nexport class FormSection {\r\n\r\n SectionName: string;\r\n SequenceNo: number;\r\n Condition: string;\r\n\r\n SectionFields: SectionField[] = [];\r\n \r\n formID: number;\r\n id: number;\r\n\r\n deleted: boolean;\r\n}\r\n\r\nexport class SectionField {\r\n\r\n FieldName: string;\r\n FieldType: number;\r\n SequenceNo: number;\r\n VariableName: string;\r\n Condition: string;\r\n Unit: string;\r\n\r\n FieldOptions: FieldOption[] = [];\r\n \r\n formID: number;\r\n id: number;\r\n sectionID: number;\r\n\r\n deleted: boolean;\r\n}\r\n\r\nexport class FieldOption {\r\n\r\n OptionName: string;\r\n\r\n fieldID: number;\r\n formID: number;\r\n id: number;\r\n sectionID: number;\r\n\r\n deleted: boolean;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class AssessmentInterface implements EntityInterface {\r\n\r\n\r\n create: (data: Entity) => Observable;\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n delete: (data: any) => Observable;\r\n\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n\r\n ListRetrieved: Observable;\r\n\r\n notifyRetrieved: (data: Assessment[]) => void;\r\n\r\n getFieldTypeList: () => Observable;\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { Entity, Enum } from '@app/app.model';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\nimport { Assessment, AssessmentInterface, FormSection, SectionField } from './assessment.model';\r\n\r\n\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AssessmentService implements AssessmentInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.post(\r\n e.endpoint.fleet.assessment,\r\n data.value,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n save(data: Entity): Observable {\r\n\r\n let dataReduced: Assessment = cloneDeep(data.value);\r\n dataReduced.FormSections = [];\r\n\r\n data.value.FormSections.forEach((s, si) => {\r\n\r\n let sOrig = data.original.FormSections.find(so => s.id == so.id && s.formID == so.formID);\r\n\r\n if (sOrig == null) {\r\n dataReduced.FormSections.push(s);\r\n }\r\n else\r\n if (JSON.stringify(sOrig) !== JSON.stringify(s)) {\r\n\r\n let sReduced: FormSection = cloneDeep(s);\r\n sReduced.SectionFields = [];\r\n\r\n s.SectionFields.forEach((f, fi) => {\r\n\r\n let fOrig = sOrig.SectionFields.find(fo => f.id == fo.id && f.formID == fo.formID && f.sectionID == sOrig.id);\r\n\r\n if (fOrig == null) {\r\n sReduced.SectionFields.push(f);\r\n }\r\n else\r\n if (JSON.stringify(fOrig) !== JSON.stringify(f)) {\r\n\r\n let fReduced: SectionField = cloneDeep(f);\r\n fReduced.FieldOptions = [];\r\n\r\n f.FieldOptions.forEach((o, oi) => {\r\n\r\n let oOrig = fOrig.FieldOptions.find(oo => o.id == oo.id && o.formID == oo.formID && o.sectionID == sOrig.id && o.fieldID == fOrig.id);\r\n\r\n if (oOrig == null || JSON.stringify(oOrig) !== JSON.stringify(o)) {\r\n fReduced.FieldOptions.push(o);\r\n }\r\n\r\n });\r\n sReduced.SectionFields.push(fReduced);\r\n }\r\n });\r\n dataReduced.FormSections.push(sReduced);\r\n }\r\n });\r\n\r\n\r\n return this._http.put(\r\n e.endpoint.fleet.assessment,\r\n dataReduced,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n delete(data: any): Observable {\r\n\r\n return this._http.request('delete',\r\n e.endpoint.fleet.assessment,\r\n {\r\n body: data,\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n getList(): Observable {\r\n\r\n return this._http.get(e.endpoint.fleet.assessment, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n notifyRetrieved(data: Assessment[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n getEntity(key: any): Observable {\r\n\r\n return this._http.get(e.endpoint.fleet.assessment + '/' + key.FormId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getFieldTypeList(): Observable {\r\n\r\n return this._http.get(e.endpoint.fleet.assessmentFieldTypes, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'tooltip-conditions-info-assessment',\r\n templateUrl: './tooltip-conditions-info.html',\r\n styleUrls: ['./tooltip-conditions-info.scss'],\r\n})\r\nexport class TooltipConditionsInfo_Assessment {\r\n \r\n\r\n}\r\n","
\r\n\r\n
\r\n
\r\n\r\n Conditions can be written in javascript\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
EXAMPLES - show field when:
selected tank_type is \"other\"
tank_type == \"other\"
tank_volume is larger than 1000
tank_volume > 1000
require_ladder is \"YES\" and ladder_fixed is \"NO\"
require_ladder == \"YES\" && ladder_fixed == \"NO\"
four_wheel_rtw is \"YES\" or six_wheel_rtw is \"YES\"
four_wheel_rtw == \"YES\" || six_wheel_rtw == \"YES\"
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
LEGEND
\r\n ==\r\n equal to\r\n
\r\n != not equal
\r\n > greater than
\r\n \r\n < \r\n less\r\n than
\r\n >= greater than or equal to
\r\n \r\n <= less\r\n than\r\n or\r\n equal\r\n to
\r\n && and
\r\n || or
\r\n\r\n
\r\n\r\n
\r\n
","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { SharedService } from '@app/_shared/shared.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ConfigurationGroupInterface, ConfigurationGroup } from './configuration-group.model';\r\nimport { ConfigurationGroupService } from './configuration-group.service';\r\nimport { dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n\r\n@Component({\r\n selector: 'facnm-configuration-group',\r\n templateUrl: './configuration-group.component.html',\r\n styleUrls: ['./configuration-group.component.scss'],\r\n providers: [\r\n {\r\n provide: ConfigurationGroupInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new ConfigurationGroupService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class ConfigurationGroupComponent implements OnInit {\r\n\r\n constructor(\r\n private configurationGroup$: ConfigurationGroupInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private shared$: SharedService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n private dataGridAssignedVehicles: DxDataGridComponent;\r\n @ViewChild('dataGridAssignedVehicles', { static: false }) set assignedVehicles(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridAssignedVehicles = content;\r\n }\r\n }\r\n\r\n private dataGridUnassignedVehicles: DxDataGridComponent;\r\n @ViewChild('dataGridUnassignedVehicles', { static: false }) set unassignedVehicles(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridUnassignedVehicles = content;\r\n }\r\n }\r\n private unsubscribe$ = new Subject();\r\n VCollapse = false;\r\n gridData: ArrayStore;\r\n isAddForm = 0;\r\n collapseColor = 'green';\r\n entityName = 'Configuration Group Management';\r\n entityNameNotification = \"Configuration Group\";\r\n entityData: Entity;\r\n newEntityData: ConfigurationGroup;\r\n newEntity: any;\r\n assignedVehicleSelected = [];\r\n unassignedVehicleSelected = [];\r\n allMode: string;\r\n checkBoxesMode: string;\r\n vehicleColumnConfig: any;\r\n\r\n ngOnInit(): void {\r\n this.allMode = 'allPages';\r\n this.checkBoxesMode = 'onClick';\r\n this.actions();\r\n this.getList();\r\n this.app$.setScreenTitle(this.entityName);\r\n forkJoin({\r\n newEntity: this.configurationGroup$.getEntity({ Id: 0 }),\r\n }).subscribe(\r\n res => {\r\n this.newEntityData = res['newEntity'];\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n\r\n this.vehicleColumnConfig = [\r\n { caption: 'Vehicle Id', dataField: 'Id', visible: false, dataType: 'number' },\r\n {\r\n caption: 'Device Id - Name', dataField: 'DeviceId', cssClass: 'DeviceId', dataType: 'string', alignment: 'left',\r\n cellTemplate: function (container, options) {\r\n var devicedetails = \"\";\r\n if (options.data.DeviceId != 0) devicedetails = devicedetails + options.data.DeviceId + \" - \";\r\n if (options.data.DeviceName != null) devicedetails = devicedetails + options.data.DeviceName;\r\n $('').text(devicedetails).append(\"
\").appendTo(container);\r\n },\r\n calculateCellValue: function (data) {\r\n return data.DeviceId + \" - \" + data.DeviceName;\r\n },\r\n calculateFilterExpression: function (filterValue, selectedFilterOperation) {\r\n return [this.calculateCellValue, selectedFilterOperation || 'contains', filterValue];\r\n }\r\n },\r\n { alignment: 'center', caption: 'Vehicle No', dataField: 'VehicleNumber', cssClass: 'VehicleNumber', dataType: 'string' },\r\n {\r\n alignment: 'left', caption: 'License Plate', dataField: 'LicensePlate', cssClass: 'LicensePlate', dataType: 'string', width: 150,\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.LicensePlate)\r\n .appendTo(container);\r\n }\r\n }\r\n ];\r\n }\r\n\r\n actions() {\r\n this.configurationGroup$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.gridData = new ArrayStore({\r\n data: data,\r\n key: ['Id']\r\n });\r\n\r\n if (data.length == 0) {\r\n this.dataGrid.noDataText = 'No Configuration Groups Found';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n });\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getList() {\r\n this.configurationGroup$.getList().subscribe(listWithCreated => {\r\n this.configurationGroup$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n\r\n this.configurationGroup$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.getList();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n private deleteConfirm() {\r\n let param = { Id: this.entityData.value.Id };\r\n this.configurationGroup$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.entityData = new Entity();\r\n this.entityData.value = cloneDeep(this.newEntityData);\r\n this.entityData.created = true;\r\n this.isAddForm = 1;\r\n this.collapseColor = 'yellow';\r\n this.clearAndRefreshGrid();\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n assignVehicles() {\r\n let selectedRows = this.unassignedVehicleSelected;\r\n selectedRows.forEach(row => {\r\n let alreadyAssigned = this.entityData.value.AssignedVehicles.filter(a => a.DeviceId == row.DeviceId);\r\n this.entityData.value.UnassignedVehicles.splice(this.entityData.value.UnassignedVehicles.indexOf(row), 1);\r\n if (alreadyAssigned.length == 0) {\r\n this.entityData.value.AssignedVehicles.push(row);\r\n }\r\n });\r\n this.clearAndRefreshGrid();\r\n }\r\n\r\n unassignVehicles() {\r\n let selectedRows = this.assignedVehicleSelected;\r\n selectedRows.forEach(row => {\r\n let alreadyAssigned = this.entityData.value.UnassignedVehicles.filter(a => a.DeviceId == row.DeviceId);\r\n this.entityData.value.AssignedVehicles.splice(this.entityData.value.AssignedVehicles.indexOf(row), 1);\r\n if (alreadyAssigned.length == 0) {\r\n this.entityData.value.UnassignedVehicles.push(row);\r\n }\r\n });\r\n this.clearAndRefreshGrid();\r\n }\r\n\r\n clearAndRefreshGrid() {\r\n if (this.dataGridUnassignedVehicles && this.dataGridAssignedVehicles) {\r\n this.dataGridUnassignedVehicles.instance.clearSelection();\r\n this.dataGridUnassignedVehicles.instance.refresh();\r\n this.dataGridAssignedVehicles.instance.clearSelection();\r\n this.dataGridAssignedVehicles.instance.refresh();\r\n this.setNoDataText();\r\n }\r\n }\r\n\r\n onContentReadyGroup(e){\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Configuration Groups Found\";\r\n }\r\n\r\n onContentReadyAssigned() {\r\n this.dataGridAssignedVehicles.noDataText = this.dataGridAssignedVehicles.instance.totalCount() ? '' : \"No data\";\r\n }\r\n\r\n onContentReadyUnAssigned() {\r\n this.dataGridUnassignedVehicles.noDataText = this.dataGridUnassignedVehicles.instance.totalCount() ? '' : \"No data\";\r\n }\r\n\r\n setNoDataText() {\r\n this.dataGridUnassignedVehicles.noDataText = this.entityData.value.UnassignedVehicles?.length ? '' : \"No data\";\r\n this.dataGridAssignedVehicles.noDataText = this.entityData.value.AssignedVehicles?.length ? '' : \"No data\";\r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.app$.notifyScreenBusy();\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n this.configurationGroup$.getEntity(key).subscribe((res: any) => {\r\n this.app$.notifyScreenReady();\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.entityData.value = cloneDeep(res);\r\n this.unassignedVehicleSelected = [];\r\n this.assignedVehicleSelected = [];\r\n this.changeDetectorRef.detectChanges();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n }\r\n\r\n private reset() {\r\n this.entityData.restore();\r\n this.clearAndRefreshGrid();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData) {\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n\r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Configuration Group Name is required\r\n \r\n \r\n Configuration Group Name cannot be longer than 100 characters\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Vehicles\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\nexport class ConfigurationGroup {\r\n Id: Number;\r\n Name:String;\r\n AssignedVehicles: any;\r\n UnassignedVehicles: any;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class ConfigurationGroupInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: ConfigurationGroup[]) => void;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Entity } from '@app/app.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ConfigurationGroup, ConfigurationGroupInterface } from './configuration-group.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigurationGroupService implements ConfigurationGroupInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n\r\n notifyRetrieved(data: ConfigurationGroup[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.fleet.configurationGroup,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.fleet.configurationGroup, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.fleet.configurationGroup + \"/\" + param.Id, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getEntity(param) {\r\n return this._http.get(e.endpoint.fleet.configurationGroup + '/' + param.Id, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, AfterViewInit, OnDestroy, DoCheck } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NgForm } from '@angular/forms';\r\n\r\nimport { forkJoin, Subject } from 'rxjs';\r\n\r\nimport { DxDataGridComponent } from 'devextreme-angular/ui/data-grid';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\n\r\nimport { Enum, Entity } from '@app/app.model';\r\n\r\nimport { AppService } from '@app/app.service';\r\n\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DriverManagementInterface, DriverManagement } from './driver-management.model';\r\nimport { DriverManagementService } from './driver-management.service';\r\nimport { dxDataGridHeightAdjustment, dxSelectOptions, makePDIDropDownOptions } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-driver-management',\r\n templateUrl: './driver-management.component.html',\r\n styleUrls: ['./driver-management.component.scss'],\r\n providers: [\r\n {\r\n provide: DriverManagementInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new DriverManagementService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class DriverManagementComponent implements OnInit, OnDestroy {\r\n\r\n private unsubscribe$ = new Subject();\r\n private Active = 1;\r\n private data_toggle = false;\r\n private arrguments = {};\r\n languageList: Enum[];\r\n roleList: Enum[];\r\n entityName = 'Driver';\r\n dateFormat = '';\r\n\r\n ActiveInactiveDriverLookup = [\r\n { Deleted: false, Text: 'Active' },\r\n { Deleted: true, Text: 'InActive' }\r\n];\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n driverData: ArrayStore;\r\n driverManagement: Entity;\r\n dxSelectOptions = new dxSelectOptions();\r\n\r\n constructor(private driverManagement$: DriverManagementInterface, private actions$: ActionsService, private errors$: ErrorsService, private app$: AppService) {\r\n\r\n driverManagement$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.driverData = new ArrayStore({\r\n data: data,\r\n key: ['Id']\r\n });\r\n\r\n if (data.length == 0) {\r\n this.dataGrid.noDataText = 'No Drivers Found';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n this.dateFormat = this.app$.dateFormat;\r\n });\r\n\r\n this.arrguments = {\r\n language: this.driverManagement$.getLanguageList(),\r\n role: this.driverManagement$.getRoleList()\r\n };\r\n\r\n actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n // actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n\r\n if (errors) {\r\n\r\n let entityForm = document.getElementById('entity-form');\r\n\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getDriverList(){\r\n this.driverManagement$.getList().subscribe(listWithCreated => {\r\n this.driverManagement$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n ngOnInit() {\r\n this.app$.setScreenTitle(this.entityName);\r\n forkJoin(\r\n this.arrguments\r\n ).subscribe(\r\n multipleData => {\r\n this.languageList = multipleData['language'];\r\n this.roleList = multipleData['role'];\r\n this.roleList = this.roleList.filter(a=>a.id>0);\r\n this.getDriverList();\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n isInvalid(field: any) { return this.errors$.isInvalid(field); }\r\n\r\n getError(field: any) { return this.errors$.getError(field); }\r\n\r\n collapse() {\r\n this.data_toggle = !this.data_toggle;\r\n }\r\n\r\n\r\n private addNewEntity() {\r\n\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n\r\n this.driverManagement = new Entity();\r\n this.driverManagement.value.Id = 0;\r\n this.driverManagement.value.ValidDate = new Date();\r\n this.driverManagement.value.Deleted = false;\r\n this.driverManagement.created = true;\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n if (!this.driverManagement.value.ValidDate) {\r\n this.driverManagement.value.ValidDate = null;\r\n this.entityForm.form.get('ValidDate').markAsTouched();\r\n }\r\n this.driverManagement$.create(this.driverManagement).subscribe(\r\n\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deselectDriverManagement();\r\n this.getDriverList();\r\n },\r\n\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n private deselectDriverManagement() {\r\n this.dataGrid.instance.deselectRows(this.driverManagement.key);\r\n this.driverManagement.key = undefined;\r\n this.Active = 2;\r\n }\r\n\r\n private reset() {\r\n this.driverManagement.restore();\r\n }\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deselectDriverManagement(); \r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n onResize(e: any): void {\r\n this.resizeScreenContent(); \r\n }\r\n\r\n onSelectionChanged($clikedRow: any) {\r\n if (!this.driverManagement)\r\n try {\r\n let keySaved = JSON.parse(localStorage.getItem('driverManagement.dataGrid')).selectedRowKeys[0];\r\n\r\n if (keySaved) {\r\n this.selectDriverManagement(keySaved);\r\n }\r\n }\r\n catch{ }\r\n }\r\n\r\n private selectDriverManagement(key: any) {\r\n this.actions$.notifyEntityBusy();\r\n this.driverManagement = new Entity();\r\n this.driverManagement.key = key;\r\n\r\n this.driverData.byKey(key)\r\n .then(pt => {\r\n this.driverManagement.value = cloneDeep(pt);\r\n this.driverManagement.value.ValidDate = new Date(this.driverManagement.value.ValidDate);\r\n this.Active = this.driverManagement.value.Deleted ? 1 : 2;\r\n this.app$.notifyScreenReady()\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete(); \r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n if (!this.driverManagement)\r\n this.driverManagement = new Entity();\r\n\r\n if (JSON.stringify(this.driverManagement.key) === JSON.stringify($clikedRow.key)) {\r\n this.deselectDriverManagement();\r\n }\r\n else {\r\n this.selectDriverManagement($clikedRow.key);\r\n }\r\n }\r\n\r\n onCellPrepared(e: { rowType: string; column: { dataField: string; }; data: { Deleted: any; }; cellElement: { innerHTML: string; }; }) {\r\n if (e.rowType === \"data\" && e.column.dataField === \"Deleted\") {\r\n if (e.data.Deleted)\r\n e.cellElement.innerHTML = '';\r\n else\r\n e.cellElement.innerHTML = '';\r\n }\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n General Settings\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{getError('ValidDate')}}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
{{data.Name}}
\r\n
{{data.Code}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{getError('Name')}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{ t.name }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\nexport class DriverManagement {\r\n\r\n Id: number;\r\n Number: string;\r\n Name: string;\r\n ValidDate: Date;\r\n Barcode: string;\r\n iButtonId: string;\r\n Language: string;\r\n CanbusDriverId: string;\r\n Password: string;\r\n Deleted: boolean;\r\n CompanyId: string;\r\n\r\n}\r\n\r\n@Injectable()\r\nexport abstract class DriverManagementInterface implements EntityInterface {\r\n\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: DriverManagement[]) => void;\r\n getLanguageList: () => Observable;\r\n getRoleList: () => Observable;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Entity, Enum } from '@app/app.model';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\nimport { DriverManagement, DriverManagementInterface } from './driver-management.model';\r\n\r\n\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DriverManagementService implements DriverManagementInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.fleet.drivermanagement,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getEntity: (key: any) => Observable;\r\n\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.fleet.drivermanagement, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n notifyRetrieved(data: DriverManagement[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n getLanguageList(): Observable {\r\n return this._http.get(e.endpoint.fleet.masterDataLanguage + '/0', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n };\r\n getRoleList(): Observable {\r\n return this._http.get(e.endpoint.fleet.drivermanagement + '/roles', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n };\r\n}","import { ExportConfigurationService } from './export-configuration.service';\r\nimport { Config, ExportConfigurationInterface } from './export-configuration.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit, } from '@angular/core';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { displayZeroValueText } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-export-configuration',\r\n templateUrl: './export-configuration.component.html',\r\n styleUrls: ['./export-configuration.component.scss'],\r\n providers: [\r\n {\r\n provide: ExportConfigurationInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new ExportConfigurationService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class ExportConfigurationComponent implements OnInit {\r\n entityName = \"Export TransPac Configuration\";\r\n configValueTitle = \"Default Config Value\"\r\n configurationGroups: Config[];\r\n configurationValues: any[];\r\n groupSpecificConfigurationGroupNameId: any;\r\n isServerError: boolean;\r\n serverErrorMessage = \"\";\r\n\r\n constructor(\r\n private configuration$: ExportConfigurationInterface,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private actions$: ActionsService,\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.getConfiguration();\r\n }\r\n\r\n getConfiguration() {\r\n this.app$.notifyScreenBusy();\r\n this.configuration$.getConfigurationGroup().subscribe(res => {\r\n this.configurationGroups = res;\r\n this.app$.notifyScreenReady();\r\n this.groupSpecificConfigurationGroupNameId = 0;\r\n this.getConfigurationValues()\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n getConfigurationValues() {\r\n this.isServerError = false;\r\n var configId = this.groupSpecificConfigurationGroupNameId;\r\n this.configValueTitle = (configId != 0) ? \"Group Config Value\" : \"Default Config Value\";\r\n this.configurationValues = [];\r\n if(configId == 0){\r\n displayZeroValueText(this.configurationGroups,'groupSpecificConfigurationGroupNameId','Id','Name');\r\n }\r\n this.app$.notifyScreenBusy();\r\n this.configuration$.getConfigurationValues(configId).subscribe(res => {\r\n this.configurationValues = res['ConfigurationValues'];\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.handleServerErrors(errorGetList));\r\n }\r\n\r\n exportConfigurationValues() {\r\n this.isServerError = false;\r\n var configId = this.groupSpecificConfigurationGroupNameId;\r\n this.app$.notifyScreenBusy();\r\n this.configuration$.exportConfigurationSetByid(configId).subscribe(res => {\r\n this.exportJsonFile(res);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.handleServerErrors(errorGetList));\r\n };\r\n exportJsonFile(data) {\r\n var contentType = \"application/json\";\r\n try {\r\n var jsonString = JSON.stringify(data, null, 2);\r\n var blob = new Blob([jsonString], { type: contentType });\r\n var filename = \"ConfigurationSet.json\";\r\n var url = window.URL.createObjectURL(blob);\r\n var linkElement = document.createElement('a');\r\n linkElement.setAttribute('href', url);\r\n linkElement.setAttribute(\"download\", filename);\r\n var clickEvent = new MouseEvent(\"click\", {\r\n \"view\": window,\r\n \"bubbles\": true,\r\n \"cancelable\": false\r\n });\r\n linkElement.dispatchEvent(clickEvent);\r\n this.actions$.notifyEntityCustomAction({ title: 'Success', message: 'Export successful.' });\r\n this.app$.notifyScreenReady();\r\n } catch (ex) {\r\n console.log(ex);\r\n }\r\n }\r\n handleServerErrors(errorGetList) {\r\n this.isServerError = true;\r\n this.serverErrorMessage = errorGetList.message\r\n this.app$.notifyScreenReady();\r\n }\r\n closeServerErrors() {\r\n this.isServerError = !this.isServerError;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ entity.Name }}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Warning! \r\n {{ serverErrorMessage }}\r\n
\r\n\r\n 0\"\r\n >\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n Config Id\r\n \r\n Description\r\n \r\n {{ configValueTitle }}\r\n
\r\n
\r\n {{\r\n configurationvalue.Id\r\n }}\r\n
\r\n
\r\n
{{ configurationvalue.Name }}
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport class Config {\r\n Id: any;\r\n Name: any;\r\n}\r\n@Injectable()\r\nexport abstract class ExportConfigurationInterface {\r\n getConfigurationGroup: () => Observable;\r\n exportConfigurationSetByid: (data: any) => Observable;\r\n getConfigurationValues: (data: any) => Observable;\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { ExportConfigurationInterface } from './export-configuration.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExportConfigurationService implements ExportConfigurationInterface {\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n getConfigurationGroup(): Observable {\r\n return this._http.get(e.endpoint.fleet.configurationset, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getConfigurationValues(param: any): Observable {\r\n return this._http.get(e.endpoint.fleet.configurationset + \"/\" + param + '?noCache=' + new Date().getTime(), {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n exportConfigurationSetByid(param: any): Observable {\r\n return this._http.get(e.endpoint.fleet.configurationset + \"/export/\" + param, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { DxDataGridModule, DxToastModule, DxLoadPanelModule, DxPopupModule, DxTooltipModule, DxListModule, DxTabsModule, DxScrollViewModule, DxButtonModule, DxCheckBoxModule, DxPopoverModule, DxFileUploaderModule, DxTagBoxModule } from 'devextreme-angular';\r\n\r\nimport { AutosizeModule } from 'ngx-autosize';\r\n\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AssessmentComponent } from './assessment/assessment.component';\r\nimport { TooltipConditionsInfo_Assessment } from './assessment/tooltip-conditions-info';\r\nimport { ManageImagesComponent } from './manage-images/manage-images.component';\r\nimport { SharedModule } from '@app/_shared/shared.module';\r\nimport { DriverManagementComponent } from './driver-management/driver-management.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatNativeDateModule,MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport {MatRadioModule, MAT_RADIO_DEFAULT_OPTIONS} from '@angular/material/radio';\r\nimport {MatSelectModule} from '@angular/material/select';\r\nimport { AdditionalFieldsComponent } from './additional-fields/additional-fields.component';\r\nimport { ConfigurationGroupComponent } from './configuration-group/configuration-group.component';\r\nimport { VehicleComponent } from './vehicle/vehicle.component';\r\nimport { NgxSmartModalModule,NgxSmartModalService } from 'ngx-smart-modal';\r\nimport { TimeLogComponent } from './time-log/time-log.component';\r\nimport { TranspacConfigurationComponent } from './transpac-configuration/transpac-configuration.component';\r\nimport { ConfigFieldComponent } from './transpac-configuration/config-field/config-field.component';\r\nimport { ConfigurationModalComponent } from './transpac-configuration/configuration-modal/configuration-modal.component';\r\nimport { ModalConfigFieldComponent } from './transpac-configuration/modal-config-field/modal-config-field.component';\r\nimport { ExportConfigurationComponent } from './export-configuration/export-configuration.component';\r\nimport { ImportConfigurationComponent } from './import-configuration/import-configuration.component';\r\nimport { PdiDatePickerModule,PdiRadioModule} from '@pdi/platform-angular-template';\r\n\r\n@NgModule({\r\n \r\n declarations: [\r\n AssessmentComponent,\r\n TooltipConditionsInfo_Assessment,\r\n ManageImagesComponent,\r\n DriverManagementComponent,\r\n AdditionalFieldsComponent,\r\n ConfigurationGroupComponent,\r\n VehicleComponent,\r\n TimeLogComponent,\r\n TranspacConfigurationComponent,\r\n ConfigFieldComponent,\r\n ConfigurationModalComponent,\r\n ModalConfigFieldComponent,\r\n ExportConfigurationComponent,\r\n ImportConfigurationComponent\r\n ],\r\n providers: [\r\n {provide: MAT_DATE_LOCALE, useValue: 'en-GB'},\r\n {\r\n provide: MAT_RADIO_DEFAULT_OPTIONS,\r\n useValue: { color: 'accent' }\r\n },NgxSmartModalService\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule,\r\n DxDataGridModule,\r\n DxLoadPanelModule,\r\n DxTooltipModule,\r\n DxToastModule,\r\n DxPopupModule,\r\n DxListModule,\r\n DxTabsModule,\r\n DxButtonModule,\r\n DxCheckBoxModule,\r\n DxPopoverModule,\r\n DxFileUploaderModule,\r\n AutosizeModule,\r\n BrowserAnimationsModule,\r\n MatInputModule,\r\n MatNativeDateModule,\r\n MatSelectModule,\r\n DxTagBoxModule,\r\n NgxSmartModalModule.forRoot(),\r\n PdiDatePickerModule,\r\n PdiRadioModule\r\n ],\r\n exports: [MatRadioModule]\r\n})\r\nexport class FleetModule { }\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { ImportConfigurationService } from './import-configuration.service';\r\nimport { ImportConfigurationInterface } from './import-configuration.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { cloneDeep } from 'lodash';\r\n\r\n@Component({\r\n selector: 'facnm-import-configuration',\r\n templateUrl: './import-configuration.component.html',\r\n styleUrls: ['./import-configuration.component.scss'],\r\n providers: [\r\n {\r\n provide: ImportConfigurationInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new ImportConfigurationService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\n\r\nexport class ImportConfigurationComponent implements OnInit {\r\n entityName = \"Import TransPac Configuration\";\r\n compareConfigurationSet: any;\r\n importedConfigurationSet: any[];\r\n fileString: any;\r\n imageUploading: any[] = [];\r\n file: any;\r\n isDropZoneActive = false;\r\n showConfigModal: boolean;\r\n modalConfigurationValue: any;\r\n notValidFile: boolean;\r\n\r\n constructor(\r\n private configuration$: ImportConfigurationInterface,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private actions$: ActionsService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.app$.notifyScreenReady();\r\n }\r\n\r\n onDropZoneEnter(e:any) {\r\n if (e.dropZoneElement.id === 'dropzone-external') { this.isDropZoneActive = true; }\r\n }\r\n\r\n onDropZoneLeave(e:any) {\r\n if (e.dropZoneElement.id === 'dropzone-external') { this.isDropZoneActive = false; }\r\n }\r\n\r\n onPreview() {\r\n this.app$.notifyScreenBusy();\r\n this.fileString = null;\r\n this.notValidFile = false;\r\n this.importedConfigurationSet = [];\r\n this.file = this.imageUploading[0];\r\n let blob = this.file.slice(0, this.file.size, 'application/json');\r\n let fr = new FileReader();\r\n fr.onload = (e: any) => {\r\n this.fileString = e.target.result;\r\n try {\r\n this.importedConfigurationSet = JSON.parse(this.fileString);\r\n } catch (e) {\r\n this.notValidFile = true;\r\n }\r\n this.app$.notifyScreenReady();\r\n }\r\n fr.readAsText(blob);\r\n }\r\n\r\n uploadFile() {\r\n this.app$.notifyScreenBusy();\r\n this.configuration$.uploadConfigurationSet(this.importedConfigurationSet).subscribe(res => {\r\n this.compareConfigurationSet = res;\r\n this.app$.notifyScreenReady();\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: 'File upload successful.' });\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n importConfigurations() {\r\n \r\n if (this.compareConfigurationSet.CurrentDBVersion != this.compareConfigurationSet.ImportedDBVersion) {\r\n this.actions$.notifyEntityCustomAction({ type: 'warning', title: 'Error!', message: 'Cannot Import - Different DB version detected.' });\r\n return;\r\n }\r\n else if (this.compareConfigurationSet.ConfigurationSetType == 'Group' && this.compareConfigurationSet.ImportedDBGroupName == '') {\r\n this.actions$.notifyEntityCustomAction({ type: 'warning', title: 'Error!', message: 'Cannot Import - Imported Configs Group name required.' });\r\n return;\r\n }\r\n\r\n this.app$.notifyScreenBusy();\r\n this.configuration$.importConfigurationSet(this.compareConfigurationSet).subscribe((res) => {\r\n this.app$.notifyScreenReady();\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: 'Configurations import successful.' });\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n viewComplexConfigValue(configurationValue: any, XmlSchema: any) {\r\n configurationValue.XmlSchema = cloneDeep(XmlSchema);\r\n this.modalConfigurationValue = configurationValue;\r\n this.showConfigModal = true;\r\n }\r\n\r\n popupClose() {\r\n this.showConfigModal = false;\r\n }\r\n\r\n cancel() {\r\n this.fileString = null;\r\n this.file = null;\r\n this.importedConfigurationSet = [];\r\n this.compareConfigurationSet = null;\r\n this.isDropZoneActive = false;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Drag & Drop File Here
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n {{file.name}}\r\n
Not a valid config file.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{fileString}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Setting TypeImported Config SettingsCurrent DB Settings
Company Name{{compareConfigurationSet.ImportedCompanyName}}\r\n {{compareConfigurationSet.CurrentCompanyName}}\r\n
Database Version{{compareConfigurationSet.ImportedDBVersion}}\r\n {{compareConfigurationSet.CurrentDBVersion}}\r\n
Number of Config Values\r\n {{compareConfigurationSet.ImportedDBConfigCount}}\r\n {{compareConfigurationSet.CurrentDBConfigCount}}
Group Id : Group Name{{compareConfigurationSet.ImportedDBGroupId}} :\r\n {{compareConfigurationSet.ImportedDBGroupName}}{{compareConfigurationSet.CurrentDBGroupId}} :\r\n {{compareConfigurationSet.CurrentDBGroupName}}
Config IdDescriptionImported Config ValueCurrent DB Config Value
\r\n
{{configurationvalue.Id }}
\r\n
\r\n
\r\n
{{ configurationvalue.Name }}
\r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n \r\n \r\n
\r\n \r\n {{optionvalue.Name}}\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
0\">\r\n
\r\n \r\n \r\n
\r\n \r\n {{optionvalue.Name}}\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport abstract class ImportConfigurationInterface {\r\n uploadConfigurationSet: (data:any) => Observable;\r\n importConfigurationSet: (data:any) => Observable;\r\n}\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { ImportConfigurationInterface } from './import-configuration.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ImportConfigurationService implements ImportConfigurationInterface {\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n uploadConfigurationSet(data): Observable {\r\n return this._http.post(\r\n e.endpoint.fleet.configurationset + \"/upload\",\r\n data,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n importConfigurationSet(data): Observable {\r\n return this._http.post(\r\n e.endpoint.fleet.configurationset + \"/import\",\r\n data,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NgForm } from '@angular/forms';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { DxDataGridComponent, DxFileUploaderComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { AppService } from '@app/app.service';\r\nimport { Entity } from '@app/app.model';\r\n\r\nimport { saveAs } from 'file-saver';\r\n\r\nimport { ManageImagesInterface, ManageImage } from './manage-images.model';\r\nimport { ManageImagesService } from './manage-images.service';\r\n\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ServerError } from '@app/_shared/shared.model';\r\nimport { dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-manage-images',\r\n templateUrl: './manage-images.component.html',\r\n styleUrls: ['./manage-images.component.scss'],\r\n providers: [\r\n {\r\n provide: ManageImagesInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new ManageImagesService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class ManageImagesComponent implements OnInit, OnDestroy {\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n entityName = 'Image';\r\n\r\n manageImage: Entity;\r\n manageImagesStore: ArrayStore;\r\n\r\n @ViewChild('manageImageForm') manageImageForm: NgForm;\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n @ViewChild('imageUploader') imageUploader: DxFileUploaderComponent;\r\n imageUploading: any[] = [];\r\n imageUploadUrl;\r\n imageUploadHeaders;\r\n currentImageType: string;\r\n\r\n constructor(private manageImages$: ManageImagesInterface, private actions$: ActionsService, private errors$: ErrorsService, private app$: AppService) {\r\n\r\n this.imageUploadUrl = manageImages$.getUploadUrl();\r\n this.imageUploadHeaders = manageImages$.getUploadHeaders();\r\n\r\n manageImages$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.manageImagesStore = new ArrayStore({\r\n data: data,\r\n key: ['Id', 'Bw']\r\n });\r\n if (data.length == 0) {\r\n this.dataGrid.noDataText = 'No Images';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n });\r\n\r\n actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create());\r\n actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.save());\r\n actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n\r\n if (errors) {\r\n\r\n let entityForm = document.getElementById('entity-form');\r\n\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.app$.setScreenTitle('Manage ' + this.entityName + 's');\r\n\r\n forkJoin(\r\n\r\n this.manageImages$.getList()\r\n\r\n ).subscribe(\r\n multipleData => {\r\n\r\n this.manageImages$.notifyRetrieved(multipleData[0]);\r\n this.app$.notifyScreenReady();\r\n },\r\n\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n\r\n }\r\n\r\n\r\n onSelectionChanged($clikedRow) {\r\n\r\n if (!this.manageImage)\r\n try {\r\n let keySaved = JSON.parse(localStorage.getItem('manage-images.dataGrid')).selectedRowKeys[0];\r\n if (keySaved) {\r\n this.selectManageImage(keySaved);\r\n }\r\n }\r\n catch{ }\r\n else {\r\n }\r\n }\r\n\r\n onRowClick($clikedRow) {\r\n\r\n this.app$.setScreenTitle('Manage ' + this.entityName + 's');\r\n\r\n if (!this.manageImage)\r\n this.manageImage = new Entity();\r\n if (JSON.stringify(this.manageImage.key) === JSON.stringify($clikedRow.key)) {\r\n this.deselectManageImage();\r\n }\r\n else {\r\n this.selectManageImage($clikedRow.key);\r\n }\r\n }\r\n\r\n\r\n isInvalid(field) { return this.errors$.isInvalid(field); }\r\n\r\n getError(field) { return this.errors$.getError(field); }\r\n\r\n\r\n onImageUploadChanged(e) {\r\n this.imageUploadUrl = this.updateQueryStringParameter(this.imageUploadUrl, \"id\", this.manageImage.value.IdNew);\r\n e.component.option(\"uploadUrl\", this.imageUploadUrl);\r\n }\r\n\r\n\r\n onImageUploadStarted(e) {\r\n\r\n this.actions$.notifyEntityBusy();\r\n }\r\n\r\n\r\n\r\n onImageUploaded(e) {\r\n\r\n\r\n this.manageImage.value.Image = JSON.parse(e.request.response).Image;\r\n this.currentImageType = this.app$.getImageType(this.manageImage.value.Image);\r\n\r\n this.app$.notifyScreenReady();\r\n }\r\n\r\n onImageUploadError(e) {\r\n\r\n let error = JSON.parse(e.request.response);\r\n\r\n let serverError = new ServerError();\r\n serverError.message = error.Message;\r\n serverError.details = error.ExceptionMessage;\r\n\r\n this.errors$.handleServerErrors(serverError);\r\n }\r\n\r\n imageDownload(url) {\r\n\r\n let description = this.manageImage.value.Description;\r\n let imageType = this.currentImageType;\r\n\r\n fetch(url)\r\n .then(response => response.blob())\r\n .then(blob => saveAs(blob, description + '.' + imageType))\r\n }\r\n\r\n updateQueryStringParameter(uri, key, value) {\r\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|$)\", \"i\");\r\n var separator = uri.indexOf('?') !== -1 ? \"&\" : \"?\";\r\n if (uri.match(re)) {\r\n return uri.replace(re, '$1' + key + \"=\" + value + '$2');\r\n }\r\n else {\r\n return uri + separator + key + \"=\" + value;\r\n }\r\n }\r\n\r\n\r\n allowOnlyNumbers(evt) {\r\n\r\n return this.app$.allowOnlyNumbers(evt);\r\n }\r\n\r\n private addNewEntity() {\r\n\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n\r\n this.manageImage = new Entity();\r\n this.manageImage.created = true;\r\n }\r\n\r\n private reset() {\r\n\r\n this.manageImage.restore();\r\n }\r\n\r\n private create() {\r\n\r\n this.handleFormSubmit();\r\n\r\n this.manageImages$.create(this.manageImage).subscribe(\r\n (okCreate) => {\r\n\r\n this.app$.setScreenTitle('Manage ' + this.entityName + 's');\r\n\r\n this.manageImages$.getList().subscribe(listWithCreated => {\r\n\r\n this.manageImages$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n\r\n this.deselectManageImage();\r\n },\r\n (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n\r\n private save() {\r\n\r\n this.handleFormSubmit();\r\n\r\n this.manageImages$.save(this.manageImage).subscribe(\r\n (okSave) => {\r\n\r\n this.actions$.notifySaved();\r\n\r\n this.deselectManageImage();\r\n\r\n this.manageImages$.getList().subscribe(listWithSaved => {\r\n\r\n this.manageImages$.notifyRetrieved(listWithSaved)\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorSave) => {\r\n this.errors$.handleServerErrors(errorSave);\r\n }\r\n );\r\n }\r\n\r\n\r\n private deleteConfirm() {\r\n\r\n this.manageImages$.delete(this.manageImage.key).subscribe(\r\n (okDelete) => {\r\n\r\n this.actions$.notifyDeleted();\r\n\r\n this.deselectManageImage();\r\n\r\n this.manageImages$.getList().subscribe(data => {\r\n\r\n this.manageImages$.notifyRetrieved(data);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n\r\n private cancel() {\r\n\r\n this.app$.setScreenTitle('Manage ' + this.entityName + 's');\r\n\r\n this.deselectManageImage();\r\n }\r\n\r\n\r\n private handleFormSubmit() {\r\n this.manageImageForm.form.markAsPristine();\r\n this.manageImageForm.form.markAsUntouched();\r\n this.manageImageForm.form.updateValueAndValidity();\r\n }\r\n\r\n\r\n private selectManageImage(key: any) {\r\n\r\n this.actions$.notifyEntityBusy();\r\n\r\n this.manageImages$.getEntity(key).pipe(\r\n map(entity => {\r\n return entity;\r\n }),\r\n ).subscribe(\r\n\r\n (entityMapped) => {\r\n this.manageImage = new Entity();\r\n this.manageImage.value = entityMapped;\r\n this.manageImage.key = key;\r\n\r\n this.currentImageType = this.app$.getImageType(this.manageImage.value.Image);\r\n\r\n this.app$.notifyScreenReady()\r\n },\r\n\r\n (errorGetEntity) => this.errors$.handleServerErrors(errorGetEntity)\r\n );\r\n }\r\n\r\n private deselectManageImage() {\r\n this.dataGrid.instance.deselectRows(this.manageImage.key);\r\n this.manageImage.key = undefined;\r\n\r\n this.imageUploader.value = [];\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n onInitialized(e) {\r\n this.resizeScreenContent();\r\n }\r\n ngAfterViewInit() {\r\n this.resizeScreenContent();\r\n }\r\n onResize(e): void {\r\n this.resizeScreenContent();\r\n }\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n}\r\n","
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n {{getError('IdNew')}}\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n {{getError('BwNew')}}\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n {{getError('Description')}}\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n Download\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity } from \"@app/app.model\";\r\n\r\n\r\nexport class ManageImage {\r\n\r\n Id: number;\r\n Bw: boolean;\r\n IdNew: number;\r\n BwNew: boolean;\r\n \r\n Description: string;\r\n\r\n Image: string;\r\n}\r\n\r\n\r\n\r\n@Injectable()\r\nexport abstract class ManageImagesInterface implements EntityInterface {\r\n\r\n create: (data: Entity) => Observable;\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n delete: (data: any) => Observable;\r\n\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n\r\n ListRetrieved: Observable;\r\n\r\n notifyRetrieved: (data: ManageImage[]) => void;\r\n\r\n getUploadUrl: () => string;\r\n getUploadHeaders: () => any;\r\n}","import { Injectable } from '@angular/core';\r\nimport { ManageImagesInterface, ManageImage } from './manage-images.model';\r\nimport { Entity } from '@app/app.model';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ManageImagesService implements ManageImagesInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.post(\r\n e.endpoint.fleet.manageImages,\r\n data.value,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n save(data: Entity): Observable {\r\n\r\n return this._http.put(\r\n e.endpoint.fleet.manageImages,\r\n data.value,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n delete(data: any): Observable {\r\n\r\n return this._http.request('delete',\r\n e.endpoint.fleet.manageImages,\r\n {\r\n body: data,\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n getList(): Observable {\r\n\r\n return this._http.get(e.endpoint.fleet.manageImages, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n notifyRetrieved(data: ManageImage[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n\r\n getEntity(key: any): Observable {\r\n\r\n return this._http.get(e.endpoint.fleet.manageImages + '/' + key.Id + '/' + key.Bw, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n getUploadUrl() { return e.endpoint.fleet.manageImagesUploadURL };\r\n getUploadHeaders() {\r\n return {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n };\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TimeLogInterface, TimeLog } from './time-log.model';\r\nimport { TimeLogService } from './time-log.service';\r\nimport { dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-time-log',\r\n templateUrl: './time-log.component.html',\r\n styleUrls: ['./time-log.component.scss'],\r\n providers: [\r\n {\r\n provide: TimeLogInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new TimeLogService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class TimeLogComponent implements OnInit {\r\n\r\n constructor(\r\n private timeLog$: TimeLogInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n private unsubscribe$ = new Subject();\r\n gridData: ArrayStore;\r\n isAddForm = 0;\r\n entityName = 'Time Log';\r\n entityData: Entity;\r\n newEntityData: TimeLog;\r\n newEntity: any;\r\n timeLogTypeList: any[];\r\n\r\n ngOnInit(): void {\r\n this.actions();\r\n this.getList();\r\n this.app$.setScreenTitle(this.entityName);\r\n forkJoin({\r\n newEntity: this.timeLog$.getNewEntity(),\r\n timeLogType: this.timeLog$.getTimeLogTypeList()\r\n }).subscribe(\r\n res => {\r\n this.newEntityData = res['newEntity'];\r\n this.timeLogTypeList = res['timeLogType'];\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n actions() {\r\n this.timeLog$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.gridData = new ArrayStore({\r\n data: data,\r\n key: [\"TimeLogType\", \"TimeLogId\", \"Number\"]\r\n });\r\n }\r\n });\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getList() {\r\n this.timeLog$.getList().subscribe(listWithCreated => {\r\n this.timeLog$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n\r\n this.timeLog$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.getList();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n private deleteConfirm() {\r\n let param = {\r\n TimeLogType: this.entityData.value.TimeLogType,\r\n TimeLogId: this.entityData.value.TimeLogId,\r\n Number: this.entityData.value.Number,\r\n };\r\n this.timeLog$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.entityData = new Entity();\r\n this.entityData.value = cloneDeep(this.newEntityData);\r\n this.entityData.created = true;\r\n this.changeDetectorRef.detectChanges();\r\n this.isAddForm = 1;\r\n }\r\n\r\n onContentReadyGroup(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Time Logs Found\";\r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.actions$.notifyEntityBusy();\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.changeDetectorRef.detectChanges();\r\n this.gridData.byKey(key)\r\n .then(pt => {\r\n pt.WorkType = pt.WorkType ? pt.WorkType : 2;\r\n this.entityData.value = cloneDeep(pt);\r\n this.app$.notifyScreenReady();\r\n this.isAddForm = 0;\r\n });\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n }\r\n\r\n private reset() {\r\n this.entityData.restore();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData) {\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n\r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Time Log is required\r\n \r\n \r\n Time Log cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n Time Log Type\r\n
\r\n
\r\n \r\n \r\n {{timeLogType.Name}}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Please select a Time Log Type\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity } from \"@app/app.model\";\r\n\r\nexport class TimeLog {\r\n Id: number;\r\n Name: string;\r\n Number: number;\r\n IsEditable: boolean;\r\n TimeLogId: number;\r\n TimeLogName: string;\r\n TimeLogType: number\r\n WorkType: number;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class TimeLogInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: TimeLog[]) => void;\r\n\r\n getNewEntity: () => Observable;\r\n getTimeLogTypeList: () => Observable;\r\n\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Entity } from '@app/app.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { TimeLog, TimeLogInterface } from './time-log.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TimeLogService implements TimeLogInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n\r\n save: (data: Entity) => Observable;\r\n getEntity: (data: any) => Observable;\r\n\r\n notifyRetrieved(data: TimeLog[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.fleet.timeLog, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.fleet.timeLog,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.fleet.timeLog + \"/\" + param.TimeLogType + \"/\" + param.TimeLogId + \"/\" + param.Number, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewEntity() {\r\n return this._http.get(e.endpoint.fleet.timeLog + '/newtimelog', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getTimeLogTypeList() {\r\n return this._http.get(e.endpoint.fleet.timeLog + '/timelogtypes', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { areArraysEqual, checkPattern } from '@app/common_helper';\r\nimport { cloneDeep } from 'lodash';\r\n\r\n@Component({\r\n selector: 'facnm-config-field',\r\n templateUrl: './config-field.component.html',\r\n styleUrls: ['./config-field.component.scss']\r\n})\r\nexport class ConfigFieldComponent implements OnInit {\r\n inputAccessKey: any;\r\n\r\n\r\n constructor() { }\r\n @Input() configPageType = 1;\r\n @Input() configurationValue;\r\n @Input() configType = 1;\r\n @Input() disabled = false;\r\n @Input() showGroupCount = false;\r\n @Input() showDelete = false;\r\n @Input() showAction = false;\r\n @Output() deleteConfig: EventEmitter = new EventEmitter();\r\n @Input() selectedDeviceDriver: any;\r\n @Input() selectedGroupNameId: any;\r\n @Output() refreshComplexConfig: EventEmitter = new EventEmitter();\r\n showConfigModal = false;\r\n\r\n accessKey = 'DefaultValue';\r\n flagsValueKey = 'DefaultFlagsValue';\r\n booleanValueKey = 'DefaultBooleanValue';\r\n xmlKey = 'DefaultXmlSchema';\r\n accessKeys = { 1: 'DefaultValue', 2: 'DeviceValue', 3: 'DriverValue', 4: 'GroupValue' };\r\n flagsValueKeys = { 1: 'DefaultFlagsValue', 2: 'DeviceFlagsValue', 3: 'DriverFlagsValue', 4: 'GroupFlagsValue' };\r\n booleanValueKeys = { 1: 'DefaultBooleanValue', 2: 'DeviceBooleanValue', 3: 'DriverBooleanValue', 4: 'GroupBooleanValue' };\r\n xmlKeys = { 1: 'DefaultXmlSchema', 2: 'DeviceXmlSchema', 3: 'DriverXmlSchema', 4: 'GroupXmlSchema' };\r\n\r\n ngOnInit(): void {\r\n this.inputAccessKey = this.configurationValue.Type + this.configurationValue.Id;\r\n this.accessKey = this.accessKeys[this.configType];\r\n this.flagsValueKey = this.flagsValueKeys[this.configType];\r\n this.booleanValueKey = this.booleanValueKeys[this.configType];\r\n this.xmlKey = this.xmlKeys[this.configType];\r\n if (this.configurationValue.Type == 'int' || this.configurationValue.Type == 'float') {\r\n this.checkPattern();\r\n }\r\n }\r\n\r\n preDeleteConfigurationValue() {\r\n this.deleteConfig.emit();\r\n }\r\n\r\n viewEditComplexConfigValue() {\r\n //view edit complex config value\r\n this.configurationValue.deviceId = null;\r\n this.configurationValue.driverId = null;\r\n if (this.configType == 2) {\r\n this.configurationValue.deviceId = this.selectedDeviceDriver;\r\n this.configurationValue.XmlSchema = cloneDeep(this.configurationValue.DeviceXmlSchema);\r\n }\r\n else if (this.configType == 3) {\r\n this.configurationValue.driverId = this.selectedDeviceDriver;\r\n this.configurationValue.XmlSchema = cloneDeep(this.configurationValue.DriverXmlSchema);\r\n }\r\n else if (this.configType == 4) {\r\n this.configurationValue.GroupId = this.selectedGroupNameId;\r\n this.configurationValue.XmlSchema = cloneDeep(this.configurationValue.GroupXmlSchema);\r\n }\r\n else {\r\n this.configurationValue.XmlSchema = cloneDeep(this.configurationValue.DefaultXmlSchema);\r\n }\r\n this.showConfigModal = true;\r\n }\r\n\r\n disableEnableDeleteButton() {\r\n switch (this.configurationValue.Type) {\r\n case \"xml\":\r\n return this.configurationValue.OriginalXmlSchema == null;\r\n case \"bool\":\r\n return this.configurationValue.OriginalBooleanValue == null;\r\n case \"flags\":\r\n return this.configurationValue.OriginalFlagsValue == null;\r\n case \"color\":\r\n case \"dastr\":\r\n case \"float\":\r\n case \"int\":\r\n case \"str\":\r\n return this.configurationValue.OriginalValue == null;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n checkChanges() {\r\n switch (this.configurationValue.Type) {\r\n case \"xml\":\r\n return this.configurationValue[this.xmlKey] != this.configurationValue.OriginalXmlSchema;\r\n case \"bool\":\r\n return this.configurationValue[this.booleanValueKey] != this.configurationValue.OriginalBooleanValue;\r\n case \"flags\":\r\n let arr1 = this.configurationValue[this.flagsValueKey] || [];\r\n let arr2 = this.configurationValue.OriginalFlagsValue || [];\r\n return !areArraysEqual(arr1, arr2);\r\n case \"color\":\r\n case \"dastr\":\r\n case \"float\":\r\n case \"int\":\r\n case \"str\":\r\n return this.configurationValue[this.accessKey] != this.configurationValue.OriginalValue;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n isChanged() {\r\n if (!this.disabled)\r\n this.configurationValue.IsChanged = this.checkChanges();\r\n }\r\n\r\n checkPattern() {\r\n this.isChanged();\r\n let val = this.configurationValue[this.accessKey];\r\n this.configurationValue.invalid = !checkPattern(this.configurationValue.Type, val);\r\n }\r\n\r\n setBoolValue() {\r\n if (this.configurationValue.BooleanValue == true)\r\n this.configurationValue.UIValue = \"1\";\r\n else this.configurationValue.UIValue = \"0\";\r\n this.isChanged();\r\n }\r\n\r\n popupClose() {\r\n this.showConfigModal = false;\r\n if (!this.disabled) {\r\n this.refreshComplexConfig.emit();\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
0\">\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {{optionvalue.Name}}\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n {{ configurationValue.GroupCount }}\r\n \r\n \r\n
\r\n {{configurationValue.GroupName}}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n {{ configurationValue.Name }} is not a valid decimal number\r\n \r\n \r\n {{ configurationValue.Name }} is not a valid integer number\r\n \r\n\r\n\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2 } from '@angular/core';\r\nimport { getConfigLables } from '@app/common_helper';\r\nimport { cloneDeep } from 'lodash';\r\nimport { NgxSmartModalService } from 'ngx-smart-modal';\r\nimport { TranspacConfigurationInterface } from '../transpac-configuration.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { TranspacConfigurationService } from '../transpac-configuration.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\n\r\n@Component({\r\n selector: 'facnm-configuration-modal',\r\n templateUrl: './configuration-modal.component.html',\r\n styleUrls: ['./configuration-modal.component.scss'],\r\n providers: [\r\n {\r\n provide: TranspacConfigurationInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new TranspacConfigurationService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class ConfigurationModalComponent implements OnInit {\r\n\r\n @Output() popupClose: EventEmitter = new EventEmitter();\r\n @Input() configurationValue: any;\r\n @Input() readonly = false;\r\n\r\n modalHeading: any;\r\n multiFormSettings: any;\r\n labelConfig: any;\r\n newDataIndex: any;\r\n isNew: boolean;\r\n serverErrors: any\r\n\r\n constructor(\r\n private ngxSmartModalService: NgxSmartModalService,\r\n private configuration$: TranspacConfigurationInterface,\r\n private actions$: ActionsService,\r\n private renderer: Renderer2,\r\n private element: ElementRef\r\n ) { }\r\n\r\n ngAfterViewInit() {\r\n this.ngxSmartModalService.open('modal');\r\n }\r\n\r\n ngOnInit(): void {\r\n this.newDataIndex = [];\r\n this.modalHeading = this.configurationValue.Name;\r\n if (!this.configurationValue.XmlSchema.isSingle) {\r\n this.labelConfig = getConfigLables(this.configurationValue.Id);\r\n this.multiFormSettings = {\r\n newForm: cloneDeep(this.configurationValue.XmlSchema.fieldSequence.splice(this.configurationValue.XmlSchema.fieldSequence.length - 1, 1)),\r\n stagingComplexConfig: cloneDeep(this.configurationValue.XmlSchema.fieldSequence),\r\n selectedFormIndex: 0,\r\n copiedForm: null\r\n }\r\n }\r\n }\r\n\r\n addNewRegister() {\r\n this.modalHeading = this.labelConfig.addModalTitle;\r\n this.isNew = true;\r\n this.multiFormSettings.stagingComplexConfig.push(cloneDeep(this.multiFormSettings.newForm[0]));\r\n this.multiFormSettings.selectedFormIndex = this.multiFormSettings.stagingComplexConfig.length - 1;\r\n this.newDataIndex.push(this.multiFormSettings.selectedFormIndex);\r\n }\r\n\r\n isNewGroup() {\r\n this.isNew = this.newDataIndex.indexOf(this.multiFormSettings.selectedFormIndex) > -1\r\n if (this.isNew) {\r\n this.modalHeading = this.labelConfig.addModalTitle;\r\n } else {\r\n this.modalHeading = this.configurationValue.Name;\r\n }\r\n }\r\n\r\n onPopupClose() {\r\n this.popupClose.emit();\r\n }\r\n\r\n onPopupCancel() {\r\n this.ngxSmartModalService.close('modal');\r\n }\r\n\r\n onPopupSave() {\r\n this.closeServerErrors();\r\n if (!this.configurationValue.XmlSchema.isSingle) {\r\n this.configurationValue.XmlSchema.fieldSequence = cloneDeep(this.multiFormSettings.stagingComplexConfig);\r\n }\r\n\r\n this.configuration$.saveModalConfigurationValues(this.configurationValue).subscribe(\r\n (okCreate) => {\r\n if (!this.configurationValue.XmlSchema.isSingle) {\r\n this.newDataIndex = [];\r\n this.isNewGroup();\r\n }\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: \"Saved Configuration details successfully\" });\r\n },\r\n (errorCreate) => {\r\n this.serverErrors = errorCreate;\r\n this.scrollToModalTop()\r\n }\r\n )\r\n }\r\n\r\n copyConfigValue() {\r\n this.multiFormSettings.copiedForm = cloneDeep(this.multiFormSettings.stagingComplexConfig[this.multiFormSettings.selectedFormIndex]);\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: \"Copied config values successfully\" });\r\n }\r\n\r\n pasteConfigValue() {\r\n this.multiFormSettings.stagingComplexConfig[this.multiFormSettings.selectedFormIndex] =\r\n cloneDeep(this.multiFormSettings.copiedForm);\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: \"Paste config values successfully\" });\r\n }\r\n\r\n deleteConfig() {\r\n if (this.multiFormSettings.stagingComplexConfig.length) {\r\n this.multiFormSettings.stagingComplexConfig.splice(this.multiFormSettings.selectedFormIndex, 1);\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: \"Config values deleted successfully\" });\r\n if (this.multiFormSettings.stagingComplexConfig.length > 0)\r\n this.multiFormSettings.selectedFormIndex = 0;\r\n }\r\n }\r\n\r\n closeServerErrors() {\r\n this.serverErrors = \"\";\r\n }\r\n\r\n scrollToModalTop() {\r\n const bodyElement = this.element.nativeElement.querySelector('#modal-body');\r\n this.renderer.setProperty(bodyElement, 'scrollTop', 0);\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
{{modalHeading}}
\r\n
\r\n
\r\n
\r\n Error! {{serverErrors.message}} {{serverErrors.details}}\">\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { checkPattern } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-modal-config-field',\r\n templateUrl: './modal-config-field.component.html',\r\n styleUrls: ['./modal-config-field.component.scss']\r\n})\r\n\r\nexport class ModalConfigFieldComponent implements OnInit {\r\n @Input() form: any;\r\n @Input() readonly = false;\r\n @Input() isSingle: any;\r\n @Input() configId: any;\r\n requiredCheck = true;\r\n noDefaultValConfigs = [409, 283];\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.requiredCheck = !this.readonly && (!this.isSingle || this.isNoDefaultValConfig());\r\n this.form.map(fielditem => {\r\n if (fielditem.fieldType == 'ComplexType' && fielditem.minOccurs == '0' && fielditem.maxOccurs == 'unbounded') {\r\n fielditem.fieldSequence.map(complexitem => {\r\n complexitem.fieldValue = complexitem.fieldOptions.filter((item) => item.IsSelected);\r\n });\r\n }\r\n });\r\n }\r\n\r\n formatLabel(str) {\r\n return str.replace(/_/g, ' ').replace(/([a-z])([A-Z])/g, \"$1 $2\").replace(/(^\\w{1})|(\\s+\\w{1})/g, letter => letter.toUpperCase());\r\n }\r\n\r\n checkPattern(type: any, val: any) {\r\n return !checkPattern(type, val);\r\n }\r\n\r\n onItemReordered(complexItem: any, e: any) {\r\n complexItem.fieldOptions.splice(e.toIndex, 0, complexItem.fieldOptions.splice(e.fromIndex, 1)[0]);\r\n this.updateSeletedSortedList(complexItem);\r\n }\r\n\r\n updateSeletedSortedList(complexItem: any) {\r\n complexItem.fieldValue = complexItem.fieldOptions.filter((i) => i.IsSelected);\r\n }\r\n\r\n isNoDefaultValConfig() {\r\n // No default attributes in XML schema.\r\n return this.noDefaultValConfigs.includes(this.configId);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n {{formatLabel(fielditem.fieldName)}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
{{option.Name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{formatLabel(fielditem.fieldName)}}\r\n
\r\n
\r\n
\r\n {{formatLabel(complexitem.fieldName)}}\r\n
\r\n
0\">\r\n \r\n {{opt.Name}}\r\n \r\n \r\n\r\n
\r\n \r\n {{ formatLabel(fielditem.fieldName) }} is required\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n\r\n
\r\n \r\n {{ formatLabel(complexitem.fieldName) }} is required\r\n \r\n \r\n {{ formatLabel(complexitem.fieldName) }} is not a valid integer number\r\n \r\n \r\n {{ formatLabel(complexitem.fieldName) }} is not a valid decimal number\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n {{formatLabel(fielditem.fieldName)}}\r\n
\r\n\r\n
0\">\r\n \r\n {{opt.Name}}\r\n \r\n \r\n
\r\n \r\n {{ formatLabel(fielditem.fieldName) }} is required\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n {{ formatLabel(fielditem.fieldName) }} is required\r\n \r\n \r\n {{ formatLabel(fielditem.fieldName) }} is not a valid integer number\r\n \r\n \r\n {{ formatLabel(fielditem.fieldName) }} is not a valid decimal number\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { TranspacConfigurationService } from './transpac-configuration.service';\r\nimport { Config, TranspacConfigurationInterface } from './transpac-configuration.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { AppService } from '@app/app.service';\r\nimport { ConfigurationGroupService } from '@fleet/configuration-group/configuration-group.service';\r\nimport { DriverManagementService } from '@fleet/driver-management/driver-management.service';\r\nimport { IsUndefinedOrNull, checkPattern, dxSelectOptions } from '@app/common_helper';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'facnm-transpac-configuration',\r\n templateUrl: './transpac-configuration.component.html',\r\n styleUrls: ['./transpac-configuration.component.scss'],\r\n providers: [\r\n {\r\n provide: TranspacConfigurationInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new TranspacConfigurationService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\n\r\nexport class TranspacConfigurationComponent implements OnInit {\r\n entityName = \"TransPac Configuration\";\r\n configurationGroups: Config[];\r\n selectedConfigurationType: any;\r\n selectedDeviceDriver: any;\r\n groupSpecificConfigurationGroupNameId: any;\r\n searchString: any;\r\n deviceList: any;\r\n driverList: any;\r\n configurationGroupsList: any;\r\n selectedConfigurationGroupId: any;\r\n configurationValues: any[];\r\n transPacConfigurationForm: any;\r\n selectedDeviceSpecific: boolean;\r\n selectedGroupSpecificConfigurationGroup: boolean;\r\n isSearchActive: any;\r\n searchConfigSubject: Subject = new Subject();\r\n accessKeys = { 1: 'DefaultValue', 2: 'DeviceValue', 3: 'DriverValue', 4: 'GroupValue' };\r\n flagsValueKeys = { 1: 'DefaultFlagsValue', 2: 'DeviceFlagsValue', 3: 'DriverFlagsValue', 4: 'GroupFlagsValue' };\r\n booleanValueKeys = { 1: 'DefaultBooleanValue', 2: 'DeviceBooleanValue', 3: 'DriverBooleanValue', 4: 'GroupBooleanValue' };\r\n xmlKeys = { 1: 'DefaultXmlSchema', 2: 'DeviceXmlSchema', 3: 'DriverXmlSchema', 4: 'GroupXmlSchema' };\r\n deleteConfirmMsg: string;\r\n deleteIndex: any;\r\n deleteConfigValue: any;\r\n ShowDeleteConfirm = false;\r\n oldSearchString: any;\r\n dxSelectOptions = new dxSelectOptions();\r\n\r\n constructor(\r\n private configuration$: TranspacConfigurationInterface,\r\n private configurationGroup$: ConfigurationGroupService,\r\n private driver$: DriverManagementService,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.selectedConfigurationType = 1;\r\n this.getConfigurationGroup();\r\n this.searchConfigSubject.pipe(\r\n debounceTime(1000),\r\n )\r\n .subscribe(content => {\r\n this.searchConfiguration(content);\r\n });\r\n }\r\n\r\n getConfigurationGroup() {\r\n this.app$.notifyScreenBusy();\r\n this.configuration$.getConfigurationGroup().subscribe(res => {\r\n this.configurationGroups = res;\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n onConfigurationTypeChange() {\r\n this.configurationValues = [];\r\n this.selectedConfigurationGroupId = null;\r\n switch (this.selectedConfigurationType) {\r\n case \"2\":\r\n this.deviceSpecificConfig();\r\n break;\r\n case \"3\":\r\n this.driverSpecificConfig();\r\n break;\r\n case \"4\":\r\n this.groupSpecificConfig();\r\n break;\r\n\r\n default:\r\n this.onDeviceDriverChange();\r\n break;\r\n }\r\n }\r\n\r\n onDeviceDriverChange() {\r\n this.configurationValues = [];\r\n if (this.selectedConfigurationType == \"1\" || this.selectedConfigurationType == \"3\") {\r\n if (this.selectedConfigurationGroupId != null)\r\n this.getConfigurationValuesByGroupId(this.selectedConfigurationGroupId);\r\n else this.getConfigurationValuesByGroupId(0);\r\n }\r\n else if (this.selectedConfigurationType == \"2\") {\r\n if (this.selectedConfigurationGroupId != null && this.selectedDeviceSpecific == false)\r\n this.getConfigurationValuesByGroupId(this.selectedConfigurationGroupId);\r\n else this.getConfigurationValuesByDeviceId();\r\n }\r\n }\r\n\r\n deviceSpecificConfig() {\r\n if (this.deviceList) {\r\n this.selectedDeviceDriver = this.deviceList[0].Id;\r\n this.onDeviceDriverChange();\r\n } else {\r\n this.app$.notifyScreenBusy();\r\n this.configuration$.getDeviceList().subscribe(res => {\r\n this.app$.notifyScreenReady();\r\n this.deviceList = res;\r\n this.selectedDeviceDriver = this.deviceList[0].Id;\r\n this.onDeviceDriverChange();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n }\r\n\r\n driverSpecificConfig() {\r\n if (this.driverList) {\r\n this.selectedDeviceDriver = this.driverList[0].Id;\r\n this.onDeviceDriverChange();\r\n } else {\r\n this.app$.notifyScreenBusy();\r\n this.driver$.getList().subscribe(res => {\r\n this.app$.notifyScreenReady();\r\n this.driverList = res;\r\n this.selectedDeviceDriver = this.driverList[0].Id;\r\n this.onDeviceDriverChange();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n\r\n }\r\n }\r\n\r\n groupSpecificConfig() {\r\n if (this.configurationGroupsList) {\r\n this.groupSpecificConfigurationGroupNameId = this.configurationGroupsList[0].Id;\r\n this.onConfigurationGroupChange();\r\n } else {\r\n this.app$.notifyScreenBusy();\r\n this.configurationGroup$.getList().subscribe(res => {\r\n this.app$.notifyScreenReady();\r\n this.configurationGroupsList = res;\r\n this.groupSpecificConfigurationGroupNameId = this.configurationGroupsList[0].Id;\r\n this.onConfigurationGroupChange();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n\r\n }\r\n }\r\n\r\n onConfigurationGroupChange = function () {\r\n if (this.groupSpecificConfigurationGroupNameId != null) {\r\n this.getConfigurationValuesByConfigurationGroupId();\r\n }\r\n else {\r\n this.getConfigurationValuesByGroupId(this.selectedConfigurationGroupId);\r\n }\r\n }\r\n\r\n getConfigurationValuesByConfigurationGroupId() {\r\n this.selectedGroupSpecificConfigurationGroup = true;\r\n this.selectedConfigurationGroupId = null;\r\n this.selectedDeviceSpecific = false;\r\n this.searchString = \"\";\r\n this.oldSearchString = \"\";\r\n this.isSearchActive = false;\r\n this.configurationValues = [];\r\n if (this.selectedConfigurationType == \"4\" && this.groupSpecificConfigurationGroupNameId != null) {\r\n this.app$.notifyScreenBusy();\r\n this.configuration$.getConfigurationValuesByGroupSpecific(this.groupSpecificConfigurationGroupNameId).subscribe(res => {\r\n this.app$.notifyScreenReady();\r\n this.configurationValues = res;\r\n this.noConfigValueNotifiction();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n }\r\n\r\n getConfigurationValuesByDeviceId() {\r\n this.selectedConfigurationGroupId = null;\r\n this.selectedGroupSpecificConfigurationGroup = false;\r\n this.selectedDeviceSpecific = true;\r\n this.searchString = \"\";\r\n this.oldSearchString = \"\";\r\n this.isSearchActive = false;\r\n this.configurationValues = [];\r\n if (this.selectedConfigurationType == \"2\" && this.selectedDeviceDriver != null) {\r\n this.app$.notifyScreenBusy();\r\n this.configuration$.getConfigurationValuesByDeviceId(this.selectedDeviceDriver).subscribe(res => {\r\n this.app$.notifyScreenReady();\r\n this.configurationValues = res;\r\n this.noConfigValueNotifiction();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n }\r\n\r\n noConfigValueNotifiction() {\r\n if (this.configurationValues != null && this.configurationValues.length == 0) {\r\n this.actions$.notifyEntityCustomAction({ type: 'error', title: 'Error!', message: 'No Configuration values found!' });\r\n }\r\n }\r\n\r\n // On selecting a configuration from left side list\r\n getConfigurationValuesByGroupId(groupId: any) {\r\n this.selectedGroupSpecificConfigurationGroup = false;\r\n this.selectedDeviceSpecific = false;\r\n this.searchString = \"\";\r\n this.oldSearchString = \"\";\r\n this.isSearchActive = false;\r\n this.selectedConfigurationGroupId = groupId;\r\n this.configurationValues = [];\r\n let deviceId = null;\r\n let driverId = null;\r\n let configGroupId = null;\r\n if (this.selectedDeviceDriver != null) {\r\n if (this.selectedConfigurationType == \"2\") {\r\n deviceId = this.selectedDeviceDriver;\r\n } else if (this.selectedConfigurationType == \"3\") {\r\n driverId = this.selectedDeviceDriver;\r\n }\r\n }\r\n\r\n if (this.selectedConfigurationType == \"4\") {\r\n configGroupId = this.groupSpecificConfigurationGroupNameId;\r\n }\r\n\r\n if (this.selectedConfigurationType == '1' ||\r\n (this.selectedConfigurationType == '2' && deviceId != null) ||\r\n (this.selectedConfigurationType == '3' && driverId != null) ||\r\n (this.selectedConfigurationType == \"4\" && this.groupSpecificConfigurationGroupNameId != null)) {\r\n this.app$.notifyScreenBusy();\r\n this.configuration$.getConfigurationValues({ groupId, deviceId, driverId, configGroupId }).subscribe(res => {\r\n this.app$.notifyScreenReady();\r\n this.configurationValues = res;\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n }\r\n\r\n searchConfigurationDebounceTime() {\r\n this.searchConfigSubject.next(this.searchString);\r\n }\r\n\r\n searchConfiguration(searchString: any) {\r\n let deviceDriverId = null;\r\n let configGroupId = null;\r\n let configurationType = this.selectedConfigurationType;\r\n searchString = searchString.trim();\r\n if (this.oldSearchString == searchString) return;\r\n this.oldSearchString = searchString;\r\n\r\n if (!IsUndefinedOrNull(searchString)) {\r\n if (searchString.length == 1 && isNaN(searchString)) { // if length == 1 and is not a number \r\n this.configurationValues = [];\r\n }\r\n else if (searchString.length >= 2 || (searchString.length == 1 && !isNaN(searchString))) { // if length > 1 || if length ==1 and is a number\r\n this.selectedConfigurationGroupId = null;\r\n this.app$.notifyScreenBusy();\r\n\r\n if ((this.selectedConfigurationType == \"2\" || this.selectedConfigurationType == \"3\") && (this.selectedDeviceDriver != null && this.selectedDeviceDriver != -1)) {\r\n deviceDriverId = this.selectedDeviceDriver;\r\n }\r\n else if (this.selectedConfigurationType == \"4\") {\r\n configGroupId = this.groupSpecificConfigurationGroupNameId;\r\n }\r\n this.configurationValues = [];\r\n this.configuration$.getConfigurationValuesBySearch({ searchString, configurationType, deviceDriverId, configGroupId }).subscribe(res => {\r\n this.app$.notifyScreenReady();\r\n this.configurationValues = res;\r\n this.isSearchActive = true;\r\n this.noConfigValueNotifiction();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList)\r\n );\r\n }\r\n }\r\n }\r\n\r\n saveConfigurationValueOnBlur(configValue: any, index: any) {\r\n configValue.IsSubmitted = true;\r\n if (configValue.invalid)\r\n return;\r\n\r\n if (configValue.IsChanged) {\r\n if (this.selectedConfigurationType == \"2\") {\r\n configValue.deviceId = this.selectedDeviceDriver;\r\n }\r\n else if (this.selectedConfigurationType == \"3\") {\r\n configValue.driverId = this.selectedDeviceDriver;\r\n }\r\n else if (this.selectedConfigurationType == \"4\") {\r\n configValue.GroupId = this.groupSpecificConfigurationGroupNameId;\r\n }\r\n\r\n this.configuration$.saveConfigurationValue(configValue).subscribe(\r\n (okCreate) => {\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: 'Saved Configuration ' + configValue.Id + ' - ' + configValue.Name });\r\n if (this.selectedConfigurationType == \"2\" && this.selectedDeviceSpecific) {\r\n this.getConfigurationValuesByDeviceId();\r\n }\r\n else if (this.selectedConfigurationType == \"4\" && this.selectedGroupSpecificConfigurationGroup == true) {\r\n this.getConfigurationValuesByConfigurationGroupId();\r\n }\r\n else {\r\n\r\n let param = {\r\n configId: configValue.Id,\r\n deviceId: configValue.deviceId,\r\n driverId: configValue.driverId,\r\n groupId: configValue.GroupId\r\n }\r\n this.configuration$.getConfigurationValue(param).subscribe(res => {\r\n this.configurationValues[index] = res;\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n\r\n }\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n\r\n }\r\n }\r\n\r\n resetConfigurationValue(configurationValue) {\r\n switch (configurationValue.Type) {\r\n case \"xml\":\r\n let xmlKey = this.xmlKeys[this.selectedConfigurationType];\r\n configurationValue[xmlKey] = configurationValue.OriginalXmlSchema;\r\n break;\r\n\r\n case \"bool\":\r\n let booleanValueKey = this.booleanValueKeys[this.selectedConfigurationType];\r\n configurationValue[booleanValueKey] = configurationValue.OriginalBooleanValue;\r\n break;\r\n\r\n case \"flags\":\r\n let flagsValueKey = this.flagsValueKeys[this.selectedConfigurationType];\r\n configurationValue[flagsValueKey] = configurationValue.OriginalFlagsValue;\r\n break;\r\n\r\n case \"color\":\r\n case \"dastr\":\r\n case \"float\":\r\n case \"int\":\r\n case \"str\":\r\n let accessKey = this.accessKeys[this.selectedConfigurationType];\r\n configurationValue[accessKey] = configurationValue.OriginalValue;\r\n if (configurationValue.Type == 'int' || configurationValue.Type == 'float') {\r\n configurationValue.invalid = !checkPattern(configurationValue.Type, configurationValue[accessKey]);\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n configurationValue.IsChanged = false;\r\n }\r\n\r\n preDeleteConfigurationValue(configurationValue: any, index: any) {\r\n if (configurationValue.Type == 'xml') {\r\n this.deleteConfirmMsg = 'Are you sure you want to delete Configuration: ' + configurationValue.Id + ' - ' + configurationValue.Name + '?';\r\n this.deleteIndex = index;\r\n this.deleteConfigValue = configurationValue;\r\n this.ShowDeleteConfirm = true;\r\n } else {\r\n this.deleteConfigurationValue(configurationValue, index);\r\n }\r\n }\r\n\r\n deleteConfirm() {\r\n this.ShowDeleteConfirm = false;\r\n this.deleteConfigurationValue(this.deleteConfigValue, this.deleteIndex);\r\n }\r\n\r\n deleteCancel() {\r\n this.ShowDeleteConfirm = false;\r\n this.deleteIndex = null;\r\n this.deleteConfigValue = null;\r\n }\r\n\r\n deleteConfigurationValue(configValue: any, index: any) {\r\n\r\n if (this.selectedConfigurationType == \"2\") {\r\n configValue.deviceId = this.selectedDeviceDriver;\r\n }\r\n else if (this.selectedConfigurationType == \"3\") {\r\n configValue.driverId = this.selectedDeviceDriver;\r\n }\r\n else if (this.selectedConfigurationType == \"4\") {\r\n configValue.GroupId = this.groupSpecificConfigurationGroupNameId;\r\n }\r\n\r\n let param = {\r\n configId: configValue.Id,\r\n deviceId: configValue.deviceId,\r\n driverId: configValue.driverId,\r\n groupId: configValue.GroupId\r\n }\r\n\r\n this.configuration$.deleteConfigurationValue(param).subscribe(\r\n (okCreate) => {\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: 'Deleted Configuration ' + configValue.Id + ' - ' + configValue.Name });\r\n if (this.selectedConfigurationType == \"2\" && this.selectedDeviceSpecific) {\r\n this.getConfigurationValuesByDeviceId();\r\n }\r\n else if (this.selectedConfigurationType == \"4\" && this.selectedGroupSpecificConfigurationGroup) {\r\n this.getConfigurationValuesByConfigurationGroupId();\r\n }\r\n else {\r\n this.configuration$.getConfigurationValue(param).subscribe(res => {\r\n this.configurationValues[index] = res;\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n refreshComplexConfig() {\r\n if (!IsUndefinedOrNull(this.searchString) && this.isSearchActive) {\r\n this.oldSearchString =\"\";\r\n this.searchConfiguration(this.searchString);\r\n }\r\n else {\r\n if (this.selectedConfigurationGroupId == null) {\r\n if (this.selectedGroupSpecificConfigurationGroup) this.getConfigurationValuesByConfigurationGroupId();\r\n else if (this.selectedDeviceSpecific) this.getConfigurationValuesByDeviceId();\r\n }\r\n else\r\n this.getConfigurationValuesByGroupId(this.selectedConfigurationGroupId);\r\n }\r\n }\r\n\r\n deviceDisplayExpr(item) {\r\n return item ? `${item.Id} - ${item.Name}` : '';\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n Default Configurations\r\n Device Specific Configurations\r\n Driver Specific Configurations\r\n Group Specific Configurations\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {{entity.Id + ' - ' +\r\n entity.Name}}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Device Specific Configurations\r\n
\r\n
\r\n Group Specific Configurations\r\n
\r\n
\r\n {{ group.Name }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Config IdDescriptionDefault Config Value\r\n \r\n Group Value\r\n \r\n Device Value\r\n \r\n Driver Value\r\n \r\n Group Value\r\n
\r\n
{{ configurationvalue.Id }}
\r\n
\r\n
{{ configurationvalue.Name }}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport class Config {\r\n Id: any;\r\n Name: any;\r\n BooleanValue: any;\r\n ConfigurationGroupId: any;\r\n DefaultBooleanValue: any;\r\n DefaultFlagsValue: any;\r\n DefaultValue: any;\r\n DefaultXmlSchema: any;\r\n DeviceBooleanValue: any;\r\n DeviceFlagsValue: any;\r\n DeviceValue: any;\r\n DeviceXmlSchema: any;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class TranspacConfigurationInterface {\r\n getConfigurationGroup: () => Observable;\r\n getDeviceList: () => Observable;\r\n getConfigurationValues: (data: any) => Observable;\r\n getConfigurationValuesByDeviceId: (data: any) => Observable;\r\n getConfigurationValuesByGroupSpecific: (data: any) => Observable;\r\n getConfigurationValuesBySearch: (data: any) => Observable;\r\n saveConfigurationValue: (data: any) => Observable;\r\n getConfigurationValue: (data: any) => Observable;\r\n deleteConfigurationValue: (data: any) => Observable;\r\n saveModalConfigurationValues: (data: any) => Observable;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Config, TranspacConfigurationInterface } from './transpac-configuration.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranspacConfigurationService implements TranspacConfigurationInterface {\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n getConfigurationGroup(): Observable {\r\n return this._http.get(e.endpoint.fleet.configuration + \"/configurationgroup\", {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getDeviceList(): Observable {\r\n return this._http.get(e.endpoint.fleet.devices, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getConfigurationValues(param: any): Observable {\r\n return this._http.get(e.endpoint.fleet.configuration + \"/\" + param.groupId + \"/\" + param.deviceId + \"/\" + param.driverId\r\n + \"/\" + param.configGroupId + '?noCache=' + new Date().getTime(), {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getConfigurationValuesByDeviceId(deviceId: any): Observable {\r\n return this._http.get(e.endpoint.fleet.configuration + \"/device/\" + deviceId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getConfigurationValuesByGroupSpecific(groupId: any): Observable {\r\n return this._http.get(e.endpoint.fleet.configuration + \"/groupspecific/\" + groupId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getConfigurationValuesBySearch(param: any): Observable {\r\n return this._http.get(e.endpoint.fleet.configuration + \"/search/\" + param.searchString + \"/\" + param.configurationType\r\n + \"/\" + param.deviceDriverId + \"/\" + param.configGroupId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getConfigurationValue(param: any): Observable {\r\n return this._http.get(e.endpoint.fleet.configuration + \"/getconfigvalue/\" + param.configId + \"/\" + param.deviceId + \"/\" + param.driverId\r\n + \"/\" + param.groupId + '?noCache=' + new Date().getTime(), {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n saveConfigurationValue(data: any): Observable {\r\n return this._http.put(\r\n e.endpoint.fleet.configuration + '/save1/',\r\n data,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n deleteConfigurationValue(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.fleet.configuration + \"/\" + param.configId + \"/\" + param.deviceId + \"/\" + param.driverId\r\n + \"/\" + param.groupId + '?noCache=' + new Date().getTime(), {\r\n headers: this.header,\r\n responseType: \"text\"\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n saveModalConfigurationValues(data: any): Observable {\r\n return this._http.put(\r\n e.endpoint.fleet.configuration + '/complex/',\r\n data,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\nexport class vehicle {\r\n Id: number;\r\n BuildType:number;\r\n Color: any;\r\n ColorHash: any;\r\n DeviceId: number;\r\n DeviceName: string;\r\n IsTruck: string;\r\n LicensePlate: string;\r\n VehicleNumber: string;\r\n VehicleTypeId: number;\r\n VehicleTypeImageUrl: string;\r\n IsTrailerGpsBox: boolean\r\n deviceDetailsVM: any;\r\n CompartmentSet: any;\r\n TypeId: any;\r\n CarrierId: any;\r\n State: any;\r\n}\r\n\r\nexport class deviceDetailsVM{\r\n Id: number;\r\n Name: string;\r\n Type: string;\r\n Config: string;\r\n IMEI: string;\r\n GPSboxIMEI: string;\r\n PhoneNumber: string;\r\n BoxConfigId: string;\r\n UseIgnitionForBreakCalc: boolean;\r\n CompanyId: number;\r\n State:number;\r\n DataAreaId:number;\r\n TimezoneName:string;\r\n RangeVMs: any[];\r\n CompanyName: string;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class vehicleInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: vehicle[]) => void;\r\n getVehicleBoxConfig: () => Observable;\r\n getVehicleBuildTypes: () => Observable;\r\n getVehicleClasses: () => Observable;\r\n getNewVehicle: () => Observable;\r\n getCompanyList: () => Observable;\r\n getNonPrintCompanyList: () => Observable;\r\n getCompartmentSetList: () => Observable;\r\n getLoadPointList: ()=> Observable;\r\n getDeviceTypeList: ()=> Observable;\r\n getDeviceConfigList: ()=> Observable;\r\n getDeviceStateList: ()=> Observable;\r\n getDataAreaList: ()=> Observable;\r\n getTimeZones: ()=> Observable;\r\n getTimeZoneValues: ()=> Observable;\r\n getTrailerStates: ()=> Observable;\r\n getVehicleTypes: ()=> Observable;\r\n getSpecialActions: ()=> Observable;\r\n getVehicleDetails: (param) => Observable;\r\n getFilteredVehicleList:(param) => Observable;\r\n saveSpecialAction:(vehiclelist, specialaction) => Observable;\r\n deleteVehicleType:(param) => Observable;\r\n saveVehicleTypes:(vehicleTypes)=>Observable;\r\n isCompartmentSetDeletable:(param) => Observable;\r\n deleteCompartmentSet:(param) => Observable;\r\n deleteCompartment:(Id, setId) => Observable;\r\n saveCompartmentSets:(param) => Observable;\r\n saveMultipleVehicles:(vehicle, vehicleList) => Observable; \r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Entity } from '@app/app.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { vehicle, vehicleInterface } from './vehicle.component.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class vehicleService implements vehicleInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n\r\n notifyRetrieved(data: vehicle[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.fleet.vehicle,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.fleet.vehicle, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.fleet.vehicle + \"/\" + param.Id + \"/\" + param.DeviceId, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getEntity(param) {\r\n return this._http.get(e.endpoint.fleet.vehicle + '/' + param.Id, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getVehicleBuildTypes() {\r\n return this._http.get(e.endpoint.fleet.vehicle + '/buildtypes', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getVehicleBoxConfig() {\r\n return this._http.get(e.endpoint.fleet.vehicle + '/boxconfig', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getVehicleClasses() {\r\n return this._http.get(e.endpoint.fleet.vehicle + '/vehicleclasses', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewVehicle() {\r\n return this._http.get(e.endpoint.fleet.vehicle + '/newvehicle', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getCompanyList() {\r\n return this._http.get(e.endpoint.company + '/dropdown/1', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNonPrintCompanyList() {\r\n return this._http.get(e.endpoint.settings.nonPrintCompanyDropdown + '1', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getCompartmentSetList() {\r\n return this._http.get(e.endpoint.fleet.vehicle + '/compartmentsets', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getLoadPointList() {\r\n return this._http.get(e.endpoint.loadPoint, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getDeviceTypeList() {\r\n return this._http.get(e.endpoint.device + '/devicetypes', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getDeviceConfigList() {\r\n return this._http.get(e.endpoint.device + '/deviceconfig', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getDeviceStateList() {\r\n return this._http.get(e.endpoint.device + '/devicestate', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getDataAreaList() {\r\n return this._http.get(e.endpoint.api + '/dataarea/list/0', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getTimeZones() {\r\n return this._http.get(e.endpoint.masterData + '/timezones', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getTimeZoneValues() {\r\n return this._http.get(e.endpoint.masterData + '/timezonesvalues', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getTrailerStates() {\r\n return this._http.get(e.endpoint.fleet.vehicle + '/trailerstate', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getVehicleTypes() {\r\n return this._http.get(e.endpoint.fleet.vehicle + '/vehicletypes/0', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getSpecialActions() {\r\n return this._http.get(e.endpoint.fleet.vehicle + '/specialactions', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getVehicleDetails(param) {\r\n return this._http.get(e.endpoint.fleet.vehicle + '/' + param.Id, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getFilteredVehicleList(param) {\r\n return this._http.put(e.endpoint.fleet.vehicle + '/filter', param, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n saveSpecialAction(vehiclelist, specialaction) {\r\n var param = { Vehicles: vehiclelist, SpecialActionId: specialaction };\r\n return this._http.put(e.endpoint.fleet.vehicle + \"/specialactions\", param, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n deleteVehicleType(param) {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.fleet.vehicle + '/vehicletypes/' + param, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n saveVehicleTypes(vehicleTypes){\r\n return this._http.put(e.endpoint.fleet.vehicle + \"/vehicletypes\",vehicleTypes, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n isCompartmentSetDeletable(param){\r\n return this._http.get(e.endpoint.fleet.vehicle + \"/compartmentsets/deletable/\" + param, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n deleteCompartmentSet(param){\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.fleet.vehicle + \"/compartmentsets/\" + param, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n saveCompartmentSets(param){\r\n return this._http.put(e.endpoint.fleet.vehicle + \"/compartmentsets\", param, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n saveMultipleVehicles(vehicle, vehiclelist){\r\n var data = { Vehicles: vehiclelist, Vehicle: vehicle };\r\n return this._http.put(e.endpoint.fleet.vehicle + \"/multiplevehicles\", data, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n deleteCompartment(Id, setId){\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.fleet.vehicle + \"/compartmentsets/compartment/\" + setId + \"/\" + Id, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { vehicleInterface, vehicle } from './vehicle.component.model';\r\nimport { vehicleService } from './vehicle.component.service';\r\nimport { NgxSmartModalService } from 'ngx-smart-modal';\r\nimport {displayZeroValueText, dxSelectOptions, refreshElement} from '@app/common_helper';\r\nimport _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'facnm-vehicle',\r\n templateUrl: './vehicle.component.html',\r\n styleUrls: ['./vehicle.component.scss'],\r\n providers: [\r\n {\r\n provide: vehicleInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new vehicleService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class VehicleComponent implements OnInit {\r\n\r\n private unsubscribe$ = new Subject();\r\n private arrguments = {};\r\n boxConfigList = [];\r\n vehicleBuildTypesAll = [];\r\n vehicleClasses = {};\r\n companyList = {};\r\n nonprintcompanyList = {};\r\n compartmentSetList = [];\r\n loadPointList = [];\r\n deviceTypeList = {};\r\n deviceConfigList = {};\r\n deviceStateList = {};\r\n dataAreaList = {};\r\n timezoneNameList = {};\r\n timezoneValueList = {};\r\n trailerStatesList = {};\r\n vehicleTypes = [];\r\n SpecialActions = {};\r\n vehicleData: ArrayStore;\r\n vehicle: Entity;\r\n entityName = 'Vehicle';\r\n testString = 'Test';\r\n vehicleDeleteConfirm = false;\r\n vehicleDeleteConfirmMsg = 'Are you sure you want to delete?';\r\n compartmentDeleteConfirm = false;\r\n compartmentDeleteConfirmMsg = 'Are you sure, you want to delete this compartment set?';\r\n collapseColor = 'green';\r\n truckTrailerLookup = [\r\n { IsTruck: 1, Text: 'Truck' },\r\n { IsTruck: 0, Text: 'Trailer' }\r\n ];\r\n hideVehicleIdcolumn: boolean = false;\r\n allMode: string;\r\n checkBoxesMode: string;\r\n isFilterOptionsOpen: boolean = true;\r\n filterOptions = {\r\n VehicleType: null, BuildType: null, ClassId: null, CarrierId: null, DeviceTypeId: null,\r\n DeviceConfigId: null, BoxConfigId: null, UseIgnition: null, DataAreaId: null, TimezoneName: null, State: null,\r\n VehicleColorHash: null, TankCapacity: null, CompartmentSetId: null, MotorSpeedLimit: null, CountrySpeedLimit: null,\r\n ResidentialSpeedLimit: null, HomeLatitude: null, HomeLongitude: null, HomeLoadlocationId: null\r\n };\r\n min: number = 1;\r\n max: number = 999;\r\n GICollapse = false;\r\n DSCollapse = false;\r\n TDCollapse = false;\r\n SLCollapse = false;\r\n HLCollapse = false;\r\n SSACollapse = false;\r\n isTruck = \"false\";\r\n isTrailer: boolean = false;\r\n isAddForm = 0;\r\n saveProgress: boolean;\r\n SelectedReceiptRange = [];\r\n SelectedReceiptRangeCopy = [];\r\n SelectedSpecialAction = {};\r\n multipleSelected = { count: 0, vehiclesList: [] };\r\n newvehicle: vehicle;\r\n VehicleTypesList = [];\r\n VehicleTypeSubmitted = false;\r\n saveCategoryProgress: boolean;\r\n deleteProCateItem: any;\r\n deleteProCateItemIndex: any;\r\n VehicleTypeDeleteConfirm = false;\r\n compartmentList = [];\r\n compartmentSetToDelete = {};\r\n selectedCompartmentSetId: any;\r\n compartmentSetSubmitted = false;\r\n initialReceiptRange = { CompanyId: null };\r\n vehicleBuildTypes = [];\r\n vehicleBuildTypeTruck = [];\r\n vehicleBuildTypeTrailer = [];\r\n isDeleteEnable = \"false\";\r\n searchFields = [];\r\n vehicleColumns: any;\r\n visibleReceiptNumberConflict: boolean = false;\r\n ConflictingDevices = [];\r\n visibleReceiptNumber: boolean = false;\r\n defaultCompartment = [{Id: null, Name:\"Select Option\"}];\r\n isCompartmentSetFormInvalid = false;\r\n isVehicleTypeFormInvalid = false;\r\n SetIDManually:boolean = false;\r\n vehicleInUse: boolean = false;\r\n attentionMsg = 'This vehicle is in use! Please ensure that any TransPac devices using this device id have been uninstalled, or moved to a different device id, before performing the deletion. It is recommended to switch vehicles and trailers to an inactive state instead of deleting them once they have been in use.'\r\n dxSelectOptions = new dxSelectOptions();\r\n\r\n constructor(\r\n private vehicle$: vehicleInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n public ngxSmartModalService: NgxSmartModalService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n this.searchFields = ['City', 'State'];\r\n vehicle$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.vehicleData = new ArrayStore({\r\n data: data,\r\n key: ['Id']\r\n });\r\n if (data.length == 0) {\r\n this.dataGrid.noDataText = 'No vehicle Found';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n });\r\n\r\n this.arrguments = {\r\n boxConfigs: this.vehicle$.getVehicleBoxConfig(),\r\n buildtypes: this.vehicle$.getVehicleBuildTypes(),\r\n vehicleClasses: this.vehicle$.getVehicleClasses(),\r\n companies: this.vehicle$.getCompanyList(),\r\n nonPrintCompanies: this.vehicle$.getNonPrintCompanyList(),\r\n compartmentSets: this.vehicle$.getCompartmentSetList(),\r\n loadPoints: this.vehicle$.getLoadPointList(),\r\n deviceTypes: this.vehicle$.getDeviceTypeList(),\r\n deviceConfigs: this.vehicle$.getDeviceConfigList(),\r\n deviceStates: this.vehicle$.getDeviceStateList(),\r\n dataAreas: this.vehicle$.getDataAreaList(),\r\n timezoneNames: this.vehicle$.getTimeZones(),\r\n timezoneValues: this.vehicle$.getTimeZoneValues(),\r\n trailerStates: this.vehicle$.getTrailerStates(),\r\n vehicleTypes: this.vehicle$.getVehicleTypes(),\r\n SpecialActions: this.vehicle$.getSpecialActions(),\r\n vehicles: this.vehicle$.getList(),\r\n newVehicle: this.vehicle$.getNewVehicle()\r\n };\r\n\r\n actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n @ViewChild('VehicleTypeForm') VehicleTypeForm: NgForm;\r\n @ViewChild('compartmentSetForm') compartmentSetForm: NgForm;\r\n\r\n ngOnInit(): void {\r\n this.allMode = 'allPages';\r\n this.checkBoxesMode = 'onClick';\r\n this.app$.setScreenTitle(this.entityName);\r\n forkJoin(\r\n this.arrguments\r\n ).subscribe(\r\n multipleData => {\r\n this.boxConfigList = multipleData['boxConfigs'];\r\n this.vehicleBuildTypesAll = multipleData['buildtypes'];\r\n\r\n this.vehicleBuildTypeTruck = this.vehicleBuildTypesAll.filter((vbt) => { return vbt.Id < 2 });\r\n this.vehicleBuildTypeTrailer = this.vehicleBuildTypesAll.filter((vbt) => { return vbt.Id > 1 });\r\n\r\n this.vehicleClasses = multipleData['vehicleClasses'];\r\n this.companyList = multipleData['companies'];\r\n this.nonprintcompanyList = multipleData['nonPrintCompanies'];\r\n this.compartmentSetList = multipleData['compartmentSets'];\r\n this.loadPointList = multipleData['loadPoints'];\r\n this.deviceTypeList = multipleData['deviceTypes'];\r\n this.deviceConfigList = multipleData['deviceConfigs'];\r\n this.deviceStateList = multipleData['deviceStates'];\r\n this.dataAreaList = multipleData['dataAreas'];\r\n this.timezoneNameList = multipleData['timezoneNames'];\r\n this.timezoneValueList = multipleData['timezoneValues'];\r\n this.trailerStatesList = multipleData['trailerStates'];\r\n this.vehicleTypes = multipleData['vehicleTypes'];\r\n this.SpecialActions = multipleData['SpecialActions'];\r\n this.vehicle$.notifyRetrieved(multipleData['vehicles']);\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n\r\n\r\n this.vehicleColumns = [\r\n {\r\n caption: 'Icon', dataField: 'IsTruck', alignment: 'left', width: '100px',\r\n cellTemplate: function (cellElement, cellInfo) {\r\n if (cellInfo.data.IsTruck == true) {\r\n $(\"\")\r\n .attr(\"class\", \"icon icon-fulltruck\")\r\n .attr(\"style\", \"color:\" + cellInfo.data.ColorHash + \";font-size:2em;\")\r\n .appendTo(cellElement);\r\n }\r\n else {\r\n $(\"\")\r\n .attr(\"class\", \"icon-trailer\")\r\n .attr(\"style\", \"font-size:2em;\")\r\n .appendTo(cellElement);\r\n }\r\n },\r\n lookup: { dataSource: this.truckTrailerLookup, valueExpr: 'IsTruck', displayExpr: 'Text' }\r\n },\r\n { caption: 'Vehicle Id', dataField: 'Id', visible: false, dataType: 'number' },\r\n {\r\n caption: 'Device Id - Name', dataField: 'DeviceId', cssClass: 'white-space-normal', width:'35%', dataType: 'string', alignment: 'left',\r\n cellTemplate: function (container, options) {\r\n var devicedetails = \"\";\r\n if (options.data.DeviceId != 0) devicedetails = devicedetails + options.data.DeviceId + \" - \";\r\n if (options.data.DeviceName != null) devicedetails = devicedetails + options.data.DeviceName;\r\n $('').text(devicedetails).append(\"
\").appendTo(container);\r\n },\r\n calculateCellValue: function (data) {\r\n return data.DeviceId + \" - \" + data.DeviceName;\r\n },\r\n calculateFilterExpression: function (filterValue, selectedFilterOperation) {\r\n return [this.calculateCellValue, selectedFilterOperation || 'contains', filterValue];\r\n }\r\n },\r\n { alignment: 'left', caption: 'Vehicle No', dataField: 'VehicleNumber', cssClass: 'VehicleNumber', dataType: 'string' },\r\n {\r\n alignment: 'left', caption: 'License Plate', dataField: 'LicensePlate', cssClass: 'LicensePlate', dataType: 'string', width: 150,\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.LicensePlate)\r\n .appendTo(container);\r\n }\r\n }\r\n ];\r\n }\r\n\r\n onContentReadyAssigned() {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No data\";\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n GetVehicleList() {\r\n this.vehicle$.getList().subscribe(res => {\r\n this.vehicle$.notifyRetrieved(res);\r\n this.app$.notifyScreenReady();\r\n }, (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n });\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.vehicle = new Entity();\r\n this.vehicle.value = { ...this.newvehicle };\r\n this.vehicle.created = true;\r\n this.isTruck = \"true\";\r\n this.isAddForm = 1;\r\n this.collapseColor = 'yellow';\r\n this.vehicle.value.deviceDetailsVM = { Id: 0 };\r\n this.vehicle.value.CompartmentSet = null;\r\n this.initialReceiptRange.CompanyId = null;\r\n this.SelectedReceiptRange = [];\r\n this.TruckTrailerChange(true);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private deleteConfirm() {\r\n var vehicleId = this.vehicle.value.Id;\r\n var deviceId = this.vehicle.value.deviceDetailsVM != null ? this.vehicle.value.deviceDetailsVM.Id : null;\r\n var param = {\r\n Id: vehicleId,\r\n DeviceId: deviceId\r\n };\r\n\r\n this.vehicle$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.refreshGrid();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n this.GetVehicleList();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n private create(isSave) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n \r\n if (this.isTruck == 'true' && !_.isEqual(this.SelectedReceiptRange,this.SelectedReceiptRangeCopy) && this.vehicle.value.Id > 0) {\r\n this.visibleReceiptNumber = true;\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n }\r\n else\r\n this.saveVehicle(isSave);\r\n }\r\n\r\n saveVehicle(isSave){\r\n\r\n this.vehicle.value.IsTrailerGpsBox = this.isTrailer;\r\n\r\n if (this.multipleSelected.count > 1) {\r\n this.vehicle$.saveMultipleVehicles(this.vehicle, this.multipleSelected.vehiclesList).subscribe((res) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.actions$.notifySaved();\r\n this.GetVehicleList();\r\n this.deselectvehicle();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n });\r\n }\r\n else {\r\n this.vehicle$.create(this.vehicle).subscribe(\r\n (okCreate) => {\r\n if (okCreate.ConflictingResult.length > 0) {\r\n this.app$.notifyScreenReady();\r\n this.ConflictingDevices = okCreate.ConflictingResult;\r\n this.visibleReceiptNumberConflict = true;\r\n }\r\n else {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.GetVehicleList();\r\n this.visibleReceiptNumberConflict ? this.cancelPopup() : this.deselectvehicle();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n }\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n }\r\n private reset() {\r\n this.vehicle.restore();\r\n if(!this.vehicle.value.deviceDetailsVM)\r\n this.vehicle.value.deviceDetailsVM = { Id:0 };\r\n \r\n this.SetIDManually = false;\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deselectvehicle();\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n TruckTrailerChange(boolvalue) {\r\n if (boolvalue) {\r\n this.isTruck = \"true\";\r\n this.isTrailer = false;\r\n this.vehicleBuildTypes = this.vehicleBuildTypeTruck;\r\n this.vehicle.value.BuildType > 1 ? this.vehicle.value.BuildType = null : \"\";\r\n }\r\n else if (!boolvalue) {\r\n this.isTruck = \"false\";\r\n this.vehicleBuildTypes = this.vehicleBuildTypeTrailer;\r\n if (this.vehicle.value.BuildType == null || this.vehicle.value.BuildType < 2) this.vehicle.value.BuildType = 2;\r\n if (this.vehicle.value.deviceDetailsVM?.Id > 0) this.isTrailer = true;\r\n }\r\n }\r\n\r\n resetfilterOptions() {\r\n this.filterOptions = {\r\n VehicleType: null, BuildType: null, ClassId: null, CarrierId: null, DeviceTypeId: null,\r\n DeviceConfigId: null, BoxConfigId: null, UseIgnition: null, DataAreaId: null, TimezoneName: null, State: null,\r\n VehicleColorHash: null, TankCapacity: null, CompartmentSetId: null, MotorSpeedLimit: null, CountrySpeedLimit: null,\r\n ResidentialSpeedLimit: null, HomeLatitude: null, HomeLongitude: null, HomeLoadlocationId: null\r\n };\r\n\r\n this.GetVehicleList();\r\n }\r\n\r\n filterVehicles() {\r\n this.vehicle$.getFilteredVehicleList(this.filterOptions).subscribe(res => {\r\n this.vehicle$.notifyRetrieved(res);\r\n this.app$.notifyScreenReady();\r\n }, (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n });\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onCellPrepared(e: { rowType: string; column: { dataField: string; }; data: { IsTruck: any, ColorHash: any, DeviceId: any, DeviceName: any, Address: any; }; cellElement: { innerHTML: string; }; }) {\r\n if (e.rowType === \"data\" && e.column.dataField === \"IsTruck\") {\r\n if (e.data.IsTruck)\r\n e.cellElement.innerHTML = '';\r\n else\r\n e.cellElement.innerHTML = '';\r\n\r\n\r\n }\r\n\r\n if (e.rowType === \"data\" && e.column.dataField === \"DeviceId\") {\r\n let devicedetails: string = \"\";\r\n if (e.data.DeviceId != 0) devicedetails = devicedetails + e.data.DeviceId + \" - \";\r\n if (e.data.DeviceName != null) devicedetails = devicedetails + e.data.DeviceName;\r\n\r\n e.cellElement.innerHTML = '' + devicedetails + '
';\r\n\r\n\r\n }\r\n }\r\n\r\n onSelectionChanged($clikedRow: any) {\r\n this.multipleSelected.vehiclesList = [];\r\n this.multipleSelected.count = $clikedRow.selectedRowsData.length;\r\n this.isDeleteEnable = \"true\";\r\n\r\n if ($clikedRow.selectedRowsData.length > 1) {\r\n this.multipleSelected.vehiclesList = cloneDeep($clikedRow.selectedRowsData);\r\n this.vehicle = new Entity();\r\n this.vehicle.value = { ...this.newvehicle };\r\n this.vehicle.key = -1;\r\n this.vehicle.value.deviceDetailsVM = { Id: 0 };\r\n this.isDeleteEnable = \"false\";\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n else if (this.multipleSelected.count == 1) {\r\n if (!this.vehicle) {\r\n try {\r\n let keySaved = $clikedRow.selectedRowKeys[0];\r\n if (keySaved) {\r\n this.selectvehicle(keySaved);\r\n }\r\n }\r\n catch { }\r\n this.isDeleteEnable = \"true\";\r\n }\r\n else if (this.vehicle && this.vehicle.key != $clikedRow.selectedRowKeys[0]) {\r\n try {\r\n let keySaved = $clikedRow.selectedRowKeys[0];\r\n if (keySaved) {\r\n this.selectvehicle(keySaved);\r\n }\r\n }\r\n catch { }\r\n }\r\n }\r\n else {\r\n this.multipleSelected.count = 0;\r\n this.isDeleteEnable = \"true\";\r\n }\r\n\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n if (this.multipleSelected.count > 1) {\r\n return;\r\n }\r\n\r\n if (this.entityForm?.form.invalid)\r\n this.vehicle.key = undefined;\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.vehicle){\r\n this.vehicle = new Entity();\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n if (JSON.stringify(this.vehicle.key) === JSON.stringify($clikedRow.key)) {\r\n this.deselectvehicle();\r\n }\r\n else {\r\n this.selectvehicle($clikedRow.key);\r\n }\r\n }\r\n\r\n private deselectvehicle() {\r\n this.dataGrid.instance.deselectRows(this.vehicle.key);\r\n this.vehicle.key = undefined;\r\n }\r\n\r\n private selectvehicle(key: any) {\r\n this.actions$.notifyEntityBusy();\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n\r\n this.vehicle$.getVehicleDetails(key).subscribe((res: any) => {\r\n this.app$.notifyScreenReady();\r\n this.vehicle = new Entity();\r\n this.vehicle.key = key;\r\n this.vehicle.value = cloneDeep(res);\r\n \r\n if (this.vehicle.value.deviceDetailsVM) {\r\n this.vehicleInUse = this.vehicle.value.deviceDetailsVM.State == 1;\r\n this.initialReceiptRange.CompanyId = this.vehicle.value.deviceDetailsVM.RangeVMs[0].CompanyId;\r\n this.SelectedReceiptRange = this.vehicle.value.deviceDetailsVM.RangeVMs[0];\r\n this.SelectedReceiptRangeCopy = cloneDeep(this.SelectedReceiptRange);\r\n }\r\n else {\r\n this.vehicle.value.deviceDetailsVM = {};\r\n this.initialReceiptRange.CompanyId = null;\r\n this.SelectedReceiptRange = [];\r\n this.SelectedReceiptRangeCopy = [];\r\n }\r\n\r\n if (this.vehicle.value.BuildType != null) {\r\n if (this.vehicle.value.BuildType < 2)\r\n this.TruckTrailerChange(true);\r\n else this.TruckTrailerChange(false);\r\n }\r\n else { // if null then it's a truck \r\n this.TruckTrailerChange(true);\r\n }\r\n this.changeDetectorRef.detectChanges();\r\n if(this.vehicle.value.deviceDetailsVM.CompanyId == 0){\r\n displayZeroValueText(this.nonprintcompanyList,'companyId','Id','Name');\r\n }\r\n if(this.vehicle.value.deviceDetailsVM.State == 0){\r\n displayZeroValueText(this.deviceStateList,'stateId','Id','Name');\r\n }\r\n if(this.vehicle.value.CarrierId == 0){\r\n displayZeroValueText(this.companyList,'carrierId','Id','Name');\r\n }\r\n if(this.vehicle.value.State == 0){\r\n displayZeroValueText(this.trailerStatesList,'trailerStateId','Id','Name');\r\n }\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n\r\n openModal() {\r\n this.VehicleTypeSubmitted = false;\r\n this.saveCategoryProgress = false;\r\n this.VehicleTypesList = cloneDeep(this.vehicleTypes);\r\n this.ngxSmartModalService.open('VehicleType');\r\n }\r\n\r\n\r\n addNewVehicleTypeRow() {\r\n var newidcount = -1;\r\n for (var i = 0; i <= this.vehicleTypes.length - 1; i++) {\r\n if (this.vehicleTypes[i].Id <= 0)\r\n newidcount--;\r\n }\r\n this.VehicleTypesList.push({ Id: newidcount, Name: \"\", Color: \"\", ColorHash: \"\" });\r\n }\r\n\r\n removeVehicleType(index) {\r\n this.VehicleTypesList.splice(index, 1);\r\n }\r\n\r\n\r\n checkDeleteVehicleType(item, index) {\r\n if (item.Id < 0) {\r\n this.removeVehicleType(index);\r\n }\r\n else {\r\n this.vehicle$.deleteVehicleType(item.Id).subscribe(\r\n (res) => {\r\n if (res) {\r\n this.removeVehicleType(index);\r\n } else {\r\n this.VehicleTypeDeleteConfirm = true;\r\n this.deleteProCateItem = item;\r\n this.deleteProCateItemIndex = index;\r\n }\r\n }, (error) => {\r\n this.actions$.notifyEntityCustomAction({type:'error', title: 'Error:', message: error.message });\r\n })\r\n }\r\n }\r\n\r\n closeVehicleType() {\r\n this.ngxSmartModalService.close('VehicleType');\r\n }\r\n\r\n saveVehicleType() {\r\n this.VehicleTypeSubmitted = true;\r\n if (!this.VehicleTypeForm.form.invalid) {\r\n this.isVehicleTypeFormInvalid = false;\r\n this.saveCategoryProgress = true;\r\n this.vehicle$.saveVehicleTypes(this.VehicleTypesList).subscribe((res) => {\r\n this.closeVehicleType();\r\n this.actions$.notifyEntityCustomAction({ title: 'Success', message: 'Vehicle type saved successfully' });\r\n this.vehicle$.getVehicleTypes().subscribe((VT) => {\r\n this.vehicleTypes = [];\r\n this.vehicleTypes = VT;\r\n refreshElement(this,'vehicleTypeLoading');\r\n this.vehicle.value.TypeId ? \"\" : this.vehicle.value.TypeId = 0;\r\n }, (errorCreate) => { this.errors$.handleServerErrors(errorCreate); });\r\n }, (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n })\r\n }\r\n else {\r\n this.isVehicleTypeFormInvalid = true;\r\n }\r\n }\r\n\r\n\r\n\r\n openCompartmentSetModal() {\r\n this.VehicleTypeSubmitted = false;\r\n this.saveCategoryProgress = false;\r\n this.ngxSmartModalService.open('compartmentSet');\r\n this.selectedCompartmentSet(0, this.compartmentSetList[0]);\r\n }\r\n\r\n selectedCompartmentSet(index, item) {\r\n this.selectedCompartmentSetId = index;\r\n this.compartmentList = item.Compartments;\r\n }\r\n\r\n closeCompartment() {\r\n this.compartmentList = [];\r\n let compartmentSetList = this.compartmentSetList.filter((cmp) => {\r\n cmp.Compartments = cmp.Compartments.filter((cm)=> { return cm.Id > 0});\r\n return cmp.Id > 0 \r\n })\r\n this.compartmentSetList = [];\r\n this.compartmentSetList = compartmentSetList;\r\n this.ngxSmartModalService.close('compartmentSet');\r\n }\r\n\r\n addNewCompartmentSet() {\r\n var newidcount = -1;\r\n for (var i = 0; i <= this.compartmentSetList.length - 1; i++) {\r\n if (this.compartmentSetList[i].Id <= 0)\r\n newidcount--;\r\n }\r\n let NewCompartmentSet = { Id: newidcount, Name: \"\", Compartments: [] }\r\n this.compartmentSetList.unshift(NewCompartmentSet);\r\n let compartmentSetListCopy = cloneDeep(this.compartmentSetList);\r\n this.compartmentSetList = [];\r\n this.compartmentSetList = compartmentSetListCopy; \r\n this.compartmentList = [];\r\n }\r\n\r\n deleteCompartmentSet(item, index) {\r\n if (item.Id <= 0) {\r\n this.compartmentSetList.splice(index, 1);\r\n this.compartmentList = [];\r\n }\r\n else if (item.Id > 0) {\r\n this.vehicle$.isCompartmentSetDeletable(item.Id).subscribe((data) => {\r\n if (data) { // if deletable then make a delete call\r\n this.vehicle$.deleteCompartmentSet(item.Id).subscribe((data) => {\r\n this.compartmentSetList.splice(index, 1);\r\n this.compartmentList = [];\r\n });\r\n }\r\n else { // else if not deletable then ask for confirmation.\r\n this.deleteProCateItem = item;\r\n this.deleteProCateItemIndex = index\r\n this.compartmentDeleteConfirm = true;\r\n }\r\n }, (errorCreate) => { this.errors$.handleServerErrors(errorCreate); });\r\n }\r\n }\r\n\r\n VehicleTypeDeleteClosed() {\r\n this.compartmentDeleteConfirm = false;\r\n this.deleteProCateItem = null;\r\n this.deleteProCateItemIndex = null;\r\n }\r\n\r\n VehicleTypeDeleteConfirmed() {\r\n this.compartmentDeleteConfirm = false;\r\n if (this.deleteProCateItem) {\r\n this.deleteCompartment(this.deleteProCateItem, this.deleteProCateItemIndex);\r\n }\r\n }\r\n\r\n deleteCompartment(item, index) {\r\n if (item.Id <= 0) {\r\n this.removeCompartment(index);\r\n }\r\n else{\r\n \r\n this.vehicle$.deleteCompartment(item.Id, item.SetId).subscribe((ok) => {\r\n this.removeCompartment(index);\r\n });\r\n }\r\n }\r\n\r\n removeCompartmentSet(index) {\r\n this.compartmentSetList.splice(index, 1);\r\n }\r\n\r\n removeCompartment(index) {\r\n this.compartmentList.splice(index, 1);\r\n }\r\n\r\n\r\n addNewCompartment() {\r\n var newidcount = -1;\r\n for (var i = 0; i <= this.compartmentList.length - 1; i++) {\r\n if (this.compartmentList[i].Id <= 0)\r\n newidcount--;\r\n }\r\n this.compartmentList.push({ Id: newidcount, Capacity: \"\" });\r\n }\r\n\r\n\r\n saveCompartments() {\r\n if (!this.compartmentSetForm.form.invalid) {\r\n this.isCompartmentSetFormInvalid = false;\r\n this.vehicle$.saveCompartmentSets(this.compartmentSetList).subscribe((res) => {\r\n this.vehicle$.getCompartmentSetList().subscribe((res)=>{\r\n this.compartmentSetList = [];\r\n this.compartmentSetList = res;\r\n this.ngxSmartModalService.close('compartmentSet');\r\n },(errorCreate) => { this.errors$.handleServerErrors(errorCreate); })\r\n this.actions$.notifyEntityCustomAction({ title: 'Success', message: 'Saved Compartment Sets successfully' });\r\n }, (errorCreate) => { this.errors$.handleServerErrors(errorCreate); });\r\n }\r\n else\r\n this.isCompartmentSetFormInvalid = true;\r\n }\r\n\r\n\r\n\r\n SubmitSpecialAction() {\r\n let vehicleList = this.multipleSelected.vehiclesList.length > 0 ? this.multipleSelected.vehiclesList : [this.vehicle.value.Id];\r\n this.vehicle$.saveSpecialAction(vehicleList, this.SelectedSpecialAction).subscribe(res => {\r\n this.actions$.notifyEntityCustomAction({ title: 'Success', message: 'Special Action implemented successfully' });\r\n }, (errorNetwork) => {\r\n this.errors$.handleCustomError(\"Special Action not implemented\");\r\n });\r\n };\r\n\r\n UpdateReceiptRange(companyId) {\r\n if (this.vehicle.value.deviceDetailsVM != null) {\r\n if (companyId != null) {\r\n var result = this.vehicle.value.deviceDetailsVM.RangeVMs.filter(function (rvm) {\r\n return rvm.CompanyId == companyId;\r\n });\r\n this.SelectedReceiptRange = result[0];\r\n this.SelectedReceiptRangeCopy = cloneDeep(this.SelectedReceiptRange);\r\n }\r\n else if (this.initialReceiptRange != null) {\r\n var result = this.vehicle.value.deviceDetailsVM.RangeVMs.filter(function (rvm) {\r\n return rvm.CompanyId == this.initialReceiptRange.CompanyId;\r\n });\r\n this.SelectedReceiptRange = result[0];\r\n this.SelectedReceiptRangeCopy = cloneDeep(this.SelectedReceiptRange);\r\n }\r\n }\r\n else {\r\n this.SelectedReceiptRange = null;\r\n this.SelectedReceiptRangeCopy = null;\r\n }\r\n }\r\n\r\n receiptRangeChangingModal_onClick(sendReceiptRangeChange: boolean) {\r\n\r\n this.visibleReceiptNumber ? this.closePopup() : \"\";\r\n this.app$.notifyScreenBusy();\r\n if (sendReceiptRangeChange) {\r\n let vehicleList = this.multipleSelected.vehiclesList.length > 0 ? this.multipleSelected.vehiclesList : [this.vehicle.value.Id];\r\n\r\n \r\n this.vehicle$.saveSpecialAction(vehicleList, 1).subscribe((res) => {\r\n this.app$.exportVehicles(vehicleList).subscribe((res) => {\r\n this.saveVehicle(true);\r\n this.actions$.notifyEntityCustomAction({ title: 'Success', message: 'Special Action implemented successfully' });\r\n }, (errorCreate) => {\r\n this.errors$.handleCustomError(\"Vehicle Export failed\");\r\n this.errors$.handleCustomError(\"Vehicle not updated\");\r\n })\r\n }, (errorCreate) => {\r\n this.errors$.handleCustomError(\"Special Action not implemented\");\r\n this.errors$.handleCustomError(\"Vehicle not updated\");\r\n })\r\n\r\n }\r\n else {\r\n this.saveVehicle(true);\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n isNumberOnly(event) {\r\n return (event.charCode != 8 && event.charCode == 0 || (event.charCode == 46) || (event.charCode >= 48 && event.charCode <= 57))\r\n }\r\n\r\n\r\n cancelPopup() {\r\n this.vehicle.value.deviceDetailsVM.ignoreConflictingReceiptNumbers = false;\r\n this.visibleReceiptNumberConflict = false;\r\n }\r\n\r\n confirmPopup() {\r\n this.app$.notifyScreenBusy();\r\n this.vehicle.value.deviceDetailsVM.ignoreConflictingReceiptNumbers = true;\r\n this.saveVehicle(true);\r\n }\r\n\r\n loadPointDisplayExpr(item) {\r\n return item ? `${item.Name1} - ${item.Address}` : '';\r\n }\r\n\r\n closePopup(){\r\n this.visibleReceiptNumber = false;\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - 95);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Filter Options\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Vehicle Type\r\n
\r\n
\r\n \r\n \r\n {{vehicleType.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Build Type\r\n
\r\n
\r\n \r\n \r\n {{vehicleBuildType.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Vehicle Class\r\n
\r\n
\r\n \r\n \r\n {{vehicleClass.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Carrier\r\n
\r\n
\r\n \r\n \r\n {{company.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Device Type\r\n
\r\n
\r\n \r\n \r\n {{deviceType.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Device Config\r\n
\r\n
\r\n \r\n \r\n {{deviceConfig.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Box Config\r\n
\r\n
\r\n \r\n \r\n {{boxConfig.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Use ignition for Break calc\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Data Area\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Timezone\r\n
\r\n
\r\n \r\n \r\n {{timezoneName.DisplayName}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n State\r\n
\r\n
\r\n \r\n \r\n {{deviceState.Name}}\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Vehicle color\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Tank capacity\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Compartments\r\n
\r\n
\r\n \r\n \r\n {{compartmentSet.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Motorway speed over limit\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Country speed over limit\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Residential speed over limit\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Home latitude\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Home longitude\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Home load point\r\n
\r\n
\r\n \r\n
\r\n
{{data.Name1}}
\r\n
{{data.Address}},{{data.City}},{{data.Postcode}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
1\">\r\n

All changes to the settings below will be automatically applied to the {{\r\n multipleSelected.count }} selected vehicles.

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Vehicle settings\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Vehicle No.\r\n
\r\n
\r\n 1\">\r\n
\r\n
\r\n \r\n Vehicle No is required\r\n \r\n \r\n vehicle No cannot be longer than 10 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Vehicle Description\r\n
\r\n
\r\n 1\">\r\n
\r\n
\r\n \r\n Vehicle Description is required\r\n \r\n \r\n Vehicle Description cannot be more than 100 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{vehicleType.Name}}\r\n \r\n \r\n
\r\n
\r\n \r\n Vehicle Type is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Build Type\r\n
\r\n
\r\n \r\n \r\n {{vehicleBuildType.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Vehicle Class\r\n
\r\n
\r\n \r\n \r\n {{vehicleClass.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n License Plate\r\n
\r\n
\r\n 1\">\r\n
\r\n
\r\n \r\n License Plate is required\r\n \r\n \r\n License Plate cannot be more than 12 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Carrier\r\n
\r\n
\r\n \r\n \r\n {{company.Name}}\r\n \r\n \r\n
\r\n
\r\n \r\n Please select a Carrier\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Trailer State\r\n
\r\n
\r\n \r\n \r\n {{trailerState.Name}}\r\n \r\n \r\n
\r\n
\r\n \r\n Please select a Trailer\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Device settings\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Device ID\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Device ID is required\r\n \r\n
\r\n
\r\n \r\n Set ID Manually\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Device Name\r\n
\r\n
\r\n 1\">\r\n
\r\n
\r\n \r\n Device Name cannot be more than 100 characters\r\n \r\n \r\n Device Name is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Device Type\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Device Config\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n IMEI\r\n
\r\n
\r\n 1\">\r\n
\r\n
\r\n \r\n IMEI cannot be more than 255 characters\r\n \r\n \r\n IMEI must contain only alpha-numeric characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n GPS box IMEI\r\n
\r\n
\r\n 1\">\r\n
\r\n
\r\n \r\n GPS box IMEI cannot be longer than 15 digits\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Phone number\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Phone number cannot be longer than 25 digits\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Box Config\r\n
\r\n
\r\n \r\n \r\n {{boxConfig.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Use ignition for Break calc\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Company\r\n
\r\n
\r\n \r\n \r\n {{company.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n State\r\n
\r\n
\r\n \r\n \r\n {{deviceState.Name}}\r\n \r\n \r\n
\r\n
\r\n \r\n State is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Data Area\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Data Area is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Timezone name\r\n
\r\n
\r\n \r\n \r\n \r\n {{timezoneName.DisplayName}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Timezone value\r\n
\r\n
\r\n \r\n \r\n \r\n {{timezoneValue.Text}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Receipt range\r\n
\r\n
\r\n \r\n \r\n {{RangeVM.CompanyName}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Company Name\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Start\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
1. From\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
To
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
2. From\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
To
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Tank details\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Tank Capacity\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{default.Name}}\r\n \r\n \r\n {{compartmentSet.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Speed limits\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Motorway speed over limit\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Motorway speed over limit cannot be more than 999\r\n \r\n \r\n Motorway speed over limit cannot be less than 1\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Country speed over limit\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Residential speed over limit\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Home location\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Home latitude\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Home longitude\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Home load point\r\n
\r\n
\r\n \r\n
\r\n
{{data.Name1}}
\r\n
{{data.Address}},{{data.City}},{{data.Postcode}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Select special action\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Select special action\r\n
\r\n
\r\n \r\n \r\n {{SpecialAction.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
Vehicle Type
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
ColorVehicle Type\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Color is required.\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Vehicle Type is required.\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
Compartments
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
Compartment setup name\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
Compartments\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Compartment Set Name is required.\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Compartment capacity is required.\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n

Receipt number conflict detected. Conflict with the following devices:

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Saved DeviceConflicting Device
\r\n Device: {{conflict.DeviceId}} in Company: {{conflict.CompanyId}}
\r\n Range-1: {{conflict.Range1BeginValue}} - {{conflict.Range1EndValue}}
\r\n Range-2: {{conflict.Range2BeginValue}} - {{conflict.Range2EndValue}}
\r\n
\r\n \r\n Conflict Device: {{innerConflict.DeviceId}} in Company:\r\n {{innerConflict.CompanyId}}
\r\n Range-1: {{innerConflict.Range1BeginValue}} -\r\n {{innerConflict.Range1EndValue}}
\r\n Range-2: {{innerConflict.Range2BeginValue}} -\r\n {{innerConflict.Range2EndValue}}
\r\n
\r\n
\r\n

Ignore the conflict and save changes?

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n Receipt number ranges were changed, send special action to device to reload receipt number ranges?\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { AppService } from '@app/app.service';\r\nimport { clientVersion } from '../version';\r\n\r\n@Component({\r\n selector: 'facnm-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n ApiFileVersion: string;\r\n DbVersion: any;\r\n RequiredDbVersion: string;\r\n ApiFileInfoVersion: string\r\n currentYear: number;\r\n BuildVersionFull = clientVersion.BuildVersionFull;\r\n\r\n constructor(private app$: AppService) { }\r\n\r\n ngOnInit(): void {\r\n this.currentYear = (new Date()).getFullYear();\r\n this.app$.APIVersionDetails.subscribe(\r\n (res: any) => {\r\n this.ApiFileVersion = res.connectionFailed ? res.ApiFileVersion : 'API v.' + res.ApiFileVersion;\r\n this.DbVersion = res.DbVersion;\r\n this.RequiredDbVersion = res.RequiredDbVersion;\r\n this.ApiFileInfoVersion = res.ApiFileInfoVersion;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n © {{ currentYear }} PDI Technologies, Inc. All Rights Reserved\r\n
\r\n
\r\n {{ ApiFileVersion }} - Web v. {{ BuildVersionFull }}\r\n \r\n RequiredDbVersion\" src=\"assets/Content/Images/Icons/database_yellow.png\"\r\n title=\"DB version is {{DbVersion}}. Required DB version is {{RequiredDbVersion}}.\" />\r\n \r\n
\r\n\r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AppService } from '@app/app.service';\r\nimport { User } from \"./header.model\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: 'facnm-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n @Input() pagetitle;\r\n user: User;\r\n enableSpin: boolean;\r\n showAlert: boolean;\r\n exportClicked: boolean;\r\n notify: object[] = [];\r\n exportImg = 'assets/Content/svg-icons/action-bar-icons/export.svg';\r\n folder = 'assets/Content/svg-icons/action-bar-icons/';\r\n exportSuccess = this.folder + 'exported.svg';\r\n exportIdle = this.folder + 'export.svg';\r\n exportFail = this.folder + 'export_error.svg';\r\n exportProcess = this.folder + 'exporting.svg';\r\n\r\n\r\n constructor(private app$: AppService, private router: Router,) { }\r\n\r\n ngOnInit(): void {\r\n this.initializeUserData();\r\n this.app$.loginUserInfo.subscribe((res: any) => {\r\n this.user.username = res.Username;\r\n this.user.company = res.Company;\r\n this.user.isAdmin = res.IsAdmin;\r\n this.user.isSysAdmin = res.IsSysAdmin;\r\n this.user.isStrappingChartEnabled = res.IsStrappingChartEnabled;\r\n this.user.isAuthenticated = res.isAuthenticated;\r\n });\r\n this.verifyAuthentication();\r\n this.app$.getAPIVersion();\r\n }\r\n initializeUserData() {\r\n this.user = {\r\n username: \"\",\r\n company: \"\",\r\n isAdmin: false,\r\n isSysAdmin: false,\r\n isAuthenticated: false,\r\n isStrappingChartEnabled: false\r\n };\r\n }\r\n verifyAuthentication() {\r\n var bearerToken = sessionStorage.getItem(\"Bearer\");\r\n if (bearerToken != null) {\r\n this.user.isAuthenticated = true;\r\n this.app$.getUserDetails();\r\n }\r\n }\r\n gotoPage(page) {\r\n this.router.navigate([page]);\r\n }\r\n onClickExport(type) {\r\n this.exportImg = this.exportProcess;\r\n this.enableSpin = true;\r\n this.app$.exportData(type.toLowerCase()).subscribe((res) => {\r\n this.exportClicked = true;\r\n this.enableSpin = false;\r\n this.exportImg = this.exportSuccess;\r\n this.notify.push({ type: 'success', title: 'Success!', body: 'Export of ' + type + ' is succesful' });\r\n }, (err) => {\r\n this.exportClicked = true;\r\n this.enableSpin = false;\r\n if (err.status == 401) {\r\n this.logout();\r\n }\r\n else {\r\n this.exportImg = this.exportFail;\r\n this.notify.push({ type: 'danger', title: 'Error!', body: 'Export of ' + type + ' failed' });\r\n }\r\n })\r\n }\r\n showNotification() {\r\n if (this.exportClicked) {\r\n this.showAlert = true;\r\n this.exportClicked = false;\r\n this.exportImg = this.exportIdle;\r\n setTimeout(() => {\r\n this.notify = [];\r\n this.showAlert = false;\r\n }, 5000)\r\n }\r\n }\r\n logout() {\r\n sessionStorage.clear();\r\n this.initializeUserData();\r\n this.app$.getAPIVersion();\r\n this.gotoPage('login');\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
{{m.body}}
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { AppService } from '@app/app.service';\r\n\r\n@Component({\r\n selector: 'facnm-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n\r\n constructor(private app$: AppService) { }\r\n\r\n ngOnInit(): void {\r\n this.app$.setScreenTitle('Home');\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { LoadPoint, LoadPointTank, LoadPointInterface, Product } from './load-point.model';\r\nimport { LoadPointService } from './load-point.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { CompanyService } from '@settings/company/company.service';\r\nimport { NgxSmartModalService } from 'ngx-smart-modal';\r\nimport { DxPopupModule } from 'devextreme-angular/ui/popup';\r\nimport { ProductInterface } from '../products/product/product.model';\r\nimport { ProductService } from '../products/product/product.service';\r\nimport { ViewportScroller } from '@angular/common';\r\nimport { displayZeroValueText, dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-load-point',\r\n templateUrl: './load-point.component.html',\r\n styleUrls: ['./load-point.component.scss'],\r\n providers: [\r\n {\r\n provide: LoadPointInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new LoadPointService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n },\r\n {\r\n provide: ProductInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new ProductService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class LoadPointComponent implements OnInit {\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('bulkPlantDataGrid', { static: true }) bulkPlantDataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n @ViewChild('categoryForm') categoryForm: NgForm;\r\n @ViewChild('grid', { static: false }) grid: DxDataGridComponent;\r\n @ViewChild('productDataGrid') productDataGrid: DxDataGridComponent;\r\n @ViewChild('LoadPointDetailsDiv') LoadPointDetailsDiv: ElementRef;\r\n\r\n\r\n scrollToTop() {\r\n console.log(this.LoadPointDetailsDiv.nativeElement);\r\n this.LoadPointDetailsDiv.nativeElement.scrollTo(0,0);\r\n }\r\n\r\n private unsubscribe$ = new Subject();\r\n modalError: any;\r\n animation: any;\r\n shadingColor: any;\r\n saveTypeProgress: boolean;\r\n saveCategoryProgress: boolean;\r\n loadPointData: ArrayStore;\r\n loadPoint: Entity;\r\n loadPointTank: Entity;\r\n\r\n loadPointTankData: ArrayStore;\r\n customDataSource: ArrayStore;\r\n entityName = 'Load Point';\r\n error = '';\r\n GICollapse = false;\r\n ADCollapse = false;\r\n COCollapse = false;\r\n CICollapse = false;\r\n BPTCollapse = false;\r\n loadPointList = [];\r\n filterOptions = {\r\n LoadPointNumber: null, LoadPointName: null,\r\n GridPagerOptions: { PageIndex: 0, PageSize: 20, TotalPages: null }\r\n };\r\n PageSize = 20;\r\n TotalCount = null;\r\n isAddForm = 0;\r\n collapseColor = 'green';\r\n nonPrintCompanies = [];\r\n \r\n newUnit: string;\r\n newloadPoint: LoadPoint;\r\n loadPointCategorySubmitted = false;\r\n categoryList = [];\r\n loadPointCategoryShapes = [];\r\n loadPointCategoryDeleteConfirm = false;\r\n loadPointCategoryDeleteConfirmMsg = 'Are you sure you want to delete?';\r\n deleteProCateItem: any;\r\n deleteProCateItemIndex: any;\r\n arrguments: {};\r\n LoadPointTanks = [];\r\n productDataSource: any;\r\n LiquidProductDataSource:any;\r\n loadLocation = [];\r\n companyList = [];\r\n countries = [];\r\n isBulkplant = false;\r\n popupVisible = false;\r\n deletePopupVisible = false;\r\n resultDeleteBulkPlant=false;\r\n productFilterOptions = {\r\n ProductNumber: null, ProductName: null, ProductGroup: null,\r\n GridPagerOptions: { PageIndex: 0, PageSize: 1000000, TotalPages: null }\r\n };\r\n selectedProduct: Entity;\r\n selectedProductName: any;\r\n selectedProductId: any;\r\n productCategories = [];\r\n productType = [];\r\n\r\n noDataTextBulkPlant =\"\";\r\n constructor(\r\n private loadPoint$: LoadPointInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n public ngxSmartModalService: NgxSmartModalService,\r\n public DxPopupModule: DxPopupModule,\r\n private product: ProductService,\r\n private company: CompanyService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private viewportScroller: ViewportScroller) {\r\n \r\n loadPoint$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.loadPointData = new ArrayStore({\r\n data: data,\r\n key: ['Id']\r\n });\r\n if (data.length == 0) {\r\n this.dataGrid.noDataText = 'No load Point Found';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n });\r\n\r\n this.arrguments = {\r\n loadPointList: this.loadPoint$.getList(),\r\n productList: this.product.getList(this.productFilterOptions),\r\n loadLocationGroup: this.loadPoint$.getloadLocationGroup(),\r\n nonPrintCompanies: this.company.getNonPrintCompanyList(1),\r\n countries: this.loadPoint$.getCountryList(),\r\n categoryList: this.product.getProductCategoryList(),\r\n productType: this.product.getProductTypeDropdown(),\r\n };\r\n\r\n actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n OpenProductModel() {\r\n this.customDataSource = new ArrayStore({\r\n data: this.LiquidProductDataSource,\r\n key: ['Id']\r\n });\r\n this.productDataGrid.instance.deselectAll();\r\n this.productDataGrid.instance.clearFilter();\r\n this.ngxSmartModalService.open('ProductModel');\r\n }\r\n\r\n onPopupOk() {\r\n if (this.selectedProductName && this.selectedProductName) {\r\n this.loadPointTank['ProductName'] = this.selectedProductName;\r\n this.loadPointTank['ProductId'] = this.selectedProductId;\r\n }\r\n this.ngxSmartModalService.close('ProductModel');\r\n }\r\n\r\n onPopupCancel() {\r\n if (this.selectedProductName && this.selectedProductName) {\r\n this.selectedProductId = '';\r\n this.selectedProductName = '';\r\n }\r\n this.ngxSmartModalService.close('ProductModel');\r\n }\r\n\r\n getLoadPointList() {\r\n this.loadPoint$.getList().subscribe(listWithCreated => {\r\n this.loadPoint$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n ngOnInit() {\r\n this.app$.setScreenTitle(this.entityName);\r\n forkJoin(\r\n this.arrguments,\r\n ).subscribe(\r\n res => {\r\n this.productType = res['productType'];\r\n this.productCategories = res['categoryList']\r\n this.countries = res['countries'];\r\n this.nonPrintCompanies = res['nonPrintCompanies'];\r\n this.productDataSource = res['productList'];\r\n this.LiquidProductDataSource = this.productDataSource.ProductListVM.filter(p=>p.IsLiquid);\r\n this.loadLocation = res['loadLocationGroup'];\r\n this.loadPoint$.notifyRetrieved(res['loadPointList']);\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n\r\n isInvalid(field: any) { return this.errors$.isInvalid(field); }\r\n\r\n getError(field: any) { return this.errors$.getError(field); }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.loadPoint = new Entity();\r\n this.loadPoint.value.LoadLocationGroup = 0;\r\n this.isAddForm = 1;\r\n this.collapseColor = 'yellow';\r\n displayZeroValueText(this.loadLocation,'LoadLocationGroup','id','name');\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private deleteConfirm() {\r\n this.loadPoint$.delete(this.loadPoint.value.Id).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getLoadPointList();\r\n this.refreshGrid();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n\r\n if (this.loadPoint.value.LoadLocationGroup == 1 && !this.saveLoadPointTank()) {\r\n this.errors$.handleCustomError('Missing validation');\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n\r\n this.loadPoint$.create(this.loadPoint).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.getLoadPointList();\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deselectLoadPoint();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private deselectLoadPoint() {\r\n this.dataGrid.instance.deselectRows(this.loadPoint.key);\r\n this.loadPoint.key = undefined;\r\n }\r\n\r\n private reset() {\r\n this.loadPoint.restore();\r\n if(this.loadPointTank)\r\n this.loadPointTank.key=undefined;\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deselectLoadPoint();\r\n this.deSelectBulkPlant();\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n onSelectionChanged($clikedRow: any) {\r\n if (!this.loadPoint)\r\n try {\r\n let keySaved = JSON.parse(localStorage.getItem('loadPoint.dataGrid')).selectedRowKeys[0];\r\n if (keySaved) {\r\n this.selectLoadPoint(keySaved);\r\n }\r\n }\r\n catch { }\r\n }\r\n\r\n private selectLoadPoint(key: any) {\r\n this.actions$.notifyEntityBusy();\r\n this.loadPoint = new Entity();\r\n this.loadPoint.key = key;\r\n this.changeDetectorRef.detectChanges();\r\n\r\n this.loadPoint$.getLoadPointDetails(key.Id).subscribe(\r\n (data) => {\r\n this.loadPoint.value = data;\r\n this.loadPointTank = this.loadPoint.value.LoadPointTanks\r\n this.app$.notifyScreenReady();\r\n this.isAddForm = 0;\r\n this.isBulkplant = this.loadPoint.value.LoadLocationGroup == 1;\r\n this.collapseColor = 'green';\r\n if(this.loadPoint.value.LoadLocationGroup == 0){\r\n displayZeroValueText(this.loadLocation,'LoadLocationGroup','id','name');\r\n }\r\n if(this.loadPoint.value.CompanyId == 0){\r\n displayZeroValueText(this.nonPrintCompanies,'CompanyId','Id','Name');\r\n }\r\n if(this.loadPoint.value.CountryId == 0){\r\n displayZeroValueText(this.countries,'country','Id','Name');\r\n }\r\n });\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n if(this.entityForm?.form.invalid)\r\n this.loadPoint.key = undefined;\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.loadPoint)\r\n this.loadPoint = new Entity();\r\n if (JSON.stringify(this.loadPoint.key) === JSON.stringify($clikedRow.key)) {\r\n this.deselectLoadPoint();\r\n }\r\n else {\r\n this.selectLoadPoint($clikedRow.key);\r\n }\r\n }\r\n\r\n onCellPrepared(e: { rowType: string; column: { dataField: string; }; data: { Name2: any,Name1: any,Postcode:any,City:any,Address:any; }; cellElement: { innerHTML: string; }; }) {\r\n if (e.rowType === \"data\" && e.column.dataField === \"Name1\") {\r\n var Name1 = ''+e.data.Name1+'
'\r\n var Name2 = ''+e.data.Name2+'
';\r\n\r\n e.cellElement.innerHTML = Name1 + (Name2 ? Name2 : '');\r\n }\r\n\r\n if(e.rowType === \"data\" && e.column.dataField === \"Address\"){\r\n var postcodecity =\"\";\r\n if (e.data.Postcode != null) postcodecity = postcodecity + e.data.Postcode + \" \";\r\n if (e.data.City != null) postcodecity = postcodecity + e.data.City;\r\n e.cellElement.innerHTML = ''+e.data.Address+'
'+''+postcodecity+'
';\r\n }\r\n }\r\n\r\n onRowClicked($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.loadPointTank)\r\n this.loadPointTank = new Entity();\r\n if (JSON.stringify(this.loadPointTank.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectBulkPlant();\r\n }\r\n else {\r\n this.selectBulkPlant($clikedRow.key);\r\n }\r\n }\r\n\r\n private deSelectBulkPlant() {\r\n if(this.loadPointTank)\r\n this.loadPointTank.key = undefined;\r\n }\r\n\r\n private selectBulkPlant(key: any) {\r\n this.loadPointTank = new Entity();\r\n this.loadPointTank.key = key;\r\n this.loadPointTank = this.loadPoint.value.LoadPointTanks.find(lpt => lpt.Id === key);\r\n this.loadPointTank.key = key;\r\n }\r\n\r\n onProductRowClicked($clikedRow: { key: any; }) {\r\n this.customDataSource.byKey($clikedRow.key).then(pt => {\r\n this.selectedProductName = pt.ProductName;\r\n this.selectedProductId = pt.Id;\r\n });\r\n }\r\n\r\n addNewLoadPointTank = function () {\r\n var bulkTank = {};\r\n if (this.loadPoint && this.loadPoint.value.LoadPointTanks?.length > 0) {\r\n var sortLPT = this.loadPoint.value.LoadPointTanks.sort((a,b) => b.Id - a.Id);\r\n var Id = sortLPT[0].Id; \r\n bulkTank['Id'] = Id + 1;\r\n }\r\n else {\r\n bulkTank['Id'] = 1;\r\n this.loadPoint.value.LoadPointTanks = [];\r\n }\r\n this.loadPoint.value.LoadPointTanks.push(bulkTank);\r\n this.noDataTextBulkPlant='';\r\n }\r\n\r\n private saveLoadPointTank() {\r\n var isBulkPlantValid = true;\r\n this.errors$.error(undefined);\r\n if (!this.loadPoint.value.LoadPointTanks || this.loadPoint.value.LoadPointTanks.length == 0) {\r\n this.errors$.error('At least one Bulk Tank is required to save the Load Point.');\r\n isBulkPlantValid = false;\r\n }\r\n else {\r\n this.loadPoint.value.LoadPointTanks.forEach(loadpointTank => {\r\n var Id = loadpointTank.Id < 0 ? -loadpointTank.Id : loadpointTank.Id;\r\n if (!loadpointTank.TankId) {\r\n this.errors$.error(\"Tank ID is required for bulk plant tank \" + Id);\r\n isBulkPlantValid = false;\r\n }\r\n if (loadpointTank.TankId && loadpointTank.TankId.length > 50) {\r\n this.errors$.error(\"Tank ID has more than 50 characters for bulk plant tank \" + Id);\r\n isBulkPlantValid = false;\r\n }\r\n if (!loadpointTank.ProductId) {\r\n this.errors$.error(\"Product is required for bulk plant tank \" + Id);\r\n isBulkPlantValid = false;\r\n return;\r\n }\r\n });\r\n if (isBulkPlantValid) {\r\n this.loadPoint.value.LoadPointTanks.forEach(loadpointTank => {\r\n if (!loadpointTank.LoadLocationId) {\r\n loadpointTank.LoadLocationId = this.loadPoint.value.Id;\r\n loadpointTank.Id = -loadpointTank.Id;\r\n }\r\n });\r\n }\r\n return isBulkPlantValid;\r\n }\r\n }\r\n\r\n handleRowRemoving(event: any) {\r\n if (this.loadPoint && this.loadPoint.value.LoadPointTanks.length < 2) {\r\n event.cancel = true; // Cancel the deletion\r\n this.popupVisible = true;\r\n }\r\n }\r\n\r\n deleteLoadPoint(item, index) {\r\n this.loadPoint$.delete(item.Id).subscribe((ok) => {\r\n }, (error) => {\r\n this.errors$.handleNetworkError(error);\r\n });\r\n }\r\n\r\n onLoadLocationGroupChange() {\r\n this.isBulkplant = this.loadPoint.value.LoadLocationGroup == 1;\r\n if (this.isBulkplant && !this.loadPoint.value.LoadPointTanks?.length)\r\n this.noDataTextBulkPlant = \"No Data\";\r\n else\r\n this.noDataTextBulkPlant = ''; \r\n }\r\n\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n isNumberOnly(event) {\r\n return (event.charCode != 8 && event.charCode == 0 || (event.charCode == 46) || (event.charCode >= 48 && event.charCode <= 57))\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n General Information\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Number is required\r\n \r\n \r\n Number cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Name 1 is required\r\n \r\n \r\n Name 1 cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Name 2 is required\r\n \r\n \r\n Name 2 cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{location.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Name 3 cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{company.Name}}\r\n \r\n \r\n
\r\n
\r\n \r\n Please select a company\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Address\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Address is required\r\n \r\n \r\n Address cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n ZIP/Postal Code is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n City/Place is required\r\n \r\n \r\n City/Place cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{country.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Coordinates\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Contact Information\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Bulk Plant Tanks\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Bulk Plant Tanks\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Internal ID\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Tank ID\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Please enter a valid Tank ID\r\n \r\n \r\n Tank ID cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n product is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Barcode\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Change Date\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
Cannot delete bulk plant tank, Atleast one is required per Bulk Plant.
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
Are you sure you want to delete this record?
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
Product
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\nexport class LoadPoint {\r\n Id: number;\r\n Number: string;\r\n Name1: string;\r\n Name2: string;\r\n Name3: string;\r\n CompanyId: number;\r\n Barcode: string;\r\n Type: string;\r\n Address: string;\r\n City: string;\r\n Postcode: string;\r\n State: string;\r\n CountryId: number;\r\n Latitude: number;\r\n Longitude: number;\r\n ContactName: any;\r\n ContactPhone: number;\r\n LoadLocationGroup: number;\r\n AllowRegisterDataChange: boolean;\r\n LoadPointTanks: any; \r\n}\r\n\r\nexport class LoadPointTank{\r\n Id: number;\r\n LoadLocationId: number;\r\n TankId: string;\r\n ProductId: number;\r\n ProductName: string;\r\n Barcode: string;\r\n ChangeDate: Date;\r\n Deleted: boolean;\r\n}\r\n\r\nexport class Product {\r\n\r\n Id: number;\r\n Number: string;\r\n Name: string;\r\n ValidDate: Date;\r\n Barcode: string;\r\n iButtonId: string;\r\n Language: string;\r\n CanbusDriverId: string;\r\n Password: string;\r\n Deleted: boolean;\r\n CompanyId: number;\r\n PriceChange: number;\r\n SalesTaxId: number;\r\n PricePer: any;\r\n ProductPrice: number;\r\n MaxDiscount: number;\r\n ProductWeight: number;\r\n IsEmptyProduct: boolean;\r\n\r\n}\r\n\r\n@Injectable()\r\nexport abstract class LoadPointInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: LoadPoint[]) => void;\r\n\r\n getProductList: (arg) => Observable;\r\n getloadLocationGroup:()=> Observable;\r\n getCountryList:() => Observable;\r\n getLoadPointDetails:(id) => Observable;\r\n\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { Entity, Enum } from '@app/app.model';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\nimport { LoadPoint, LoadPointInterface, LoadPointTank } from './load-point.model';\r\n\r\n\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { Product } from '@products/products.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoadPointService implements LoadPointInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n notifyRetrieved(data: LoadPoint[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n save: (data: Entity) => Observable;\r\n getEntity: (key: any) => Observable;\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.loadPoint,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.loadPoint, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(id: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.loadPoint + '/' + id, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getProductList(arg): Observable {\r\n return this._http.put(e.endpoint.products.product + '/filter/', arg, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getloadLocationGroup(): Observable{\r\n return this._http.get(e.endpoint.loadPoint + '/loadlocationgroup',{\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getCountryList(): Observable {\r\n return this._http.get(e.endpoint.masterData+'/countries/0', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getLoadPointDetails (id: any): Observable{\r\n return this._http.get(e.endpoint.loadPoint + '/'+ id,{\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n}","import { Component, ElementRef, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { AppService } from '@app/app.service';\r\nimport { LoginSSOService } from './login-sso.service';\r\nimport { PdiLoaderService } from '@pdi/platform-angular-template';\r\n\r\n@Component({\r\n selector: 'facnm-login-sso',\r\n templateUrl: './login-sso.component.html',\r\n styleUrls: ['./login-sso.component.scss']\r\n})\r\nexport class LoginSSOComponent implements OnInit {\r\n entityName = \"Login with SSO\";\r\n error: string;\r\n loginSSOForm = new FormGroup({\r\n company: new FormControl(null, (env) => !env.value ? { customError: true } : null)\r\n });\r\n\r\n constructor(private app$: AppService, \r\n private loginSSOService$: LoginSSOService,\r\n private el: ElementRef,\r\n private loadingService: PdiLoaderService\r\n ) { }\r\n get company() { return this.loginSSOForm.get('company'); }\r\n\r\n ngOnInit(): void {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.app$.notifyScreenReady();\r\n this.loginSSOService$.InitializeAuthService();\r\n }\r\n\r\n ngAfterViewInit(){\r\n this.el.nativeElement.querySelectorAll('input')[0].setAttribute('id', 'company');\r\n }\r\n \r\n onSubmit(loginSSOForm) {\r\n this.loginSSOForm.markAllAsTouched();\r\n if (loginSSOForm.valid) {\r\n this.loadingService.openGlobalLoader();\r\n let ssotoken = \"\";\r\n this.app$.notifyScreenBusy();\r\n this.loginSSOService$.authService.authenticate().then(\r\n (res: any) => {\r\n ssotoken = res.accessToken;\r\n if(ssotoken){\r\n this.loginSSOService$.authentincateSSO(loginSSOForm.value, ssotoken).subscribe(\r\n (res: any) => {\r\n // Redirecting to home page after authenticating the user from DB.\r\n sessionStorage.setItem(\"Bearer\", res.access_token);\r\n this.app$.updateUserInfo({ isAuthenticated: true });\r\n this.app$.getUserDetails();\r\n this.app$.getAPIVersion();\r\n this.app$.redirectTo('home');\r\n this.loadingService.closeGlobalLoader();\r\n },\r\n (err) => {\r\n this.app$.notifyScreenReady();\r\n this.error = err.message;\r\n this.loadingService.closeGlobalLoader();\r\n }\r\n );\r\n } else{\r\n this.error = 'Invalid Token';\r\n }\r\n },\r\n (err) => {\r\n this.app$.notifyScreenReady();\r\n this.error = err.message;\r\n }\r\n );\r\n }\r\n }\r\n\r\n}\r\n","\r\n ","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class LoginSSOData {\r\n company: string;\r\n}\r\nexport abstract class LoginSSOInterface {\r\n authentincateSSO: (data: object, data2: string) => Observable;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { LoginSSOData, LoginSSOInterface } from './login-sso.model';\r\nimport { AuthenticationService } from '@pdiplatform/authentication';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoginSSOService implements LoginSSOInterface {\r\n\r\n authService:any;\r\n static ssoAuthenticationUrl: string = \"\";\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n authentincateSSO(param: LoginSSOData, ssotoken: string) {\r\n var data = 'grant_type=OktaAccessToken&company=' + param.company;\r\n return this._http.post(environment.endpoint.server + '/token', data, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n 'Authorization': 'Bearer ' + ssotoken\r\n },\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n InitializeAuthService() {\r\n if(!LoginSSOService.ssoAuthenticationUrl || !this.authService) {\r\n this._http.get(environment.endpoint.ssoBaseURL, { \r\n headers: { \r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') } \r\n }).subscribe(res => { \r\n LoginSSOService.ssoAuthenticationUrl = 'https://' + res + '/';\r\n this.authService = new AuthenticationService(LoginSSOService.ssoAuthenticationUrl);\r\n }, (err => {\r\n console.log(\"Unable to fetch Authentication URL. No API Connection.\");\r\n }));\r\n }\r\n}\r\n}","import { Component, ElementRef, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { AppService } from '@app/app.service';\r\nimport { LoginService } from './login.service';\r\nimport { LoginSSOService } from '../login-sso/login-sso.service';\r\nimport { Router } from \"@angular/router\";\r\nimport { PdiLoaderService } from '@pdi/platform-angular-template';\r\n\r\n\r\n@Component({\r\n selector: 'facnm-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n entityName = \"Login\";\r\n error: string | undefined;\r\n loginForm = new FormGroup({\r\n username: new FormControl(null, (un) => !un.value ? { customError: true } : null),\r\n password: new FormControl(null, (pwd) => !pwd.value ? { customError: true } : null),\r\n company: new FormControl(null, (env) => !env.value ? { customError: true } : null)\r\n });\r\n\r\n constructor(private router$: Router, private app$: AppService,\r\n private loginService$: LoginService,\r\n private loginSSOService$: LoginSSOService,\r\n private el: ElementRef,\r\n private loadingService: PdiLoaderService\r\n ) { }\r\n get username() { return this.loginForm.get('username'); }\r\n get password() { return this.loginForm.get('password'); }\r\n get company() { return this.loginForm.get('company'); }\r\n\r\n ngOnInit(): void {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.app$.notifyScreenReady();\r\n this.app$.updateUserInfo({ isAuthenticated: false });\r\n this.app$.getAPIVersion();\r\n this.loginSSOService$.InitializeAuthService();\r\n }\r\n\r\n ngAfterViewInit(){\r\n this.el.nativeElement.querySelectorAll('input')[2].setAttribute('id', 'company');\r\n }\r\n\r\n onSubmit(loginForm) {\r\n this.error = \"\";\r\n this.loginForm.markAllAsTouched();\r\n if (loginForm.valid) {\r\n this.loadingService.openGlobalLoader();\r\n this.app$.notifyScreenBusy();\r\n this.loginService$.authentincate(loginForm.value).subscribe(\r\n (res: any) => {\r\n sessionStorage.setItem(\"Bearer\", res.access_token);\r\n this.app$.updateUserInfo({ isAuthenticated: true });\r\n this.app$.getUserDetails();\r\n this.app$.getAPIVersion();\r\n this.router$.navigate(['home']);\r\n this.loadingService.closeGlobalLoader();\r\n },\r\n (err) => {\r\n this.app$.notifyScreenReady();\r\n this.error = err.message;\r\n this.loadingService.closeGlobalLoader();\r\n }\r\n );\r\n }\r\n }\r\n\r\n submitSSOLogin(){\r\n this.app$.notifyScreenBusy();\r\n this.loadingService.openGlobalLoader();\r\n var redirectUrl = window.location.href.replace(\"login\", \"loginSSO\");\r\n this.loginSSOService$.authService.authenticate(redirectUrl).then(\r\n (res: any) => {\r\n sessionStorage.setItem(\"SSOToken\", res.accessToken);\r\n this.app$.redirectTo('loginSSO');\r\n this.loadingService.closeGlobalLoader();\r\n },\r\n (err) => {\r\n this.app$.notifyScreenReady();\r\n this.error = err.message;\r\n this.loadingService.closeGlobalLoader();\r\n }\r\n );\r\n }\r\n\r\n isSSOUrlLoaded() {\r\n if(LoginSSOService.ssoAuthenticationUrl) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","
\r\n \r\n
","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class LoginData {\r\n username: string;\r\n password: string;\r\n company: string;\r\n}\r\nexport abstract class LoginInterface {\r\n authentincate: (data: object) => Observable;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { LoginData, LoginInterface } from './login.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoginService implements LoginInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n authentincate(param: LoginData) {\r\n var data = 'grant_type=password&username=' + param.username + '&password=' + encodeURIComponent(param.password) + '&company=' + param.company;\r\n return this._http.post(environment.endpoint.server + '/token', data, {\r\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { DataArea, DataAreaInterface } from './data-area.model';\r\nimport { DataAreaService } from './data-area.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-data-area',\r\n templateUrl: './data-area.component.html',\r\n styleUrls: ['./data-area.component.scss'],\r\n providers: [\r\n {\r\n provide: DataAreaInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new DataAreaService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class DataAreaComponent implements OnInit {\r\n private unsubscribe$ = new Subject();\r\n entityName = 'Data Area';\r\n DataAreaDataSource: any;\r\n DataArea: ArrayStore;\r\n dataAreaEntity: Entity;\r\n collapseColor = 'green';\r\n isAddForm = 0;\r\n newdataArea = {};\r\n productGroups = [];\r\n\r\n assignedProductSelected = [];\r\n unassignedProductSelected = [];\r\n productGroupColumn = [];\r\n isProductGroupSelect = false;\r\n isProductGroupSelectNew = false;\r\n isProductGroupUnselect = false;\r\n dataAreaEntityDeleteConfirm = false;\r\n dataAreaEntityDeleteConfirmMsg = \"Data area will be removed for both products and customers. Are you sure you want to delete?\";\r\n PGCollapse = false;\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n private dataGridAssignedProducts: DxDataGridComponent;\r\n @ViewChild('dataGridAssignedProducts', { static: false }) set assignedProducts(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridAssignedProducts = content;\r\n }\r\n }\r\n\r\n private dataGridAllProductGroups: DxDataGridComponent;\r\n @ViewChild('dataGridAllProductGroups', { static: false }) set unassignedProducts(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridAllProductGroups = content;\r\n }\r\n }\r\n\r\n constructor(private dataArea$: DataAreaInterface, private app$: AppService, private errors$: ErrorsService, private actions$: ActionsService, private changeDetectorRef: ChangeDetectorRef ) { }\r\n\r\n ngOnInit() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.buttonActions();\r\n forkJoin({\r\n dataAreaList: this.dataArea$.getList(0),\r\n productGroups: this.dataArea$.getProductGroupList()\r\n }).subscribe(\r\n res => {\r\n this.productGroups = res['productGroups'];\r\n this.dataArea$.notifyRetrieved(res['dataAreaList']);\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n\r\n this.productGroupColumn = [\r\n { caption: 'Product Group No', dataField: 'Number', dataType: 'string' },\r\n {\r\n alignment: 'left', caption: 'Product Group Name', dataField: 'Name', cssClass: 'Name', dataType: 'string',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Name)\r\n .appendTo(container);\r\n }\r\n }\r\n ]\r\n }\r\n\r\n buttonActions(){\r\n this.dataArea$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.DataAreaDataSource = new ArrayStore({\r\n data: data,\r\n key: ['Id']\r\n });\r\n\r\n if (data.length == 0) {\r\n this.dataGrid.noDataText = 'No Product Group Found';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n });\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n onContentReadyAssigned() {\r\n this.dataGridAssignedProducts.noDataText = this.dataGridAssignedProducts.instance.totalCount() ? '' : \"No data\";\r\n }\r\n \r\n onContentReadyUnAssigned() {\r\n this.dataGridAllProductGroups.noDataText = this.dataGridAllProductGroups.instance.totalCount() ? '' : \"No data\";\r\n }\r\n\r\n getList() {\r\n this.dataArea$.getList(0).subscribe(listWithCreated => {\r\n this.dataArea$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n\r\n this.dataArea$.create(this.dataAreaEntity).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.getList();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n deleteConfirm() {\r\n let param = { Id: this.dataAreaEntity.value.Id };\r\n this.dataArea$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n onSelectionChanged($clikedRow: any) {\r\n if ($clikedRow.selectedRowsData.length > 0) {\r\n this.isProductGroupSelect = true;\r\n }\r\n else {\r\n this.isProductGroupSelect = false;\r\n }\r\n if (this.isAddForm == 1 && this.isProductGroupSelect) {\r\n this.isProductGroupSelectNew = true;\r\n }\r\n else {\r\n this.isProductGroupSelectNew = false;\r\n }\r\n }\r\n\r\n onSelectionChanges($clikedRow: any) {\r\n if ($clikedRow.selectedRowsData.length > 0) {\r\n this.isProductGroupUnselect = true;\r\n }\r\n else {\r\n this.isProductGroupUnselect = false;\r\n }\r\n }\r\n\r\n selectProductGroups() {\r\n this.dataGridAllProductGroups.instance.getSelectedRowsData().forEach((sr) => {\r\n let prd = this.dataAreaEntity.value.ProductGroups.filter((pgrp) => pgrp.Id == sr.Id);\r\n if (prd.length == 0) {\r\n this.dataAreaEntity.value.ProductGroups.push(sr);\r\n }\r\n });\r\n this.clearAndRefreshGrid();\r\n };\r\n\r\n unselectProductGroups() {\r\n this.dataGridAssignedProducts.instance.getSelectedRowsData().forEach((sr) => {\r\n this.dataAreaEntity.value.ProductGroups.splice(this.dataAreaEntity.value.ProductGroups.indexOf(sr), 1);\r\n });\r\n this.clearAndRefreshGrid();\r\n }\r\n\r\n\r\n clearAndRefreshGrid() {\r\n if (this.dataGridAssignedProducts && this.dataGridAllProductGroups) {\r\n this.dataGridAssignedProducts.instance.clearSelection();\r\n this.dataGridAssignedProducts.instance.refresh();\r\n this.dataGridAllProductGroups.instance.clearSelection();\r\n this.dataGridAllProductGroups.instance.refresh();\r\n this.setNoDataText();\r\n }\r\n }\r\n\r\n setNoDataText() {\r\n this.dataGridAssignedProducts.noDataText = this.dataAreaEntity.value.ProductGroups?.length ? '' : \"No data\";\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n onContentReady(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Product Group Found\";\r\n }\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.dataAreaEntity) {\r\n this.dataAreaEntity = new Entity();\r\n this.dataAreaEntity.key = undefined;\r\n }\r\n if (JSON.stringify(this.dataAreaEntity.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.dataAreaEntity.key);\r\n this.dataAreaEntity.key = undefined;\r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.app$.notifyScreenBusy();\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n this.dataArea$.getDataAreaByID(key).subscribe((res: any) => {\r\n this.dataAreaEntityDeleteConfirm = true;\r\n this.app$.notifyScreenReady();\r\n this.dataAreaEntity = new Entity();\r\n this.dataAreaEntity.key = key;\r\n this.dataAreaEntity.value = cloneDeep(res);\r\n this.changeDetectorRef.detectChanges();\r\n this.dataAreaEntity.value.ProductGroups = res.ProductGroups;\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private reset() {\r\n this.dataAreaEntity.restore();\r\n this.clearAndRefreshGrid();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n this.isProductGroupSelect = false;\r\n this.isProductGroupSelectNew = false;\r\n this.isProductGroupUnselect = false;\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.dataAreaEntity = new Entity();\r\n this.dataAreaEntity.value.ProductGroups = [];\r\n this.changeDetectorRef.detectChanges();\r\n this.collapseColor = 'yellow';\r\n this.isAddForm = 1;\r\n }\r\n\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Data Area Name is required\r\n \r\n \r\n Data Area Name cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Product Groups\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\nexport class DataArea {\r\n\r\n Id: number;\r\n Name: string;\r\n Number: string;\r\n ProductGroups: any;\r\n CustomerTypePostcodes: any;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class DataAreaInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: (param) => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: DataArea[]) => void;\r\n getProductGroupList: () => Observable;\r\n getDataAreaByID:(Key)=> Observable;\r\n saveDataArea:(param) => Observable;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Entity } from '@app/app.model';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { DataArea, DataAreaInterface } from './data-area.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataAreaService implements DataAreaInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n notifyRetrieved(data: DataArea[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n save: (data: Entity) => Observable;\r\n getEntity: (key: any) => Observable;\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.products.dataArea+\"/productgroup/\",\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getList(lookup): Observable {\r\n return this._http.get(e.endpoint.products.dataArea + '/list/'+lookup, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.products.dataArea + '/' + param.Id, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getProductGroupList() {\r\n return this._http.get(e.endpoint.products.productGroup, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getDataAreaByID(Key) {\r\n return this._http.get(e.endpoint.products.dataArea + \"/productgroup/\" + Key.Id, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n saveDataArea(dataArea) {\r\n return this._http.put(e.endpoint.products.dataArea + \"/productgroup/\", dataArea, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DeviceGroup,DeviceGroupInterface } from './device-group.module';\r\nimport { DeviceGroupService } from './device-group.service';\r\nimport { IsUndefinedOrNull, dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-device-group',\r\n templateUrl: './device-group.component.html',\r\n styleUrls: ['./device-group.component.scss'],\r\nproviders: [\r\n {\r\n provide: DeviceGroupInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new DeviceGroupService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class DeviceGroupComponent implements OnInit {\r\n constructor(\r\n private deviceGroup$: DeviceGroupInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n private dataGridProduct: DxDataGridComponent;\r\n @ViewChild('dataGridProduct', { static: false }) set dataGridSPContent(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridProduct = content;\r\n }\r\n }\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n private unsubscribe$ = new Subject();\r\n gridData: ArrayStore;\r\n isAddForm = 0;\r\n entityName = 'Device Product Group';\r\n entityData: Entity;\r\n productList: any;\r\n newEntityData: DeviceGroup;\r\n newEntity: any;\r\n PCollapse = false;\r\n VCollapse = false; \r\n collapseColor = 'green';\r\n productGridErrorMsg = '';\r\n\r\n ngOnInit(): void {\r\n this.actions();\r\n this.getList();\r\n this.app$.setScreenTitle(this.entityName);\r\n forkJoin({\r\n productList: this.deviceGroup$.getProductList(0),\r\n newEntityData: this.deviceGroup$.getNewEntity()\r\n }).subscribe(\r\n res => {\r\n this.newEntityData = res['newEntityData'];\r\n this.productList = res['productList'];\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n actions() {\r\n this.deviceGroup$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.gridData = new ArrayStore({\r\n data: data,\r\n key: [\"Id\"]\r\n });\r\n }\r\n });\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getList() {\r\n this.deviceGroup$.getList().subscribe(listWithCreated => {\r\n this.deviceGroup$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit(); \r\n this.entityForm.onSubmit(undefined);\r\n if ( (this.entityForm.form.invalid) || (this.entityData.value.AssignedProducts.length < 1) || (this.entityData.value.AssignedVehicles.length < 1) ) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n\r\n this.deviceGroup$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.getList();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n private deleteConfirm() {\r\n let param = {\r\n Id: this.entityData.value.Id,\r\n };\r\n this.deviceGroup$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.entityData = new Entity();\r\n this.entityData.value = cloneDeep(this.newEntityData);\r\n this.entityData.value.Id = 0;\r\n this.entityData.value.Name = \"\";\r\n this.entityData.value.AssignedProducts = [];\r\n this.entityData.value.AssignedVehicles = [];\r\n this.isAddForm = 1;\r\n this.collapseColor = 'yellow';\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onContentReadyGroup(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Product Groups Found\";\r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.deviceGroup$.getEntity(key).subscribe((res: any) => {\r\n this.app$.notifyScreenReady();\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.entityData.value = cloneDeep(res);\r\n this.refreshProductGrid();\r\n this.isAddForm=0;\r\n this.collapseColor = 'green';\r\n this.changeDetectorRef.detectChanges();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList)); \r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n }\r\n\r\n private reset() {\r\n this.entityData.restore(); \r\n if (IsUndefinedOrNull(this.entityData.value.AssignedProducts)) {\r\n this.entityData.value.AssignedProducts = [];\r\n }\r\n if (IsUndefinedOrNull(this.entityData.value.AssignedVehicles)) {\r\n this.entityData.value.AssignedVehicles = []; \r\n }\r\n if (IsUndefinedOrNull(this.entityData.value.UnAssignedVehicles)) {\r\n this.entityData.value.UnAssignedVehicles = [];\r\n }\r\n this.entityData.restore();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData) {\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n\r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n } \r\n }\r\n\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n getProductList(productID) {\r\n this.deviceGroup$.getProductList(productID).subscribe((data) => {\r\n this.productList = data;\r\n this.refreshProductGrid();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n refreshProductGrid() {\r\n if (this.dataGridProduct) {\r\n this.dataGridProduct.instance.refresh();\r\n this.productGridErrorMsg = \"\"\r\n }\r\n }\r\n\r\n onRowInsertedProduct(event: any) {\r\n event.data.Changed = true;\r\n }\r\n\r\n onContentReadyProduct(e: any) {\r\n this.dataGridProduct.noDataText = this.dataGridProduct.instance.totalCount() ? '' : \"No Products Found\";\r\n }\r\nonProductGridRowInserting(e) {\r\n this.productGridErrorMsg = \"\";\r\n if (!IsUndefinedOrNull(e.data)) {\r\n if (IsUndefinedOrNull(e.data.ProductNameOnDevice) || IsUndefinedOrNull(e.data.ProductNameOnDevice) ||\r\n IsUndefinedOrNull(e.data.UnitOfProduct) || IsUndefinedOrNull(e.data.ProductId)) {\r\n this.productGridErrorMsg = \"Please enter all values for new record.\";\r\n e.cancel = true; \r\n return;\r\n }\r\n else{\r\n this.productGridErrorMsg = \"\";\r\n }\r\n }\r\n else {\r\n this.productGridErrorMsg = \"Please enter all values for new record.\";\r\n e.cancel = true;\r\n return;\r\n }\r\n}\r\n\r\ncheckProductGridProperties(obj) {\r\n for (var key in obj) {\r\n if (obj[key] == null || obj[key] == \"\")\r\n return true;\r\n }\r\n return false;\r\n}\r\nonProductGridRowUpdating(e) {\r\n this.productGridErrorMsg = \"\";\r\n if (!IsUndefinedOrNull(e)) { \r\n var checkList = this.checkProductGridProperties(e.newData);\r\n if (checkList) {\r\n this.productGridErrorMsg = \"Please enter all values to update record.\";\r\n e.cancel = true; \r\n return;\r\n }\r\n else {\r\n this.productGridErrorMsg = \"\";\r\n }\r\n }\r\n else {\r\n this.productGridErrorMsg = \"Please enter all values to update record.\";\r\n e.cancel = true;\r\n return;\r\n }\r\n}\r\n\r\nformHeight: string;\r\n@ViewChild('screen', { static: true }) screenElement: ElementRef;\r\nprivate resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n}\r\n\r\nngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n}\r\n\r\n}\r\n\r\n \r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Product Group Name is required\r\n \r\n \r\n Product Group Name cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Products\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Please add atleast one product in Products Grid\r\n \r\n
\r\n
1\">\r\n \r\n {{productGridErrorMsg}}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Products
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Vehicles\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Please add atleast one Vehicle in Vehicles Grid\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity,Enum } from \"@app/app.model\";\r\n\r\nexport class DeviceGroup {\r\n Id: number;\r\n Name: string;\r\n Deleted: boolean;\r\n UnAssignedVehicles: any;\r\n AssignedVehicles: any;\r\n AssignedProducts :any;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class DeviceGroupInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: DeviceGroup[]) => void;\r\n getProductList: (groupId: any) => Observable;\r\n getNewEntity: () => Observable;\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Entity, Enum } from '@app/app.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { DeviceGroup, DeviceGroupInterface } from './device-group.module';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DeviceGroupService implements DeviceGroupInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n\r\n save: (data: Entity) => Observable;\r\n getEntity(param: any): Observable {\r\n return this._http.get(e.endpoint.products.deviceProductGroup + \"/\" + param.Id , {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n notifyRetrieved(data: DeviceGroup[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.products.deviceProductGroup, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.products.deviceProductGroup,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.products.deviceProductGroup + \"/\" + param.Id , {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewEntity() {\r\n return this._http.get(e.endpoint.products.deviceProductGroup + '/0', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n } \r\n\r\n getProductList(groupId): Observable {\r\n return this._http.get(e.endpoint.products.product + '/dropdown/0', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n \r\n}\r\n\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef,Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { DeviceMapInterface, DeviceMap } from './device-mapping.model';\r\nimport { DeviceMappingService } from './device-mapping.service';\r\nimport { dxDataGridHeightAdjustment, makePDIDropDownOptions, dxSelectOptions } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-device-mapping',\r\n templateUrl: './device-mapping.component.html',\r\n styleUrls: ['./device-mapping.component.scss'],\r\n providers: [\r\n {\r\n provide: DeviceMapInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new DeviceMappingService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class DeviceMappingComponent implements OnInit {\r\n\r\n constructor(\r\n private deviceMap$: DeviceMapInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n dxSelectOptions = new dxSelectOptions();\r\n private unsubscribe$ = new Subject();\r\n gridData: ArrayStore;\r\n isAddForm = 0;\r\n GICollapse = false;\r\n collapseColor = 'green';\r\n entityName = 'Device Product Mapping';\r\n entityNameNotification = 'Device Product';\r\n entityData: Entity;\r\n newEntityData: DeviceMap;\r\n newEntity: any;\r\n ProductList: any[];\r\n DeviceList: any[];\r\n deviceMappingColumnConfig: any;\r\n\r\n ngOnInit(): void {\r\n this.actions();\r\n this.getList();\r\n this.app$.setScreenTitle(this.entityName);\r\n forkJoin({\r\n ProductList: this.deviceMap$.getProductList(),\r\n DeviceList: this.deviceMap$.getDeviceList(),\r\n newEntityData: this.deviceMap$.getNewEntity()\r\n }).subscribe(\r\n res => {\r\n this.ProductList = res['ProductList'];\r\n this.DeviceList = res['DeviceList'];\r\n this.newEntityData=res['newEntityData'];\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n\r\n this.deviceMappingColumnConfig = [\r\n { caption: 'Product Name on Register', dataField: 'ProductNameOnDevice', dataType: 'string',alignment: 'left' },\r\n { caption: 'Product Id on Register', dataField: 'ProductNameNumber', dataType: 'string',alignment: 'left' },\r\n { caption: 'Product Unit', dataField: 'UnitOfProduct', dataType: 'string',alignment: 'center' },\r\n {\r\n caption: 'Device Id - Name', dataField: 'DeviceId', cssClass: 'DeviceId', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n var devicedetails = \"\";\r\n if (options.data.DeviceId != 0) devicedetails = devicedetails + options.data.DeviceId + \" - \";\r\n if (options.data.DeviceName != null) devicedetails = devicedetails + options.data.DeviceName;\r\n $('').text(devicedetails).append(\"
\").appendTo(container);\r\n },\r\n calculateCellValue: function (data) {\r\n return data.DeviceId + \" - \" + data.DeviceName;\r\n },\r\n calculateFilterExpression: function (filterValue, selectedFilterOperation) {\r\n return [this.calculateCellValue, selectedFilterOperation || 'contains', filterValue];\r\n }\r\n },\r\n {\r\n caption: 'Product Number - Name', dataField: 'ProductId', cssClass: 'ProductId', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n var devicedetails = \"\";\r\n if (options.data.ProductId != 0) devicedetails = devicedetails + options.data.ProductId + \" - \";\r\n if (options.data.ProductName != null) devicedetails = devicedetails + options.data.ProductName;\r\n $('').text(devicedetails).append(\"
\").appendTo(container);\r\n },\r\n calculateCellValue: function (data) {\r\n return data.ProductId + \" - \" + data.ProductName;\r\n },\r\n calculateFilterExpression: function (filterValue, selectedFilterOperation) {\r\n return [this.calculateCellValue, selectedFilterOperation || 'contains', filterValue];\r\n }\r\n }\r\n \r\n ];\r\n\r\n }\r\n\r\n actions() {\r\n this.deviceMap$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.gridData = new ArrayStore({\r\n data: data,\r\n key: [\"DeviceId\", \"ProductId\", \"ProductNameNumber\"]\r\n });\r\n }\r\n });\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n getList() {\r\n this.deviceMap$.getList().subscribe(listWithCreated => {\r\n this.deviceMap$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n onCellPrepared(e: any) {\r\n if (e.rowType === \"data\" && e.column.dataField === \"DeviceIdName\") {\r\n e.cellElement.innerHTML = e.data.DeviceId + ' - ' + e.data.DeviceName;\r\n } else if (e.rowType === \"data\" && e.column.dataField === \"ProductIdName\") {\r\n e.cellElement.innerHTML = e.data.ProductId + ' - ' + e.data.ProductName;\r\n }\r\n }\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n\r\n this.deviceMap$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.getList();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n private deleteConfirm() {\r\n let param = {\r\n DeviceId: this.entityData.value.DeviceId,\r\n ProductId: this.entityData.value.ProductId,\r\n ProductNameNumber: this.entityData.value.ProductNameNumber,\r\n };\r\n this.deviceMap$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.entityData = new Entity();\r\n this.entityData.value = cloneDeep(this.newEntityData);\r\n this.entityData.created = true;\r\n this.isAddForm = 1;\r\n this.collapseColor=\"yellow\";\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onContentReadyGroup(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Device Product Mapping Found\";\r\n }\r\n\r\n\r\n private selectEntity(key: any) {\r\n this.app$.notifyScreenBusy();\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n this.deviceMap$.getEntity(key).subscribe((res: any) => {\r\n this.app$.notifyScreenReady();\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.entityData.value = cloneDeep(res);\r\n this.changeDetectorRef.detectChanges();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n }\r\n\r\n private reset() {\r\n this.entityData.restore();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData) {\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n \r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n deviceDisplayExpr(item) {\r\n return item ? `${item.Id} - ${item.Name}` : '';\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n General Information \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n Product ID on Register is required\r\n \r\n \r\n Product ID on Register cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Product Number - Name\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Please select a Product\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Device\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Please select a Device\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Product Name on Register is required\r\n \r\n \r\n Product Name on Register cannot be longer than 50 characters \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Unit of Product is required.\r\n \r\n \r\n Unit of Product cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity } from \"@app/app.model\";\r\n\r\nexport class DeviceMap {\r\n DeviceId: number;\r\n ProductId: number;\r\n DeviceIdName: string;\r\n ProductIdName: string;\r\n ProductNumber: number;\r\n DeviceName: string;\r\n ProductNameOnDevice: string;\r\n ProductName: string;\r\n ProductNameNumber:string;\r\n UnitOfProduct: string;\r\n GroupId: number;\r\n GroupName:string;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class DeviceMapInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: DeviceMap[]) => void;\r\n getNewEntity: () => Observable;\r\n getProductList: () => Observable;\r\n getDeviceList: () => Observable;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Entity } from '@app/app.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { DeviceMap, DeviceMapInterface } from './device-mapping.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DeviceMappingService implements DeviceMapInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n notifyRetrieved(data: DeviceMap[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.products.productDevice, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.products.productDevice,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.products.productDevice + \"/\" + param.ProductNameNumber + \"/\" + param.DeviceId + \"/\" + param.ProductId, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getProductList() {\r\n return this._http.get(e.endpoint.products.product + '/dropdown/0', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n \r\n getDeviceList() {\r\n return this._http.get(e.endpoint.device + '/dropdown', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getNewEntity() {\r\n return this._http.get(e.endpoint.products.productDevice + '/newDeviceProduct', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getEntity(param: any) {\r\n return this._http.get(e.endpoint.products.productDevice + \"/details/\"+ param.ProductNameNumber + \"/\" + param.DeviceId + \"/\" + param.ProductId+ '?noCache=' + new Date().getTime(), {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef,Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { Factor, FactorInterface } from './factor.model';\r\nimport { FactorService } from './factor.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { IsUndefinedOrNull, dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n\r\n@Component({\r\n selector: 'facnm-factor',\r\n templateUrl: './factor.component.html',\r\n styleUrls: ['./factor.component.scss'],\r\n providers: [\r\n {\r\n provide: FactorInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new FactorService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\n\r\nexport class FactorComponent implements OnInit {\r\n\r\n private unsubscribe$ = new Subject();\r\n entityName = 'Factors'\r\n entityNameNotification = 'Factor';\r\n gridDataSource: any;\r\n entityData: Entity;\r\n collapseColor = 'green';\r\n isAddForm = 0;\r\n newEntityData: Factor;\r\n CSCollapse = false;\r\n isNewQuantityUnit = false;\r\n newQuantityUnit: string;\r\n factorGridErrorMsg = '';\r\n numberPattern: any = \"/^\\d+([.]\\d+)?$/\";\r\n decimalPattern: any = \"^[0-9]{0,4}(\\.[0-9]{0,2})?$\";\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n quantityUnitList = [];\r\n factorIdList = [];\r\n factorCodeList = [];\r\n getFactorIdList = [];\r\n getFactorCodeList = [];\r\n\r\n private dataGridFactorItems: DxDataGridComponent;\r\n @ViewChild('dataGridFactorItems', { static: false }) set dataGridSPContent(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridFactorItems = content;\r\n }\r\n }\r\n\r\n constructor(\r\n private factor$: FactorInterface,\r\n private app$: AppService,\r\n private errors$: ErrorsService,\r\n private actions$: ActionsService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.actions();\r\n forkJoin({\r\n factorList: this.factor$.getList(0),\r\n newEntity: this.factor$.getNewEntity(),\r\n quantityUnit: this.factor$.getQuantityUnitList(),\r\n\r\n }).subscribe(\r\n res => {\r\n this.quantityUnitList = res['quantityUnit'];\r\n this.factor$.notifyRetrieved(res['factorList']);\r\n this.newEntityData = res['newEntity'];\r\n this.app$.notifyScreenReady();\r\n\r\n this.getFactorIdList = res['factorList'];\r\n this.getFactorIdList.forEach(s => {\r\n this.factorIdList.push(s.Id);\r\n });\r\n\r\n this.getFactorCodeList = res['factorList'];\r\n this.getFactorCodeList.forEach(c => {\r\n this.factorCodeList.push(c.Code);\r\n });\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n actions() {\r\n this.factor$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.gridDataSource = new ArrayStore({\r\n data: data,\r\n key: ['Id', 'Code']\r\n });\r\n }\r\n });\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getList() {\r\n this.factor$.getList(0).subscribe(listWithCreated => {\r\n this.factor$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n addNewQuantityUnit() {\r\n this.isNewQuantityUnit = true;\r\n this.newQuantityUnit = \"\";\r\n }\r\n cancelNewQuantityUnit() {\r\n this.isNewQuantityUnit = false;\r\n this.newQuantityUnit = \"\";\r\n }\r\n saveNewQuantityUnit = function () {\r\n if (this.newQuantityUnit != \"\") {\r\n var flag = false;\r\n for (var i = 0; i < this.quantityUnitList.length; i++) {\r\n if (this.quantityUnitList[i].toLowerCase() == this.newQuantityUnit.toLowerCase()) {\r\n flag = true;\r\n this.newQuantityUnit = this.quantityUnitList[i];\r\n }\r\n }\r\n if (!flag) this.quantityUnitList.push(this.newQuantityUnit);\r\n this.entityData.value.QuantityUnit = this.newQuantityUnit;\r\n this.isNewQuantityUnit = false;\r\n }\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid || (this.entityData.value.Items.length < 1)) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n this.factor$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.getList();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n private deleteConfirm() {\r\n let param = { Id: this.entityData.value.Id, Code: this.entityData.value.Code };\r\n this.factor$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onContentReady(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Factors Found\";\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData) {\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n this.isNewQuantityUnit = false;\r\n this.newQuantityUnit = \"\"; \r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.app$.notifyScreenBusy();\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n this.factor$.getEntity(key).subscribe((res: any) => {\r\n this.app$.notifyScreenReady();\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.entityData.value = cloneDeep(res);\r\n this.changeDetectorRef.detectChanges();\r\n this.refreshFactorItemsGrid();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n refreshFactorItemsGrid() {\r\n if (this.dataGridFactorItems) {\r\n this.dataGridFactorItems.instance.refresh();\r\n this.factorGridErrorMsg = \"\";\r\n }\r\n }\r\n\r\n onFactorItemsGridRowInserting(e) {\r\n this.factorGridErrorMsg = \"\";\r\n if (!IsUndefinedOrNull(e.data)) {\r\n if (IsUndefinedOrNull(e.data.Temperature) || IsUndefinedOrNull(e.data.Value)) {\r\n\r\n this.factorGridErrorMsg = \"Please enter all values for new record.\";\r\n e.cancel = true;\r\n return;\r\n }\r\n else {\r\n let checkIsNumeric = /^[0-9]*$/;\r\n if (!checkIsNumeric.test(e.data.Temperature)) {\r\n this.factorGridErrorMsg = \"Please enter numeric value only for Temperature.\";\r\n e.cancel = true;\r\n return;\r\n }\r\n this.factorGridErrorMsg = \"\";\r\n }\r\n }\r\n else {\r\n this.factorGridErrorMsg = \"Please enter all values for new record.\";\r\n e.cancel = true;\r\n return;\r\n }\r\n }\r\n private reset() {\r\n this.entityData.restore();\r\n this.isNewQuantityUnit = false;\r\n this.newQuantityUnit = \"\"; \r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityNameNotification);\r\n this.entityData = new Entity();\r\n this.entityData.value = cloneDeep(this.newEntityData);\r\n this.entityData.created = true;\r\n this.collapseColor = 'yellow';\r\n this.changeDetectorRef.detectChanges();\r\n this.factorGridErrorMsg = \"\";\r\n this.isAddForm = 1;\r\n }\r\n\r\n onContentReadyFactorItems(e: any) {\r\n this.dataGridFactorItems.noDataText = this.dataGridFactorItems.instance.totalCount() ? '' : \"No Factor Items Found\";\r\n this.factorGridErrorMsg = \"\";\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n \r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{quantityunit}}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Quantity Unit is required\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Factor Code cannot be less than 1\r\n \r\n \r\n Factor Code cannot be more than 255\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Add minimum one Factor Item!\r\n \r\n
\r\n
1\">\r\n \r\n {{factorGridErrorMsg}}\r\n \r\n
\r\n
\r\n
Factor Items
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\nexport class Factor {\r\n Id: number;\r\n Code: string;\r\n Value: number;\r\n QuantityUnit: number;\r\n Temperature: number;\r\n Items: any;\r\n\r\n}\r\n\r\n@Injectable()\r\nexport abstract class FactorInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: Factor[]) => void;\r\n getList: (lookup: any) => Observable;\r\n getNewEntity: () => Observable;\r\n getQuantityUnitList: () => Observable;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Entity, Enum } from '@app/app.model';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { Factor, FactorInterface } from './factor.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FactorService implements FactorInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n notifyRetrieved(data: Factor[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(e.endpoint.products.factor,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.products.factor + \"/\" + param.Id + \"/\" + param.Code, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getEntity(param: any): Observable {\r\n return this._http.get(e.endpoint.products.factor + \"/\" + param.Id + \"/\" + param.Code, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getList(lookup: any): Observable {\r\n return this._http.get(e.endpoint.products.factor, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewEntity(): Observable {\r\n return this._http.get(e.endpoint.products.factor + '/newfactor', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getQuantityUnitList(): Observable {\r\n return this._http.get(e.endpoint.products.quantityUnit, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { PriceGroup, PriceGroupInterface } from './price-group.model';\r\nimport { PriceGroupService } from './price-group.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { IsUndefinedOrNull, dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n\r\n@Component({\r\n selector: 'facnm-price-group',\r\n templateUrl: './price-group.component.html',\r\n styleUrls: ['./price-group.component.scss'],\r\n providers: [\r\n {\r\n provide: PriceGroupInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new PriceGroupService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\n\r\nexport class PriceGroupComponent implements OnInit {\r\n\r\n private unsubscribe$ = new Subject();\r\n entityName = 'Price Groups'\r\n entityNameNotification = 'Price Group';\r\n gridDataSource: any;\r\n entityData: Entity;\r\n collapseColor = 'green';\r\n isAddForm = 0;\r\n newEntityData: PriceGroup;\r\n productList: any;\r\n moneySign: any;\r\n priceGroupGridErrorMsg = '';\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n private dataGridPriceGroupItems: DxDataGridComponent;\r\n @ViewChild('dataGridPriceGroupItems', { static: false }) set dataGridSPContent(content: DxDataGridComponent) {\r\n if (content) {\r\n this.dataGridPriceGroupItems = content;\r\n }\r\n }\r\n\r\n constructor(\r\n private pricegroup$: PriceGroupInterface,\r\n private app$: AppService,\r\n private errors$: ErrorsService,\r\n private actions$: ActionsService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.actions();\r\n forkJoin({\r\n getSystemPreferences: this.pricegroup$.getSystemPreferences(), \r\n pricegroupList: this.pricegroup$.getList(0),\r\n newEntity: this.pricegroup$.getNewEntity(),\r\n productList: this.pricegroup$.getProductList(),\r\n }).subscribe(\r\n res => {\r\n this.pricegroup$.notifyRetrieved(res['pricegroupList']);\r\n this.newEntityData = res['newEntity'];\r\n this.productList =res['productList'];\r\n this.moneySign = res['getSystemPreferences'].CurrencyString;\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n actions() {\r\n this.pricegroup$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.gridDataSource = new ArrayStore({\r\n data: data,\r\n key: ['Id']\r\n });\r\n }\r\n });\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getList() {\r\n this.pricegroup$.getList(0).subscribe(listWithCreated => {\r\n this.pricegroup$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n \r\n refreshSpecialPriceGrid() {\r\n if (this.dataGridPriceGroupItems) {\r\n this.dataGridPriceGroupItems.instance.refresh();\r\n }\r\n }\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid || (this.entityData.value.Products.length < 1)) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n if (IsUndefinedOrNull(this.entityData.value.Id) || this.entityData.value.Id <= 0) {\r\n this.entityData.value.Id = -1;\r\n }\r\n this.pricegroup$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.getList();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n private deleteConfirm() {\r\n let param = { Id: this.entityData.value.Id};\r\n this.pricegroup$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onContentReady(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Price Groups Found\";\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData) {\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.app$.notifyScreenBusy();\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n this.pricegroup$.getEntity(key).subscribe((res: any) => {\r\n this.app$.notifyScreenReady();\r\n if (!res.Products)\r\n res.Products = [];\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.entityData.value = cloneDeep(res);\r\n this.refreshPriceGroupItemsGrid();\r\n }, (errorGetList) => {\r\n this.cancel();\r\n this.errors$.handleServerErrors(errorGetList)\r\n });\r\n }\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n refreshPriceGroupItemsGrid() {\r\n if (this.dataGridPriceGroupItems) {\r\n this.dataGridPriceGroupItems.instance.refresh();\r\n this.priceGroupGridErrorMsg = \"\";\r\n }\r\n }\r\n\r\n onPriceGroupItemsGridRowInserting(e) {\r\n this.priceGroupGridErrorMsg = \"\";\r\n if (!IsUndefinedOrNull(e.data)) {\r\n if (IsUndefinedOrNull(e.data.ProductId)) {\r\n\r\n this.priceGroupGridErrorMsg = \"Please select product.\";\r\n e.cancel = true;\r\n return;\r\n }\r\n }\r\n else {\r\n this.priceGroupGridErrorMsg = \"Please enter all values for new record.\";\r\n e.cancel = true;\r\n return;\r\n }\r\n }\r\n\r\n onPriceGroupItemsGridRowInserted(e:any) {\r\n this.pricegroup$.getProductDetails(e.data.ProductId).subscribe((data:any) => {\r\n this.entityData.value.Products.forEach((p: any) => {\r\n\r\n if (p.ProductId == data.Id) {\r\n p.QuantityUnit = (IsUndefinedOrNull(data.QuantityUnit) ? '' : data.QuantityUnit);\r\n p.PricePer = ((IsUndefinedOrNull(data.PricePer) || (data.PricePer == 1)) ? '' : data.PricePer);\r\n } \r\n });\r\n this.refreshPriceGroupItemsGrid();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n };\r\n\r\n private reset() {\r\n this.entityData.restore();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n private addNewEntity() {\r\n this.priceGroupGridErrorMsg = \"\";\r\n this.app$.setScreenTitle('New ' + this.entityNameNotification);\r\n this.entityData = new Entity();\r\n this.entityData.value = cloneDeep(this.newEntityData);\r\n this.entityData.created = true;\r\n this.collapseColor = 'yellow';\r\n this.isAddForm = 1;\r\n }\r\n\r\n onContentReadyPriceGroupItems(e: any) {\r\n this.dataGridPriceGroupItems.noDataText = this.dataGridPriceGroupItems.instance.totalCount() ? '' : \"No Data\";\r\n this.priceGroupGridErrorMsg = \"\";\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n \r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Add minimum one Product!\r\n \r\n
\r\n
\r\n \r\n {{priceGroupGridErrorMsg}}\r\n \r\n
\r\n
\r\n
Price Group Products
\r\n \r\n \r\n \r\n
\r\n > {{qunatity.data.MinimumQty}} {{qunatity.data.QuantityUnit}}\r\n
\r\n \r\n
\r\n {{price.data.Price}} {{moneySign}} / {{price.data.PricePer}} {{price.data.QuantityUnit}}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\nexport class PriceGroup {\r\n Id: number;\r\n Name : string;\r\n NumberOfProducts: number;\r\n ProductId: number;\r\n PricePer: number;\r\n QuantityUnit: string;\r\n MinimumQty:number;\r\n Price:number;\r\n FromDate: any;\r\n ToDate:any;\r\n Products:any;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class PriceGroupInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: PriceGroup[]) => void;\r\n getList: (lookup: any) => Observable;\r\n getNewEntity: () => Observable;\r\n getProductList: () => Observable;\r\n getProductDetails: (data: any) => Observable;\r\n getSystemPreferences: () => Observable;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Entity, Enum } from '@app/app.model';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { PriceGroup, PriceGroupInterface } from './price-group.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PriceGroupService implements PriceGroupInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n notifyRetrieved(data: PriceGroup[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(e.endpoint.products.specialPriceGroup+ \"/products\",\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.products.specialPriceGroup + \"/products\" + \"/\" + param.Id, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getProductList(): Observable {\r\n return this._http.get(e.endpoint.products.product + \"/dropdown/1\", {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getProductDetails(productid): Observable {\r\n return this._http.get(e.endpoint.products.product + \"/\" + productid, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n}\r\n getEntity(param: any): Observable {\r\n return this._http.get(e.endpoint.products.specialPriceGroup + \"/products\" + \"/\" + param.Id, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getList(lookup: any): Observable {\r\n return this._http.get(e.endpoint.products.specialPriceGroup + \"/products\", {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewEntity(): Observable {\r\n return this._http.get(e.endpoint.products.specialPriceGroup + \"/products\" + \"/newpricegroup\", {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getSystemPreferences(): Observable {\r\n return this._http.get(e.endpoint.fleet.configuration+\"/systempreferences\", {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n","import { ChangeDetectorRef,Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NgForm } from '@angular/forms';\r\nimport { DxDataGridComponent, DxDropDownBoxComponent } from 'devextreme-angular';\r\nimport ArrayStore from \"devextreme/data/array_store\";\r\nimport { ProductsGridComponent } from '@products/products-grid/products-grid.component';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { ProductService } from '@products/products.service';\r\nimport { Product } from '@products/products.model';\r\n\r\nimport { ProductBlendsInterface } from './product-blends.model';\r\nimport { ProductBlendsService } from './product-blends.service';\r\nimport { Entity } from '@app/app.model';\r\nimport { ProductBlend } from '../product-blends/product-blends.model';\r\nimport { AppService } from '@app/app.service';\r\n\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport uniq from 'lodash/uniq';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-product-blends',\r\n templateUrl: './product-blends.component.html',\r\n styleUrls: ['./product-blends.component.scss'],\r\n providers: [\r\n {\r\n provide: ProductBlendsInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new ProductBlendsService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n\r\n})\r\nexport class ProductBlendsComponent implements OnInit, OnDestroy {\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n entityName = 'Product Blend';\r\n\r\n productBlend: Entity;\r\n productBlendsStore: ArrayStore;\r\n productsInBlendStore: ArrayStore;\r\n\r\n productList: Product[];\r\n\r\n @ViewChild(\"productBlendForm\") productBlendForm: NgForm;\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n\r\n selectedProducts: number[];\r\n @ViewChild('products') private productsGrid: ProductsGridComponent;\r\n selectedProductsInBlend: any[];\r\n @ViewChild('productsInBlend') private productsInBlendGrid: DxDataGridComponent;\r\n @ViewChild('dropdownBlendProduct') private productBlendDropDown: DxDropDownBoxComponent;\r\n\r\n selectedBlendProduct: number;\r\n\r\n\r\n constructor(private productBlends$: ProductBlendsInterface, private product$: ProductService, private actions$: ActionsService, private errors$: ErrorsService, private app$: AppService, private changeDetectorRef: ChangeDetectorRef) {\r\n\r\n\r\n productBlends$.ListRetrieved.subscribe(data => {\r\n\r\n if (data) {\r\n\r\n this.productBlendsStore = new ArrayStore({\r\n data: data,\r\n key: ['BlendId']\r\n });\r\n\r\n if (data.length == 0) {\r\n this.dataGrid.noDataText = 'No Product Blends';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n });\r\n\r\n\r\n product$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.productList = data;\r\n }\r\n });\r\n actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create());\r\n actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.save());\r\n actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n\r\n if (errors) {\r\n\r\n let entityForm = document.getElementById('entity-form');\r\n\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n forkJoin(\r\n\r\n this.product$.getList()\r\n\r\n ).subscribe(\r\n multipleData => {\r\n\r\n this.product$.notifyRetrieved(multipleData[0]);\r\n\r\n this.productBlends$.getList().subscribe(productBlendsData => {\r\n this.productBlends$.notifyRetrieved(productBlendsData); this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList))\r\n },\r\n\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n\r\n onSelectionChanged($clikedRow) {\r\n\r\n if (!this.productBlend)\r\n try {\r\n let keySaved = JSON.parse(localStorage.getItem('product-blends.dataGrid')).selectedRowKeys[0];\r\n\r\n if (keySaved) {\r\n this.selectProductBlend(keySaved);\r\n }\r\n }\r\n catch{ }\r\n\r\n else {\r\n\r\n this.refreshProductsInBlendGrid();\r\n }\r\n }\r\n\r\n\r\n onRowClick($clikedRow) {\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n if (!this.productBlend)\r\n this.productBlend = new Entity();\r\n\r\n if (JSON.stringify(this.productBlend.key) === JSON.stringify($clikedRow.key)) {\r\n this.deselectProductBlend();\r\n }\r\n else {\r\n this.selectProductBlend($clikedRow.key);\r\n }\r\n }\r\n\r\n onProductIdChange($event) {\r\n\r\n this.productBlendDropDown.instance.close();\r\n }\r\n\r\n\r\n getSelectedProductName(product) {\r\n if (product)\r\n return product.ProductNumber + ' - ' + product.ProductName;\r\n }\r\n\r\n addProducts() {\r\n\r\n this.productBlend.value.BlendProductsId = uniq(this.productBlend.value.BlendProductsId.concat(this.selectedProducts));\r\n this.selectedProducts = [];\r\n\r\n this.refreshProductsInBlendGrid();\r\n }\r\n\r\n removeProducts() {\r\n\r\n this.productBlend.value.BlendProductsId = this.productBlend.value.BlendProductsId.filter(id => !this.selectedProductsInBlend.map(s => s.Id).includes(id));\r\n\r\n this.refreshProductsInBlendGrid();\r\n\r\n }\r\n\r\n\r\n isInvalid(field) { return this.errors$.isInvalid(field); }\r\n\r\n getError(field) { return this.errors$.getError(field); }\r\n\r\n\r\n private refreshProductsInBlendGrid() {\r\n\r\n this.productsInBlendStore = new ArrayStore({\r\n data: this.productList.filter(p => this.productBlend.value.BlendProductsId.includes(p.Id))\r\n });\r\n\r\n if (this.productsInBlendGrid) {\r\n if (this.productBlend.value.BlendProductsId.length == 0)\r\n this.productsInBlendGrid.noDataText = 'No Products in Blend';\r\n else this.productsInBlendGrid.noDataText = '';\r\n }\r\n\r\n }\r\n\r\n\r\n private addNewEntity() {\r\n\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n\r\n this.productBlend = new Entity();\r\n this.productBlend.value.BlendProductsId = [];\r\n this.productBlend.created = true;\r\n this.changeDetectorRef.detectChanges();\r\n\r\n this.refreshProductsInBlendGrid();\r\n }\r\n\r\n\r\n private reset() {\r\n\r\n this.productBlend.restore();\r\n\r\n if (this.productBlend.created)\r\n this.productBlend.value.BlendProductsId = [];\r\n\r\n this.refreshProductsInBlendGrid();\r\n }\r\n\r\n\r\n private create() {\r\n\r\n this.handleFormSubmit();\r\n\r\n this.productBlends$.create(this.productBlend).subscribe(\r\n\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.actions$.notifyCreated();\r\n\r\n this.deselectProductBlend();\r\n\r\n this.productBlends$.getList().subscribe(listWithCreated => {\r\n this.productBlends$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n private save() {\r\n\r\n\r\n this.handleFormSubmit();\r\n\r\n this.productBlends$.save(this.productBlend).subscribe(\r\n\r\n (okSave) => {\r\n\r\n this.actions$.notifySaved();\r\n\r\n this.deselectProductBlend();\r\n\r\n this.productBlends$.getList().subscribe(listWithSaved => {\r\n\r\n this.productBlends$.notifyRetrieved(listWithSaved);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n\r\n );\r\n }\r\n\r\n\r\n private deleteConfirm() {\r\n\r\n this.productBlends$.delete(this.productBlend.key).subscribe(\r\n\r\n (okDelete) => {\r\n\r\n this.actions$.notifyDeleted();\r\n\r\n this.deselectProductBlend();\r\n\r\n this.productBlends$.getList().subscribe(listWithSaved => {\r\n\r\n this.productBlends$.notifyRetrieved(listWithSaved);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n private cancel() {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n this.deselectProductBlend();\r\n }\r\n\r\n\r\n private selectProductBlend(key: any) {\r\n\r\n this.actions$.notifyEntityBusy();\r\n\r\n this.productBlend = new Entity();\r\n this.productBlend.key = key;\r\n\r\n this.productBlendsStore.byKey(key)\r\n .then(pt => {\r\n\r\n this.productBlend.value = cloneDeep(pt);\r\n\r\n this.refreshProductsInBlendGrid()\r\n this.changeDetectorRef.detectChanges()\r\n \r\n this.app$.notifyScreenReady()\r\n });\r\n }\r\n\r\n\r\n private deselectProductBlend() {\r\n\r\n this.dataGrid.instance.deselectRows(this.productBlend.key);\r\n this.productBlend.key = undefined;\r\n }\r\n\r\n\r\n private handleFormSubmit() {\r\n this.productBlendForm.form.markAsPristine();\r\n this.productBlendForm.form.markAsUntouched();\r\n this.productBlendForm.form.updateValueAndValidity();\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n onInitialized(e) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onResize(e): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n}\r\n","
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n {{getError('BlendName')}}\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n 0\"\r\n (click)=\"addProducts()\"\r\n class=\"img-button pt-5 mt-5 arrow-move active\"\r\n src=\"assets/Content/Images/Icons/arrow_left_active.svg\">\r\n 0\"\r\n (click)=\"addProducts()\"\r\n class=\"img-button pt-5 mt-5 arrow-move active\"\r\n src=\"assets/Content/Images/Icons/arrow_left_active.svg\">\r\n\r\n \r\n 0\"\r\n (click)=\"removeProducts()\"\r\n class=\"img-button pt-5 mt-5 arrow-move active\"\r\n src=\"assets/Content/Images/Icons/arrow_right_active.svg\">\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity } from \"@app/app.model\";\r\n\r\n\r\nexport class ProductBlend {\r\n \r\n BlendId: number;\r\n BlendName: string; \r\n \r\n ProductId: number; \r\n BlendProductsId: number[];\r\n}\r\n\r\n\r\n\r\n@Injectable()\r\nexport abstract class ProductBlendsInterface implements EntityInterface {\r\n\r\n create: (data: Entity) => Observable;\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n delete: (data: any) => Observable;\r\n\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n\r\n ListRetrieved: Observable;\r\n\r\n notifyRetrieved: (data: ProductBlend[]) => void;\r\n\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { ProductBlendsInterface, ProductBlend } from './product-blends.model';\r\nimport { Entity } from '@app/app.model';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductBlendsService implements ProductBlendsInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.post(\r\n e.endpoint.products.blends,\r\n data.value,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n save(data: Entity): Observable {\r\n\r\n return this._http.put(\r\n e.endpoint.products.blends,\r\n data.value,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n delete(data: any): Observable {\r\n\r\n return this._http.request('delete',\r\n e.endpoint.products.blends,\r\n {\r\n body: data,\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n getList(): Observable {\r\n\r\n return this._http.get(e.endpoint.products.blends, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n notifyRetrieved(data: ProductBlend[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n \r\n getEntity: (key: any) => Observable;\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport {ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ProductGroup, ProductGroupInterface } from './product-group.model';\r\nimport { ProductGroupService } from './product-group.service';\r\nimport { IsUndefinedOrNull, dxDataGridHeightAdjustment } from '@app/common_helper';\r\nimport { NgxSmartModalService } from 'ngx-smart-modal';\r\n\r\n@Component({\r\n selector: 'facnm-product-group',\r\n templateUrl: './product-group.component.html',\r\n styleUrls: ['./product-group.component.scss'],\r\n providers: [\r\n {\r\n provide: ProductGroupInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new ProductGroupService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class ProductGroupComponent implements OnInit {\r\n constructor(\r\n private productGroup$: ProductGroupInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private ngxSmartModalService: NgxSmartModalService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n ) { }\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n private unsubscribe$ = new Subject();\r\n gridData: ArrayStore;\r\n isAddForm = 0;\r\n entityName = 'Product Group';\r\n entityNameAdd = 'New Product Group';\r\n entityData: Entity;\r\n productList: any;\r\n newEntityData: ProductGroup;\r\n newEntity: any;\r\n PCollapse = false;\r\n VCollapse = false;\r\n collapseColor = 'green';\r\n RelatedProducts = [];\r\n selectedProductGroupID = 0;\r\n\r\n ngOnInit(): void {\r\n this.actions();\r\n this.getList();\r\n this.app$.setScreenTitle(this.entityName);\r\n }\r\n\r\n actions() {\r\n this.productGroup$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.gridData = new ArrayStore({\r\n data: data,\r\n key: [\"Id\"]\r\n });\r\n }\r\n });\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getList() {\r\n this.productGroup$.getList().subscribe(listWithCreated => {\r\n this.productGroup$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n this.productGroup$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.getEntity(this.entityData.value.Id);\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n saveRelatedProducts() {\r\n this.app$.notifyScreenBusy();\r\n this.ngxSmartModalService.close('modal');\r\n this.productGroup$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.actions$.notifySaved();\r\n this.app$.notifyScreenReady();\r\n this.selectEntity({ Id: this.entityData.value.Id });\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n getEntity(id) {\r\n this.productGroup$.getEntity(id).subscribe((res: any) => {\r\n this.entityData = new Entity();\r\n this.entityData.key = id;\r\n this.entityData.value = cloneDeep(res);\r\n if (this.entityData.value.RelatedProducts.length > 0) {\r\n this.RelatedProducts = this.entityData.value.RelatedProducts;\r\n this.ngxSmartModalService.open('modal');\r\n this.app$.notifyScreenReady();\r\n } else {\r\n this.app$.notifyScreenReady();\r\n this.getList();\r\n this.refreshGrid();\r\n this.deSelectEntity();\r\n\r\n }\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n private deleteConfirm() {\r\n this.productGroup$.delete(this.entityData.value.Id).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.productGroup$.getEntity(0).subscribe((res: any) => {\r\n this.app$.notifyScreenReady();\r\n this.entityData = new Entity();\r\n this.entityData.value = cloneDeep(res);\r\n this.entityData.created = true;\r\n this.isAddForm = 1;\r\n this.collapseColor = 'yellow';\r\n this.changeDetectorRef.detectChanges();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n onContentReadyGroup(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Product Groups Found\";\r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.app$.notifyScreenBusy();\r\n this.productGroup$.getEntity(key.Id).subscribe((res: any) => {\r\n this.app$.notifyScreenReady();\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.entityData.value = cloneDeep(res);\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n this.changeDetectorRef.detectChanges();\r\n if (this.entityData.value.RelatedProducts.length > 0) {\r\n this.RelatedProducts = this.entityData.value.RelatedProducts;\r\n this.ngxSmartModalService.open('modal');\r\n }\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n }\r\n\r\n private reset() {\r\n this.entityData.restore();\r\n if (IsUndefinedOrNull(this.entityData.value.AssignedProducts)) {\r\n this.entityData.value.AssignedProducts = [];\r\n }\r\n if (IsUndefinedOrNull(this.entityData.value.AssignedDataAreas)) {\r\n this.entityData.value.AssignedDataAreas = [];\r\n }\r\n if (IsUndefinedOrNull(this.entityData.value.UnassignedProducts)) {\r\n this.entityData.value.UnassignedProducts = [];\r\n }\r\n if (IsUndefinedOrNull(this.entityData.value.UnassignedDataAreas)) {\r\n this.entityData.value.UnassignedDataAreas = [];\r\n }\r\n this.entityData.restore();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName + 's');\r\n if (!this.entityData) {\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n\r\n\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Product Group Name is required\r\n \r\n \r\n Product Group Name cannot be longer than 25 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Products\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Data Areas\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
Related Products
\r\n
\r\n\r\n
\r\n \r\n
\r\n The below related products will be added to the Product Group.\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Related Products
Product NumberProduct Name
\r\n {{RelatedProduct.ProductNumber}}\r\n \r\n {{RelatedProduct.ShortProductName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\nexport class ProductGroup {\r\n Id: number;\r\n Number: string;\r\n Name: string;\r\n ChangeDate: Date;\r\n RelatedProducts: any;\r\n AssignedDataAreas: any;\r\n UnassignedDataAreas: any;\r\n AssignedProducts: any;\r\n UnassignedProducts: any;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class ProductGroupInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: ProductGroup[]) => void;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Entity, Enum } from '@app/app.model';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { ProductGroup, ProductGroupInterface } from './product-group.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductGroupService implements ProductGroupInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n notifyRetrieved(data: ProductGroup[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.products.productGroup, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getEntity(param: any): Observable {\r\n return this._http.get(e.endpoint.products.productGroup + '/' + param, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.products.productGroup,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(id: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.products.productGroup + '/' + id, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { AppService } from '@app/app.service';\r\nimport { IsUndefinedOrNull } from '@app/common_helper';\r\nimport { ProductService } from '@products/product/product.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { NgxSmartModalService } from 'ngx-smart-modal';\r\nimport { forkJoin } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'facnm-product-popup',\r\n templateUrl: './product-popup.component.html',\r\n styleUrls: ['./product-popup.component.scss']\r\n})\r\nexport class ProductPopupComponent implements OnInit {\r\n\r\n\r\n @Output() popupCancel: EventEmitter = new EventEmitter();\r\n @Output() popupOk: EventEmitter = new EventEmitter();\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n constructor(\r\n private product$: ProductService,\r\n private errors$: ErrorsService,\r\n private ngxSmartModalService: NgxSmartModalService,\r\n private app$: AppService,\r\n ) { }\r\n\r\n filterOptions = {\r\n ProductNumber: null, ProductName: null, ProductGroup: null, QuantityUnit: null, ProductTypeId: null,\r\n GridPagerOptions: { PageIndex: 0, PageSize: 20, TotalPages: null }\r\n };\r\n PageSize = 20;\r\n TotalCount = null;\r\n customDataSource: any;\r\n productType: any;\r\n productCategories: any;\r\n\r\n ngAfterViewInit() {\r\n this.ngxSmartModalService.open('modal');\r\n this.app$.notifyScreenBusy();\r\n }\r\n ngOnInit(): void {\r\n this.getCustomDataSource();\r\n forkJoin({\r\n categoryList: this.product$.getProductCategoryList(),\r\n productTypeDropdown: this.product$.getProductTypeDropdown(),\r\n }).subscribe(\r\n res => {\r\n this.productType = res['categoryList'];\r\n this.productCategories = res['productTypeDropdown'];\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n\r\n }\r\n\r\n getCustomDataSource() {\r\n this.customDataSource = new CustomStore({\r\n key: ['Id'],\r\n load: (loadOptions) => {\r\n if (loadOptions != undefined) {\r\n this.filterOptions.ProductNumber = null;\r\n this.filterOptions.ProductName = null;\r\n this.filterOptions.ProductGroup = null;\r\n this.filterOptions.QuantityUnit = null;\r\n this.filterOptions.ProductTypeId = null;\r\n if (loadOptions.filter != undefined) { // accessing grid filter values \r\n if (loadOptions.filter.length) {\r\n if (!Array.isArray(loadOptions.filter[0])) {\r\n let filter = loadOptions.filter;\r\n loadOptions.filter = [];\r\n loadOptions.filter.push(filter);\r\n }\r\n }\r\n for (var i = 0; i < loadOptions.filter.length; i++) {\r\n if (loadOptions.filter[i].length == 3) {\r\n if (loadOptions.filter[i][0] == \"ProductNumber\") this.filterOptions.ProductNumber = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"ShortProductName\") this.filterOptions.ProductName = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"ProductCategoryId\") this.filterOptions.ProductGroup = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"QuantityUnit\") this.filterOptions.QuantityUnit = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"ProductTypeId\") this.filterOptions.ProductTypeId = loadOptions.filter[i][2];\r\n }\r\n }\r\n }\r\n this.filterOptions.GridPagerOptions.PageSize = (IsUndefinedOrNull(loadOptions.take) == true) ? this.PageSize : loadOptions.take;\r\n this.filterOptions.GridPagerOptions.PageIndex = ((IsUndefinedOrNull(loadOptions.take) && IsUndefinedOrNull(loadOptions.skip)) == true) ? 0 : (loadOptions.skip / loadOptions.take);\r\n }\r\n return this.product$.getList(this.filterOptions)\r\n .toPromise()\r\n .then((response: any) => {\r\n return {\r\n data: response.ProductListVM,\r\n totalCount: response.TotalCount,\r\n };\r\n })\r\n .catch((errorNetwork) => this.errors$.handleServerErrors(errorNetwork));\r\n }\r\n });\r\n }\r\n\r\n onContentReady(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Products Found\";\r\n }\r\n\r\n onPopupCancel() {\r\n this.ngxSmartModalService.close('modal');\r\n this.popupCancel.emit();\r\n }\r\n onPopupOk() {\r\n this.ngxSmartModalService.close('modal');\r\n this.popupOk.emit(this.dataGrid.instance.getSelectedRowsData());\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
Product
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import {ChangeDetectorRef, Component, OnInit, ViewChild, ElementRef, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NgForm } from '@angular/forms';\r\n\r\nimport { forkJoin, Subject } from 'rxjs';\r\n\r\nimport { DxDataGridComponent } from 'devextreme-angular/ui/data-grid';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\n\r\nimport { Enum, Entity } from '@app/app.model';\r\n\r\nimport { ProductTransformation, ProductTransformationInterface } from './product-transformation.model';\r\nimport { ProductTransformationService } from './product-transformation.service';\r\nimport { ProductService } from '@products/products.service';\r\nimport { ProductsGridComponent } from '@products/products-grid/products-grid.component';\r\n\r\nimport { AppService } from '@app/app.service';\r\n\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-product-transformation',\r\n templateUrl: './product-transformation.component.html',\r\n styleUrls: ['./product-transformation.component.scss'],\r\n providers: [\r\n {\r\n provide: ProductTransformationInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new ProductTransformationService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class ProductTransformationComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n entityName = 'Product Transformation';\r\n\r\n productTransformation: Entity;\r\n productTransformationStore: ArrayStore;\r\n\r\n @ViewChild(\"productTransformationForm\") productTransformationForm: NgForm;\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n productTransformationTypeList: Enum[];\r\n\r\n @ViewChild('productsFrom') private productsFrom: ProductsGridComponent;\r\n @ViewChild('productsTo') private productsTo: ProductsGridComponent;\r\n\r\n\r\n constructor(private productTransformation$: ProductTransformationInterface, private actions$: ActionsService, private errors$: ErrorsService, private product$: ProductService, private app$: AppService, private changeDetectorRef: ChangeDetectorRef) {\r\n\r\n productTransformation$.ListRetrieved.subscribe(data => {\r\n\r\n if (data) {\r\n\r\n this.productTransformationStore = new ArrayStore({\r\n data: data,\r\n key: ['Flag', 'Type', 'ProductFromId', 'ProductToId']\r\n });\r\n\r\n if (data.length == 0) {\r\n this.dataGrid.noDataText = 'No Product Transformation';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n });\r\n\r\n actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create());\r\n actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.save());\r\n actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n\r\n if (errors) {\r\n\r\n let entityForm = document.getElementById('entity-form');\r\n\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n forkJoin(\r\n\r\n this.productTransformation$.getProductTransformationTypeList(),\r\n this.product$.getList()\r\n\r\n ).subscribe(\r\n multipleData => {\r\n\r\n this.productTransformationTypeList = multipleData[0];\r\n\r\n this.product$.notifyRetrieved(multipleData[1]);\r\n\r\n this.productTransformation$.getList().subscribe(productTransformationData => {\r\n this.productTransformation$.notifyRetrieved(productTransformationData);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList))\r\n },\r\n\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n\r\n onSelectionChanged($clikedRow) {\r\n\r\n if (!this.productTransformation)\r\n try {\r\n let keySaved = JSON.parse(localStorage.getItem('product-transformation.dataGrid')).selectedRowKeys[0];\r\n\r\n if (keySaved) {\r\n this.selectProductTransformation(keySaved);\r\n }\r\n }\r\n catch{ }\r\n\r\n else {\r\n\r\n this.refreshProductsGrids();\r\n }\r\n }\r\n\r\n onRowClick($clikedRow) {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n if (!this.productTransformation)\r\n this.productTransformation = new Entity();\r\n\r\n if (JSON.stringify(this.productTransformation.key) === JSON.stringify($clikedRow.key)) {\r\n this.deselectProductTransformation();\r\n }\r\n else {\r\n this.selectProductTransformation($clikedRow.key);\r\n }\r\n }\r\n\r\n allowOnlyNumbers(evt) {\r\n\r\n return this.app$.allowOnlyNumbers(evt);\r\n }\r\n\r\n private refreshProductsGrids() {\r\n\r\n if (this.productsFrom && this.productsTo) {\r\n this.productsFrom.refreshGrid();\r\n this.productsTo.refreshGrid();\r\n }\r\n }\r\n\r\n\r\n isInvalid(field) { return this.errors$.isInvalid(field); }\r\n\r\n getError(field) { return this.errors$.getError(field); }\r\n\r\n\r\n private addNewEntity() {\r\n\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n\r\n this.productTransformation = new Entity();\r\n this.productTransformation.value.Flag = 0;\r\n this.productTransformation.created = true;\r\n this.changeDetectorRef.detectChanges();\r\n\r\n this.refreshProductsGrids();\r\n }\r\n\r\n\r\n private reset() {\r\n\r\n this.productTransformation.restore();\r\n\r\n if (this.productTransformation.created) {\r\n this.productTransformation.value.Flag = 0;\r\n this.productsFrom.clearSelection();\r\n this.productsTo.clearSelection();\r\n }\r\n\r\n this.refreshProductsGrids();\r\n }\r\n\r\n\r\n private create() {\r\n\r\n this.handleFormSubmit();\r\n\r\n this.productTransformation$.create(this.productTransformation).subscribe(\r\n\r\n (okCreate) => {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n this.actions$.notifyCreated();\r\n\r\n this.deselectProductTransformation();\r\n\r\n this.productTransformation$.getList().subscribe(listWithCreated => {\r\n this.productTransformation$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n private save() {\r\n\r\n this.handleFormSubmit();\r\n\r\n this.productTransformation$.save(this.productTransformation).subscribe(\r\n\r\n (okSave) => {\r\n\r\n this.actions$.notifySaved();\r\n\r\n this.deselectProductTransformation();\r\n\r\n this.productTransformation$.getList().subscribe(listWithCreated => {\r\n this.productTransformation$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n\r\n },\r\n\r\n (errorSave) => {\r\n this.errors$.handleServerErrors(errorSave);\r\n }\r\n );\r\n }\r\n\r\n\r\n private deleteConfirm() {\r\n\r\n\r\n this.productTransformation$.delete(this.productTransformation.key).subscribe(\r\n\r\n (okDelete) => {\r\n\r\n this.actions$.notifyDeleted();\r\n\r\n this.deselectProductTransformation();\r\n\r\n\r\n this.productTransformation$.getList().subscribe(listWithCreated => {\r\n this.productTransformation$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n\r\n },\r\n\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n\r\n private cancel() {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n this.deselectProductTransformation();\r\n }\r\n\r\n\r\n private selectProductTransformation(key: any) {\r\n\r\n this.actions$.notifyEntityBusy();\r\n\r\n this.productTransformation = new Entity();\r\n this.productTransformation.key = key;\r\n\r\n this.productTransformationStore.byKey(key)\r\n .then(pt => {\r\n\r\n this.productTransformation.value = cloneDeep(pt);\r\n this.changeDetectorRef.detectChanges()\r\n this.app$.notifyScreenReady()\r\n });\r\n }\r\n\r\n\r\n private deselectProductTransformation() {\r\n\r\n this.dataGrid.instance.deselectRows(this.productTransformation.key);\r\n this.productTransformation.key = undefined;\r\n }\r\n\r\n\r\n private handleFormSubmit() {\r\n this.productTransformationForm.form.markAsPristine();\r\n this.productTransformationForm.form.markAsUntouched();\r\n this.productTransformationForm.form.updateValueAndValidity();\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n\r\n onInitialized(e) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onResize(e): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n {{t.name}}\r\n \r\n \r\n\r\n\r\n
\r\n\r\n
\r\n \r\n {{getError('Type')}}\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n {{getError('Surcharge')}}\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n {{getError('Flag')}}\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Enum, Entity } from \"@app/app.model\";\r\n\r\n\r\nexport class ProductTransformation {\r\n\r\n Flag: number;\r\n Type: number;\r\n\r\n ProductFromId: number;\r\n ProductToId: number;\r\n\r\n Surcharge: number;\r\n}\r\n\r\n\r\n\r\n@Injectable()\r\nexport abstract class ProductTransformationInterface implements EntityInterface {\r\n\r\n\r\n create: (data: Entity) => Observable;\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n delete: (data: any) => Observable;\r\n\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n\r\n ListRetrieved: Observable;\r\n\r\n notifyRetrieved: (data: ProductTransformation[]) => void;\r\n\r\n\r\n getProductTransformationTypeList: () => Observable;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\nimport { Enum, Entity } from '@app/app.model';\r\nimport { ProductTransformationInterface, ProductTransformation } from './product-transformation.model';\r\n\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductTransformationService implements ProductTransformationInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n create(data: Entity): Observable {\r\n\r\n return this._http.post(\r\n e.endpoint.products.transformation,\r\n data.value,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n save(data: Entity): Observable {\r\n\r\n return this._http.put(\r\n e.endpoint.products.transformation,\r\n [data.value, data.original],\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n delete(data: any): Observable {\r\n\r\n return this._http.request('delete',\r\n e.endpoint.products.transformation,\r\n {\r\n body: data,\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n getList(): Observable {\r\n\r\n return this._http.get(e.endpoint.products.transformation, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n notifyRetrieved(data: ProductTransformation[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n getEntity: (key: any) => Observable;\r\n\r\n getProductTransformationTypeList(): Observable {\r\n\r\n return this._http.get(e.endpoint.products.transformationTypes, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { Product, ProductInterface } from './product.model';\r\nimport { ProductService } from './product.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { CompanyService } from '@settings/company/company.service';\r\nimport { NgxSmartModalService } from 'ngx-smart-modal';\r\nimport { displayZeroValueText, dxDataGridHeightAdjustment, dxSelectOptions, makePDIDropDownOptions, refreshElement } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-product',\r\n templateUrl: './product.component.html',\r\n styleUrls: ['./product.component.scss'],\r\n providers: [\r\n {\r\n provide: ProductInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new ProductService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class ProductComponent implements OnInit {\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n @ViewChild('categoryForm') categoryForm: NgForm;\r\n private unsubscribe$ = new Subject();\r\n private Active = 1;\r\n modalError: any;\r\n animation: any;\r\n shadingColor: any;\r\n saveTypeProgress: boolean;\r\n saveCategoryProgress: boolean;\r\n productData: ArrayStore;\r\n product: Entity;\r\n customDataSource: any;\r\n entityName = 'Product';\r\n error = '';\r\n GICollapse = false;\r\n SICollapse = false;\r\n PACollapse = false;\r\n GroupsCollapse = false;\r\n RPCollapse = false;\r\n productCategoryList = [];\r\n filterOptions = {\r\n ProductNumber: null, ProductName: null, ProductGroup: null,\r\n GridPagerOptions: { PageIndex: 0, PageSize: 20, TotalPages: null }\r\n };\r\n PageSize = 20;\r\n TotalCount = null;\r\n isAddForm = 0;\r\n collapseColor = 'green';\r\n nonPrintCompanies = [];\r\n priceChangeableDropdown = [];\r\n salesTaxDropdown = [];\r\n quantityUnitDropdown = [];\r\n productTypeDropdown = [];\r\n dangerousGoodsDropdown = [];\r\n productDropdown = [];\r\n isNewUnit = false;\r\n newUnit: string;\r\n newProduct: Product;\r\n selectedProductCategoryId: any;\r\n currentProductCategory: any;\r\n productCategorySubmitted = false;\r\n categoryList = [];\r\n productCategoryShapes = [];\r\n productCategoryDeleteConfirm = false;\r\n productCategoryDeleteConfirmMsg = 'This Product Category is used by some products. Are you sure, you want to delete it?';\r\n deleteProCateItem: any;\r\n deleteProCateItemIndex: any;\r\n showProductTypeModal = false;\r\n showProductCategoryModal = false;\r\n productType = { Id: \"\", Name: \"\" }\r\n loadingProductType = false;\r\n loadingProductCategory = false;\r\n dxSelectOptions = new dxSelectOptions();\r\n \r\n constructor(\r\n private company$: CompanyService,\r\n private product$: ProductInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private changeDetectorRef: ChangeDetectorRef, \r\n public ngxSmartModalService: NgxSmartModalService\r\n ) {\r\n\r\n product$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.productData = new ArrayStore({\r\n data: data,\r\n key: ['Id']\r\n });\r\n\r\n if (data.length == 0) {\r\n this.dataGrid.noDataText = 'No Product Found';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n });\r\n\r\n actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.getCustomDataSource();\r\n forkJoin({\r\n nonPrintCompanies: this.company$.getNonPrintCompanyList(1),\r\n categoryList: this.product$.getProductCategoryList(),\r\n priceChangeableDropdown: this.product$.getPriceChangeableDropdown(),\r\n salesTaxDropdown: this.product$.getSalesTaxDropdown(),\r\n quantityUnitDropdown: this.product$.getQuantityUnitDropdown(),\r\n productTypeDropdown: this.product$.getProductTypeDropdown(),\r\n dangerousGoodsDropdown: this.product$.getDangerousGoodsDropdown(),\r\n productDropdown: this.product$.getProductDropdown(),\r\n newProduct: this.product$.getNewProduct(),\r\n }).subscribe(\r\n res => {\r\n this.productCategoryList = res['categoryList'];\r\n this.nonPrintCompanies = res['nonPrintCompanies'];\r\n this.priceChangeableDropdown = res['priceChangeableDropdown'];\r\n this.salesTaxDropdown = res['salesTaxDropdown'];\r\n this.quantityUnitDropdown = res['quantityUnitDropdown'];\r\n this.productTypeDropdown = res['productTypeDropdown'];\r\n this.dangerousGoodsDropdown = res['dangerousGoodsDropdown'];\r\n this.productDropdown = res['productDropdown'];\r\n this.newProduct = res['newProduct'];\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n getCustomDataSource() {\r\n this.customDataSource = new CustomStore({\r\n key: ['Id'],\r\n load: (loadOptions) => {\r\n if (loadOptions != undefined) {\r\n this.filterOptions.ProductNumber = null;\r\n this.filterOptions.ProductName = null;\r\n this.filterOptions.ProductGroup = null;\r\n if (loadOptions.filter != undefined) { // accessing grid filter values \r\n if (loadOptions.filter.length) {\r\n if (!Array.isArray(loadOptions.filter[0])) {\r\n let filter = loadOptions.filter;\r\n loadOptions.filter = [];\r\n loadOptions.filter.push(filter);\r\n }\r\n }\r\n for (var i = 0; i < loadOptions.filter.length; i++) {\r\n if (loadOptions.filter[i].length == 3) {\r\n if (loadOptions.filter[i][0] == \"ProductNumber\") this.filterOptions.ProductNumber = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"ShortProductName\") this.filterOptions.ProductName = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"ProductCategoryId\") this.filterOptions.ProductGroup = loadOptions.filter[i][2];\r\n }\r\n }\r\n }\r\n this.filterOptions.GridPagerOptions.PageSize = (IsUndefinedOrNull(loadOptions.take) == true) ? this.PageSize : loadOptions.take;\r\n this.filterOptions.GridPagerOptions.PageIndex = ((IsUndefinedOrNull(loadOptions.take) && IsUndefinedOrNull(loadOptions.skip)) == true) ? 0 : (loadOptions.skip / loadOptions.take);\r\n }\r\n return this.product$.getList(this.filterOptions)\r\n .toPromise()\r\n .then((response: any) => {\r\n this.app$.notifyScreenReady();\r\n this.product$.notifyRetrieved(response.ProductListVM);\r\n return {\r\n data: response.ProductListVM,\r\n totalCount: response.TotalCount,\r\n };\r\n })\r\n .catch((errorNetwork) => this.errors$.handleServerErrors(errorNetwork));\r\n }\r\n });\r\n }\r\n\r\n isInvalid(field: any) { return this.errors$.isInvalid(field); }\r\n\r\n getError(field: any) { return this.errors$.getError(field); }\r\n\r\n addNewUnit() {\r\n this.isNewUnit = true;\r\n this.newUnit = \"\";\r\n }\r\n\r\n cancelNewUnit() {\r\n this.isNewUnit = false;\r\n this.newUnit = \"\";\r\n\r\n }\r\n\r\n saveNewUnit = function () {\r\n if (this.newUnit != \"\") {\r\n var flag = false;\r\n for (var i = 0; i < this.quantityUnitDropdown.length; i++) {\r\n if (this.quantityUnitDropdown[i].toLowerCase() == this.newUnit.toLowerCase()) {\r\n flag = true;\r\n this.newUnit = this.quantityUnitDropdown[i];\r\n }\r\n }\r\n if (!flag) this.quantityUnitDropdown.push(this.newUnit);\r\n this.product.value.QuantityUnit = this.newUnit;\r\n this.isNewUnit = false;\r\n }\r\n }\r\n\r\n setProductWeightDefaultValue() {\r\n if (this.product.value.IsEmptyProduct == true && this.product.value.ProductWeight != 0)\r\n this.product.value.ProductWeight = 0;\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.product = new Entity();\r\n this.product.value = { ...this.newProduct };\r\n this.product.created = true;\r\n this.product.value.ValidDate = new Date();\r\n this.isAddForm = 1;\r\n this.collapseColor = 'yellow';\r\n displayZeroValueText(this.nonPrintCompanies,'CompanyId','Id','Name');\r\n displayZeroValueText(this.priceChangeableDropdown,'PriceChange','Id','PriceChangeText');\r\n displayZeroValueText(this.salesTaxDropdown,'SalesTaxId','Id','SalesTaxText');\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private deleteConfirm() {\r\n this.product$.delete(this.product.value.Id).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.refreshGrid();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n this.product$.create(this.product).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deselectProduct();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private deselectProduct() {\r\n this.dataGrid.instance.deselectRows(this.product.key);\r\n this.product.key = undefined;\r\n }\r\n\r\n private reset() {\r\n this.product.restore();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deselectProduct();\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n onCellPrepared(e:any) {\r\n if (e.rowType === \"data\" && e.column.dataField === \"ShortProductName\") {\r\n e.cellElement.innerHTML = ''+e.data.ShortProductName+'';\r\n }\r\n }\r\n\r\n onSelectionChanged($clikedRow: any) {\r\n if (!this.product)\r\n try {\r\n let keySaved = JSON.parse(localStorage.getItem('product.dataGrid')).selectedRowKeys[0];\r\n if (keySaved) {\r\n this.selectproduct(keySaved);\r\n }\r\n }\r\n catch { }\r\n }\r\n\r\n private selectproduct(key: any) {\r\n this.actions$.notifyEntityBusy();\r\n this.product = new Entity();\r\n this.product.key = key;\r\n this.productData.byKey(key)\r\n .then(pt => {\r\n this.product.value = cloneDeep(pt);\r\n if(this.product.value.CompanyId ==0 ){\r\n displayZeroValueText(this.nonPrintCompanies,'CompanyId','Id','Name');\r\n }\r\n if(this.product.value.PriceChange ==0 ){\r\n displayZeroValueText(this.priceChangeableDropdown,'PriceChange','Id','PriceChangeText');\r\n }\r\n if(this.product.value.SalesTaxId ==0 ){\r\n displayZeroValueText(this.salesTaxDropdown,'SalesTaxId','Id','SalesTaxText');\r\n }\r\n if(this.product.value.ProductTypeId == 0 ){\r\n displayZeroValueText(this.productTypeDropdown,'ProductTypeId','Id','Name');\r\n }\r\n if(this.product.value.DangerousGoodsGroupId == 0 ){\r\n displayZeroValueText(this.dangerousGoodsDropdown,'DangerousGoodsGroupId','Id','Info');\r\n }\r\n this.app$.notifyScreenReady();\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n this.changeDetectorRef.detectChanges();\r\n });\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.product)\r\n this.product = new Entity();\r\n if (JSON.stringify(this.product.key) === JSON.stringify($clikedRow.key)) {\r\n this.deselectProduct();\r\n }\r\n else {\r\n this.selectproduct($clikedRow.key);\r\n }\r\n }\r\n\r\n addProductType() {\r\n this.modalError = \"\";\r\n this.saveTypeProgress = true;\r\n this.product$.saveProductType(this.productType).subscribe(\r\n (okCreate) => {\r\n this.saveTypeProgress = false;\r\n this.actions$.notifyEntityCustomAction({ title: 'Success', message: 'Product Type created successfully' });\r\n this.closeProductType();\r\n this.product$.getProductTypeDropdown().subscribe((res) => {\r\n this.productTypeDropdown = res;\r\n refreshElement(this,'loadingProductType');\r\n }, (err) => {\r\n this.errors$.handleServerErrors(err);\r\n })\r\n },\r\n (errorCreate) => {\r\n this.saveTypeProgress = false;\r\n this.modalError = errorCreate.message;\r\n }\r\n );\r\n }\r\n\r\n closeProductType() {\r\n this.productType.Id = '';\r\n this.productType.Name = '';\r\n this.showProductTypeModal = false;\r\n this.saveTypeProgress = false;\r\n this.modalError = '';\r\n }\r\n\r\n selectProductCategory(index, category) {\r\n this.selectedProductCategoryId = index;\r\n this.currentProductCategory = category;\r\n if(this.currentProductCategory.Shape == 0){\r\n displayZeroValueText(this.productCategoryShapes,'Shape','id','name');\r\n }\r\n }\r\n\r\n saveProductCategory() {\r\n this.productCategorySubmitted = true;\r\n if (this.categoryForm.form.invalid) {\r\n return;\r\n }\r\n this.saveCategoryProgress = true;\r\n this.product$.saveProductCategory(this.categoryList).subscribe((okCreate) => {\r\n this.closeCategoryModal();\r\n this.actions$.notifyEntityCustomAction({ title: 'Success', message: 'Product category saved successfully' });\r\n this.getProductCategoryList();\r\n }, (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n })\r\n }\r\n\r\n getProductCategoryList() {\r\n this.product$.getProductCategoryList().subscribe((res) => {\r\n this.productCategoryList = res;\r\n refreshElement(this,'loadingProductCategory');\r\n }, (error) => {\r\n this.errors$.handleServerErrors(error);\r\n })\r\n }\r\n\r\n removeProductCategory(index) {\r\n this.categoryList.splice(index, 1);\r\n }\r\n\r\n productCategoryDeleteConfirmed() {\r\n this.productCategoryDeleteConfirm = false;\r\n if (this.deleteProCateItem) {\r\n this.deleteProductCategory(this.deleteProCateItem, this.deleteProCateItemIndex);\r\n }\r\n }\r\n\r\n productCategoryDeleteClosed() {\r\n this.productCategoryDeleteConfirm = false;\r\n this.deleteProCateItem = null;\r\n this.deleteProCateItemIndex = null;\r\n }\r\n\r\n deleteProductCategory(item, index) {\r\n this.product$.deleteProductCategory(item.Id).subscribe((ok) => {\r\n this.getProductCategoryList();\r\n this.removeProductCategory(index);\r\n }, (error) => {\r\n this.errors$.handleNetworkError(error);\r\n });\r\n }\r\n\r\n checkDeleteProductCategory(item, index) {\r\n if (item.Id < 0) {\r\n this.removeProductCategory(index);\r\n }\r\n else {\r\n this.product$.isProductCategoryDeletable(item.Id).subscribe(\r\n (okDelete) => {\r\n if (okDelete) {\r\n this.deleteProductCategory(item, index)\r\n } else {\r\n this.productCategoryDeleteConfirm = true;\r\n this.deleteProCateItem = item;\r\n this.deleteProCateItemIndex = index;\r\n }\r\n }, (error) => {\r\n this.errors$.handleNetworkError(error);\r\n })\r\n }\r\n }\r\n\r\n addNewProductCategory() {\r\n var newidcount = -1;\r\n for (var i = 0; i <= this.productCategoryList.length - 1; i++) {\r\n if (this.productCategoryList[i].Id <= 0) newidcount--;\r\n }\r\n this.categoryList.push({ Id: newidcount, Name: '', Shape: 0, SetupTime: 0, PumpTime: 0 });\r\n }\r\n\r\n closeCategoryModal() {\r\n this.productCategorySubmitted = false;\r\n this.showProductCategoryModal = false;\r\n this.saveCategoryProgress = false;\r\n this.ngxSmartModalService.close('CategoryModal');\r\n }\r\n\r\n openCategoryModal() {\r\n if (!this.productCategoryShapes.length) {\r\n this.product$.getProductCategoryShapes().subscribe(\r\n (res) => {\r\n this.productCategoryShapes = res;\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n })\r\n }\r\n this.productCategorySubmitted = false;\r\n this.saveCategoryProgress = false;\r\n this.categoryList = cloneDeep(this.productCategoryList);\r\n this.selectProductCategory(0, this.categoryList[0]);\r\n this.ngxSmartModalService.open('CategoryModal');\r\n }\r\n\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n isNumberOnly(event) {\r\n return (event.charCode != 8 && event.charCode == 0 || (event.charCode == 46) || (event.charCode >= 48 && event.charCode <= 57))\r\n }\r\n\r\n isNumberOnlyWithoutDecimal(event) {\r\n return !(event.charCode > 31 && (event.charCode < 48 || event.charCode > 57))\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n}\r\nfunction IsUndefinedOrNull(val) {\r\n return val === undefined || val === null;\r\n}\r\n\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n General Information\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Product number is required\r\n \r\n \r\n Product number cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Product name is required\r\n \r\n \r\n Product name cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Short name is required\r\n \r\n \r\n Short name cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{company.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Sale\r\n Information\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Price is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{pricechange.PriceChangeText}}\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{salestax.SalesTaxText}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Tax Id cannot be longer than 20 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Max discount is required\r\n \r\n \r\n Max discount cannot be less than 0\r\n \r\n \r\n Max discount cannot be more than 100\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Cash discount cannot be less than 0\r\n \r\n \r\n Cash discount cannot be more than 100\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{quantityunit}}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Quantity Unit is required\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n Quantity Decimal Places cannot be higher than 255\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Price per is required\r\n \r\n \r\n Price per must be greater than 0\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Physical Attributes\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Overall Weight is required\r\n \r\n \r\n Overall Weight cannot be less than 0\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Product Weight is required\r\n \r\n \r\n Product Weight cannot be less than 0\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Groups\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{productType.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{productCategory.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{dangerousGood.Info}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Related Products\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Amount factor cannot be less than 0\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Fixed Amount cannot be less than 0\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n Error! {{modalError}}\">\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
Product Categories
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
Categories\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
Category details
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Product Category Name is required.\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Shape\r\n \r\n \r\n {{shapes.name}}\r\n \r\n \r\n
\r\n
Setup Time (m)\r\n \r\n
\r\n
Pump Time (m)\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\nexport class Product {\r\n\r\n Id: number;\r\n Number: string;\r\n Name: string;\r\n ValidDate: Date;\r\n Barcode: string;\r\n iButtonId: string;\r\n Language: string;\r\n CanbusDriverId: string;\r\n Password: string;\r\n Deleted: boolean;\r\n CompanyId: number;\r\n PriceChange: number;\r\n SalesTaxId: number;\r\n PricePer: any;\r\n ProductPrice: number;\r\n MaxDiscount: number;\r\n ProductWeight: number;\r\n IsEmptyProduct: boolean;\r\n QuantityUnit:string;\r\n ProductTypeId: number;\r\n DangerousGoodsGroupId: number;\r\n ReturnedEmptyProductId: number;\r\n AdditionalProductId: number;\r\n FollowUpProductId: number;\r\n TransportProductId: number;\r\n\r\n}\r\n\r\n@Injectable()\r\nexport abstract class ProductInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: (data: any) => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: Product[]) => void;\r\n\r\n getProductCategoryList: () => Observable;\r\n getPriceChangeableDropdown: () => Observable;\r\n getSalesTaxDropdown: () => Observable;\r\n getQuantityUnitDropdown: () => Observable;\r\n getProductTypeDropdown: () => Observable;\r\n getDangerousGoodsDropdown: () => Observable;\r\n getProductDropdown: () => Observable;\r\n getNewProduct: () => Observable;\r\n saveProductType: (data: any) => Observable;\r\n getProductCategoryShapes: () => Observable;\r\n saveProductCategory: (data: any) => Observable;\r\n isProductCategoryDeletable: (data: any) => Observable;\r\n deleteProductCategory: (data: any) => Observable;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Entity, Enum } from '@app/app.model';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\nimport { Product, ProductInterface } from './product.model';\r\n\r\n\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductService implements ProductInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n notifyRetrieved(data: Product[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n save: (data: Entity) => Observable;\r\n getEntity(id: any): Observable {\r\n return this._http.get(e.endpoint.products.product + '/' + id, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.products.product,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getList(arg): Observable {\r\n return this._http.put(e.endpoint.products.product + '/filter/', arg, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(id: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.products.product + '/' + id, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getProductCategoryList() {\r\n return this._http.get(e.endpoint.products.productCategory, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getPriceChangeableDropdown(): Observable {\r\n return this._http.get(e.endpoint.products.priceChangeable, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getSalesTaxDropdown(): Observable {\r\n return this._http.get(e.endpoint.products.salesTax, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getQuantityUnitDropdown(): Observable {\r\n return this._http.get(e.endpoint.products.quantityUnit, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getProductTypeDropdown(): Observable {\r\n return this._http.get(e.endpoint.products.productType, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getDangerousGoodsDropdown(): Observable {\r\n return this._http.get(e.endpoint.products.dangerousGoods, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getProductDropdown(): Observable {\r\n return this._http.get(e.endpoint.products.productDropdown, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n saveProductType(data): Observable {\r\n return this._http.put(e.endpoint.products.productTypes, data, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewProduct(): Observable {\r\n return this._http.get(e.endpoint.products.newproduct, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getProductCategoryShapes(): Observable {\r\n return this._http.get(e.endpoint.products.productShapes, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n saveProductCategory(data): Observable {\r\n return this._http.put(e.endpoint.products.productCategory, data, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n isProductCategoryDeletable(id): Observable {\r\n return this._http.get(e.endpoint.products.productCategoryDeletable + '/' + id, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n deleteProductCategory(id: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.products.productCategory + '/' + id, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n}","import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\n\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { ProductService } from '@products/products.service';\r\nimport { Product } from '../products.model';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\n\r\n@Component({\r\n selector: 'facnm-products-grid',\r\n templateUrl: './products-grid.component.html',\r\n styleUrls: ['./products-grid.component.scss']\r\n})\r\nexport class ProductsGridComponent implements OnInit {\r\n\r\n productStore: ArrayStore;\r\n productList: Product[];\r\n currentProductId: number;\r\n\r\n @ViewChild('dataGridProducts', { static: true }) private dataGridProducts: DxDataGridComponent;\r\n\r\n @Input() selectionMode: string;\r\n\r\n @Input() ProductId: number;\r\n @Output() ProductIdChange = new EventEmitter();\r\n\r\n @Input() ProductsId: number[] = [];\r\n @Output() ProductsIdChange = new EventEmitter();\r\n\r\n selectionChangedRaised: boolean;\r\n\r\n constructor(private product$: ProductService) {\r\n\r\n this.product$.ListRetrieved.subscribe(data => {\r\n\r\n this.productList = data;\r\n this.productStore = new ArrayStore({\r\n data: this.productList,\r\n key: 'Id'\r\n });\r\n });\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n\r\n onProductsInitialized($event) {\r\n\r\n if (!this.selectionMode)\r\n this.selectionMode = 'single';\r\n }\r\n\r\n\r\n onProductsContentReady($event) {\r\n\r\n if (!this.currentProductId) {\r\n\r\n this.currentProductId = this.ProductId;\r\n setTimeout(() => {\r\n if (this.currentProductId)\r\n $event.component.selectRows(this.currentProductId, false);\r\n });\r\n if (this.currentProductId)\r\n $event.component.navigateToRow([this.currentProductId]);\r\n }\r\n }\r\n\r\n\r\n onProductsRowClick($event) {\r\n\r\n if (this.selectionMode == 'single') {\r\n\r\n this.ProductId = $event.key;\r\n this.ProductIdChange.emit(this.ProductId);\r\n }\r\n\r\n else if (!this.selectionChangedRaised) {\r\n\r\n var dataGrid = $event.component;\r\n var keys = dataGrid.getSelectedRowKeys();\r\n dataGrid.deselectRows(keys);\r\n }\r\n\r\n this.selectionChangedRaised = false;\r\n }\r\n\r\n\r\n onProductsSelectionChanged($event) {\r\n\r\n if (this.selectionMode == 'multiple') {\r\n\r\n this.ProductsIdChange.emit(this.ProductsId);\r\n }\r\n\r\n this.selectionChangedRaised = true;\r\n }\r\n\r\n\r\n refreshGrid() {\r\n\r\n this.currentProductId = undefined;\r\n\r\n this.productStore = new ArrayStore({\r\n data: this.productList,\r\n key: 'Id'\r\n });\r\n }\r\n\r\n clearSelection(): any {\r\n\r\n this.dataGridProducts.instance.clearSelection();\r\n }\r\n}\r\n","
\r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { DxDataGridModule, DxTooltipModule, DxToastModule, DxLoadPanelModule, DxPopupModule, DxDropDownBoxModule } from 'devextreme-angular';\r\n\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { ProductBlendsComponent } from './product-blends/product-blends.component';\r\nimport { ProductTransformationComponent } from './product-transformation/product-transformation.component';\r\nimport { ProductsGridComponent } from './products-grid/products-grid.component';\r\nimport { SharedModule } from '@app/_shared/shared.module';\r\nimport { ProductComponent } from './product/product.component';\r\n\r\nimport { NgxSmartModalModule,NgxSmartModalService } from 'ngx-smart-modal';\r\nimport { DataAreaComponent } from './data-area/data-area.component';\r\nimport { DeviceMappingComponent } from './device-mapping/device-mapping.component';\r\nimport { DeviceGroupComponent } from './device-group/device-group.component';\r\nimport { FactorComponent } from './factor/factor.component';\r\nimport { ProductGroupComponent } from './product-group/product-group.component';\r\nimport { PriceGroupComponent } from './price-group/price-group.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ProductsGridComponent,\r\n ProductTransformationComponent,\r\n ProductBlendsComponent,\r\n ProductComponent,\r\n DataAreaComponent,\r\n DeviceMappingComponent,\r\n DeviceGroupComponent,\r\n FactorComponent,\r\n ProductGroupComponent,\r\n FactorComponent,\r\n PriceGroupComponent\r\n ],\r\n providers: [ NgxSmartModalService ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule,\r\n DxDataGridModule,\r\n DxTooltipModule,\r\n DxLoadPanelModule,\r\n DxToastModule,\r\n DxPopupModule,\r\n DxDropDownBoxModule,\r\n NgxSmartModalModule.forRoot()\r\n ],\r\n exports: []\r\n})\r\nexport class ProductsModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\nimport { Product } from './products.model';\r\n\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ProductService {\r\n\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n\r\n getList(): Observable {\r\n\r\n return this._http.get(e.endpoint.products.product, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n } \r\n\r\n\r\n notifyRetrieved(data: Product[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { SafetyCheckInterface } from './safety-check.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { SafetyCheckService } from './safety-check.service';\r\nimport { AppService } from '@app/app.service';\r\nimport { CompanyService } from '@settings/company/company.service';\r\nimport { forkJoin } from 'rxjs';\r\nimport { SharedService } from '@app/_shared/shared.service';\r\nimport { ProductService } from '@products/product/product.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport { cloneDeep } from 'lodash';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { IsUndefinedOrNull, dxSelectOptions } from '@app/common_helper';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\n\r\n@Component({\r\n selector: 'facnm-safety-check',\r\n templateUrl: './safety-check.component.html',\r\n styleUrls: ['./safety-check.component.scss'],\r\n providers: [\r\n {\r\n provide: SafetyCheckInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new SafetyCheckService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\n\r\nexport class SafetyCheckComponent implements OnInit {\r\n entityName = \"Safety Checks\";\r\n mandatoryGlobalImg = \"Content/Images/Icons/mandatory-global-24-black.png\";\r\n notvisibleImg = \"Content/Images/Icons/notvisible-24-black.png\";\r\n optionalImg = \"Content/Images/Icons/optional-24-yellow.png\";\r\n mandatoryImg = \"Content/Images/Icons/mandatory-24-red.png\";\r\n inActiveOpacity = 0.4;\r\n safetyCheckCompanies: any;\r\n safetyCheckCompanyId: any;\r\n safetyCheckGroupId: any;\r\n safetyCheckTextGroups: any;\r\n safetyMandatoryState: any;\r\n safetyGlobalMandatoryState: any;\r\n customerTypes: any;\r\n customerTypeId: any;\r\n vehicleTypes: any;\r\n vehicleTypeId: any;\r\n dataAreas: any;\r\n dataAreaId: any;\r\n devices: any;\r\n vehicleId: any;\r\n productTypes: any;\r\n productTypeId: any;\r\n selectedSafetyCheckOthers: any;\r\n resetsafetyCheck: any;\r\n selectedSafetyCheckVehicleInspection: any;\r\n isSafetyCheckVehicleInspectionFormVisible: boolean;\r\n isSafetyCheckOthersFormVisible: boolean;\r\n isSafetyCheckCustomerFormVisible: boolean;\r\n isSafetyCheckLoginLogoutFormVisible: boolean;\r\n isSafetyCheckProductFormVisible: boolean;\r\n isAddNewTextVisible: boolean;\r\n isDeleteVisible: boolean;\r\n newDataOthers: any;\r\n newDataVehicle: any;\r\n newDataCustomer: any;\r\n newDataLogin: any;\r\n newDataLogout: any;\r\n newDataProduct: any;\r\n formTop: string;\r\n selectedSafetyCheckCustomer: any;\r\n selectedSafetyCheckProduct: any;\r\n selectedSafetyCheckLoginLogout: any;\r\n intialLoad = {};\r\n safetyChecksDevice: ArrayStore;\r\n safetyChecksCustomer: ArrayStore;\r\n safetyChecksLoginLogout: ArrayStore;\r\n safetyChecksProduct: ArrayStore;\r\n safetyChecksVehicle: ArrayStore;\r\n safetyChecksForOthers: ArrayStore;\r\n isFormVisible = false;\r\n selectedKeys = {};\r\n requiredErr = {};\r\n maxLengthErr = {};\r\n formSubmitted: boolean;\r\n showDeleteConfirm: boolean;\r\n animation: any;\r\n shadingColor: any;\r\n collapseColor = \"green\";\r\n saveDisabled: boolean;\r\n devicesColumn: any;\r\n dxSelectOptions = new dxSelectOptions();\r\n\r\n private gridSafetyCheckCustomer: DxDataGridComponent;\r\n @ViewChild('gridSafetyCheckCustomer', { static: false }) set grid1(content: DxDataGridComponent) {\r\n if (content) {\r\n this.gridSafetyCheckCustomer = content;\r\n }\r\n }\r\n private gridSafetyCheckLoginLogout: DxDataGridComponent;\r\n @ViewChild('gridSafetyCheckLoginLogout', { static: false }) set grid11(content: DxDataGridComponent) {\r\n if (content) {\r\n this.gridSafetyCheckLoginLogout = content;\r\n }\r\n }\r\n private gridSafetyCheckProduct: DxDataGridComponent;\r\n @ViewChild('gridSafetyCheckProduct', { static: false }) set grid2(content: DxDataGridComponent) {\r\n if (content) {\r\n this.gridSafetyCheckProduct = content;\r\n }\r\n }\r\n\r\n private gridSafetyCheckVehicleInspection: DxDataGridComponent;\r\n @ViewChild('gridSafetyCheckVehicleInspection', { static: false }) set grid3(content: DxDataGridComponent) {\r\n if (content) {\r\n this.gridSafetyCheckVehicleInspection = content;\r\n }\r\n }\r\n\r\n private gridSafetyCheckOthers: DxDataGridComponent;\r\n @ViewChild('gridSafetyCheckOthers', { static: false }) set grid4(content: DxDataGridComponent) {\r\n if (content) {\r\n this.gridSafetyCheckOthers = content;\r\n }\r\n }\r\n private gridSafetyCheckDevices: DxDataGridComponent;\r\n @ViewChild('gridSafetyCheckDevices', { static: false }) set grid5(content: DxDataGridComponent) {\r\n if (content) {\r\n this.gridSafetyCheckDevices = content;\r\n }\r\n }\r\n\r\n constructor(\r\n private safetyCheck$: SafetyCheckInterface,\r\n private errors$: ErrorsService,\r\n private company$: CompanyService,\r\n private app$: AppService,\r\n private shared$: SharedService,\r\n private products$: ProductService,\r\n private actions$: ActionsService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.animation = this.app$.getAnimationSettings();\r\n this.shadingColor = this.app$.getShadingColor();\r\n forkJoin({\r\n companyList: this.company$.getCompanyDropDown(0),\r\n safetyCheckTextGroups: this.safetyCheck$.getSafetyCheckTextGroups(),\r\n safetyGlobalMandatoryStates: this.safetyCheck$.getSafetyGlobalMandatoryStates(),\r\n safetyMandatoryStates: this.safetyCheck$.getSafetyMandatoryStates()\r\n }).subscribe(\r\n res => {\r\n this.app$.notifyScreenReady();\r\n this.safetyCheckCompanies = res['companyList'];\r\n this.safetyCheckTextGroups = res['safetyCheckTextGroups'];\r\n this.safetyGlobalMandatoryState = res['safetyGlobalMandatoryStates'];\r\n this.safetyMandatoryState = res['safetyMandatoryStates'];\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n\r\n this.devicesColumn = [\r\n {\r\n caption: 'Device Id - Name', dataField: 'Id', cssClass: 'DeviceId', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n var devicedetails = \"\";\r\n if (options.data.Id != 0) devicedetails = devicedetails + options.data.Id + \" - \";\r\n if (options.data.Name != null) devicedetails = devicedetails + options.data.Name;\r\n $('').text(devicedetails).append(\"
\").appendTo(container);\r\n },\r\n calculateCellValue: function (data) {\r\n return data.Id + \" - \" + data.Name;\r\n },\r\n calculateFilterExpression: function (filterValue, selectedFilterOperation) {\r\n return [this.calculateCellValue, selectedFilterOperation || 'contains', filterValue];\r\n }\r\n },\r\n {\r\n alignment: 'center', caption: 'License Plate', dataField: 'LicensePlate', cssClass: 'LicensePlate', dataType: 'string',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.LicensePlate)\r\n .appendTo(container);\r\n }\r\n }\r\n ];\r\n }\r\n\r\n resetFilterOptions() {\r\n this.cancelForm();\r\n this.isAddNewTextVisible = false;\r\n this.safetyCheckCompanyId = null;\r\n this.safetyCheckGroupId = null;\r\n this.vehicleTypeId = null;\r\n this.dataAreaId = null;\r\n this.vehicleId = null;\r\n this.devices = null;\r\n this.dataAreas = null;\r\n this.vehicleTypes = null; \r\n};\r\n\r\n\r\n companyChanged() {\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId\r\n }\r\n if (this.safetyCheckGroupId != null && (this.safetyCheckGroupId == 1 || this.safetyCheckGroupId == 11)) {\r\n this.vehicleId =null;\r\n this.vehicleTypeId = null;\r\n this.dataAreaId = null;\r\n this.safetyCheck$.getDevicesList(arg).subscribe(data=> {\r\n this.devices = cloneDeep(data)\r\n this.safetyChecksDevice = data;\r\n this.gridSafetyCheckDevices.instance.refresh();\r\n }), (errorGetList) => this.errors$.handleServerErrors(errorGetList);\r\n }\r\n this.cancelForm();\r\n this.getSafetyChecks();\r\n }\r\n\r\n vehicleTypeDataAreaChanged() {\r\n if (this.vehicleTypeId != null) {\r\n if (this.dataAreaId != null && this.dataAreaId != 0) {\r\n this.safetyChecksDevice = this.devices.filter(a => a.VehicleTypeId == this.vehicleTypeId && a.DataAreaId == this.dataAreaId);\r\n }\r\n else {\r\n this.safetyChecksDevice = this.devices.filter(a => a.VehicleTypeId == this.vehicleTypeId);\r\n }\r\n this.gridSafetyCheckDevices.instance.refresh();\r\n this.deSelectEntityDevice();\r\n }\r\n this.getSafetyChecks();\r\n }\r\n\r\n onRowClickDevice(clickedRow: any) {\r\n\r\n if (!this.selectedKeys[this.safetyCheckGroupId]) {\r\n this.selectedKeys[this.safetyCheckGroupId] = null;\r\n }\r\n if (JSON.stringify(this.selectedKeys[this.safetyCheckGroupId]) === JSON.stringify(clickedRow.key)) {\r\n this.deSelectEntityDevice();\r\n }\r\n else {\r\n this.selectEntityDevice(clickedRow.key)\r\n }\r\n }\r\n selectEntityDevice(key: any){\r\n this.vehicleId = key.Id;\r\n this.getSafetyChecks();\r\n }\r\n deSelectEntityDevice(){\r\n this.vehicleId =null;\r\n this.gridSafetyCheckDevices.instance.deselectAll();\r\n }\r\n\r\n onRowClick(clickedRow: any) {\r\n if (!this.selectedKeys[this.safetyCheckGroupId]) {\r\n this.selectedKeys[this.safetyCheckGroupId] = null;\r\n }\r\n if (JSON.stringify(this.selectedKeys[this.safetyCheckGroupId]) === JSON.stringify(clickedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity(clickedRow.key)\r\n }\r\n }\r\n\r\n\r\n deSelectEntity() {\r\n this.resetsafetyCheck = null;\r\n this.isFormVisible = false;\r\n this.isDeleteVisible = false;\r\n if(this.safetyCheckGroupId)\r\n {\r\n this.isAddNewTextVisible = true;\r\n }\r\n else\r\n {\r\n this.isAddNewTextVisible = false;\r\n }\r\n this.selectedKeys[this.safetyCheckGroupId] = null;\r\n this.clearValidation();\r\n\r\n switch (this.safetyCheckGroupId) {\r\n case 1:\r\n this.gridSafetyCheckLoginLogout.instance.deselectAll();\r\n this.selectedSafetyCheckLoginLogout = null;\r\n this.isSafetyCheckLoginLogoutFormVisible = false;\r\n break;\r\n\r\n case 11:\r\n this.gridSafetyCheckLoginLogout.instance.deselectAll();\r\n this.selectedSafetyCheckLoginLogout = null;\r\n this.isSafetyCheckLoginLogoutFormVisible = false;\r\n break;\r\n\r\n case 2:\r\n this.gridSafetyCheckCustomer.instance.deselectAll();\r\n this.selectedSafetyCheckCustomer = null;\r\n this.isSafetyCheckCustomerFormVisible = false;\r\n break;\r\n\r\n case 5:\r\n case 13:\r\n this.gridSafetyCheckProduct.instance.deselectAll();\r\n this.selectedSafetyCheckProduct = null;\r\n this.isSafetyCheckProductFormVisible = false;\r\n break;\r\n\r\n case 7:\r\n case 8:\r\n case 9:\r\n case 10:\r\n this.gridSafetyCheckOthers.instance.deselectAll();\r\n this.selectedSafetyCheckOthers = null;\r\n this.isSafetyCheckOthersFormVisible = false;\r\n break;\r\n\r\n case 12:\r\n this.gridSafetyCheckVehicleInspection.instance.deselectAll();\r\n this.selectedSafetyCheckVehicleInspection = null;\r\n this.isSafetyCheckVehicleInspectionFormVisible = false;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n selectEntity(key: any) {\r\n this.selectedKeys[this.safetyCheckGroupId] = key;\r\n this.isFormVisible = true;\r\n this.isDeleteVisible = true;\r\n this.isAddNewTextVisible = false;\r\n this.collapseColor = \"green\";\r\n this.clearValidation();\r\n\r\n switch (this.safetyCheckGroupId) {\r\n case 1:\r\n this.safetyChecksLoginLogout.byKey(key)\r\n .then(pt => {\r\n pt.VehicleTypeId = (IsUndefinedOrNull(this.vehicleTypeId) == true) ? null : this.vehicleTypeId;\r\n pt.DataAreaId = (IsUndefinedOrNull(this.dataAreaId) == true) ? null : this.dataAreaId;\r\n pt.VehicleId = (IsUndefinedOrNull(this.vehicleId) == true) ? null : this.vehicleId;\r\n this.selectedSafetyCheckLoginLogout = cloneDeep(pt);\r\n this.resetsafetyCheck = cloneDeep(pt);\r\n this.isSafetyCheckLoginLogoutFormVisible = true;\r\n });\r\n break;\r\n\r\n case 11:\r\n this.safetyChecksLoginLogout.byKey(key)\r\n .then(pt => {\r\n pt.VehicleTypeId = (IsUndefinedOrNull(this.vehicleTypeId) == true) ? null : this.vehicleTypeId;\r\n pt.DataAreaId = (IsUndefinedOrNull(this.dataAreaId) == true) ? null : this.dataAreaId;\r\n pt.VehicleId = (IsUndefinedOrNull(this.vehicleId) == true) ? null : this.vehicleId;\r\n this.selectedSafetyCheckLoginLogout = cloneDeep(pt);\r\n this.resetsafetyCheck = cloneDeep(pt);\r\n this.isSafetyCheckLoginLogoutFormVisible = true;\r\n });\r\n break;\r\n\r\n case 2:\r\n this.safetyChecksCustomer.byKey(key)\r\n .then(pt => {\r\n pt.CustomerTypeId = (IsUndefinedOrNull(this.customerTypeId) == true) ? null : this.customerTypeId;\r\n this.selectedSafetyCheckCustomer = cloneDeep(pt);\r\n this.resetsafetyCheck = cloneDeep(pt);\r\n this.isSafetyCheckCustomerFormVisible = true;\r\n });\r\n break;\r\n\r\n case 5:\r\n case 13:\r\n this.safetyChecksProduct.byKey(key)\r\n .then(pt => {\r\n pt.ProductTypeId = (IsUndefinedOrNull(this.productTypeId) == true) ? null : this.productTypeId;\r\n this.selectedSafetyCheckProduct = cloneDeep(pt);\r\n this.resetsafetyCheck = cloneDeep(pt);\r\n this.isSafetyCheckProductFormVisible = true;\r\n });\r\n break;\r\n\r\n case 7:\r\n case 8:\r\n case 9:\r\n case 10:\r\n this.safetyChecksForOthers.byKey(key)\r\n .then(pt => {\r\n this.selectedSafetyCheckOthers = cloneDeep(pt);\r\n this.resetsafetyCheck = cloneDeep(pt);\r\n this.isSafetyCheckOthersFormVisible = true;\r\n });\r\n break;\r\n\r\n case 12:\r\n this.safetyChecksVehicle.byKey(key)\r\n .then(pt => {\r\n pt.VehicleTypeId = (IsUndefinedOrNull(this.vehicleTypeId) == true) ? null : this.vehicleTypeId;\r\n this.selectedSafetyCheckVehicleInspection = cloneDeep(pt);\r\n this.resetsafetyCheck = cloneDeep(pt);\r\n this.isSafetyCheckVehicleInspectionFormVisible = true;\r\n });\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n setGridHeight(grid: any) {\r\n setTimeout(() => {\r\n grid.instance.option('height', 350);\r\n grid.instance.refresh();\r\n }, 1000);\r\n }\r\n\r\n onContentReadyCustomer() {\r\n if (this.gridSafetyCheckCustomer) {\r\n if (this.intialLoad[this.safetyCheckGroupId])\r\n this.setGridHeight(this.gridSafetyCheckCustomer);\r\n this.intialLoad[this.safetyCheckGroupId] = false;\r\n this.gridSafetyCheckCustomer.noDataText = this.gridSafetyCheckCustomer.instance.totalCount() ? \"\" : \"No Customer Safety Check Texts Found\";\r\n }\r\n }\r\n onContentReadyDevice() {\r\n if (this.gridSafetyCheckDevices) {\r\n this.intialLoad[this.safetyCheckGroupId] = false;\r\n this.gridSafetyCheckDevices.noDataText = this.gridSafetyCheckDevices.instance.totalCount() ? \"\" : \"No Devices Found\";\r\n }\r\n }\r\n\r\n onContentReadyLoginLogout() {\r\n if (this.gridSafetyCheckLoginLogout) {\r\n if (this.intialLoad[this.safetyCheckGroupId])\r\n this.setGridHeight(this.gridSafetyCheckLoginLogout);\r\n this.intialLoad[this.safetyCheckGroupId] = false;\r\n let dataText = this.safetyCheckGroupId == 1 ? \"No Login Safety Check Texts Found\" : \"No Logout Safety Check Texts Found\";\r\n this.gridSafetyCheckLoginLogout.noDataText = this.gridSafetyCheckLoginLogout.instance.totalCount() ? \"\" : dataText;\r\n if (this.selectedKeys[this.safetyCheckGroupId] && this.gridSafetyCheckLoginLogout.instance.getSelectedRowKeys().length == 0) {\r\n this.gridSafetyCheckLoginLogout.instance.selectRows(this.selectedKeys[this.safetyCheckGroupId], true);\r\n }\r\n }\r\n }\r\n\r\n onContentReadyProduct() {\r\n if (this.gridSafetyCheckProduct) {\r\n if (this.intialLoad[this.safetyCheckGroupId])\r\n this.setGridHeight(this.gridSafetyCheckProduct);\r\n this.intialLoad[this.safetyCheckGroupId] = false;\r\n this.gridSafetyCheckProduct.noDataText = this.gridSafetyCheckProduct.instance.totalCount() ? \"\" : \"No Product Safety Check Texts Found\";\r\n if (this.selectedKeys[this.safetyCheckGroupId] && this.gridSafetyCheckProduct.instance.getSelectedRowKeys().length == 0) {\r\n this.gridSafetyCheckProduct.instance.selectRows(this.selectedKeys[this.safetyCheckGroupId], true);\r\n }\r\n }\r\n }\r\n\r\n onContentReadyVehicle() {\r\n if (this.gridSafetyCheckVehicleInspection) {\r\n if (this.intialLoad[this.safetyCheckGroupId])\r\n this.setGridHeight(this.gridSafetyCheckVehicleInspection);\r\n this.intialLoad[this.safetyCheckGroupId] = false;\r\n this.gridSafetyCheckVehicleInspection.noDataText = this.gridSafetyCheckVehicleInspection.instance.totalCount() ? \"\" : \"No Vehicle Inspection Safety Check Texts Found\";\r\n }\r\n }\r\n\r\n onContentReadyOthers() {\r\n if (this.gridSafetyCheckOthers) {\r\n if (this.intialLoad[this.safetyCheckGroupId])\r\n this.setGridHeight(this.gridSafetyCheckOthers);\r\n this.intialLoad[this.safetyCheckGroupId] = false;\r\n this.gridSafetyCheckOthers.noDataText = this.gridSafetyCheckOthers.instance.totalCount() ? \"\" : \"No Safety Check Texts Found for the Group\";\r\n if (this.selectedKeys[this.safetyCheckGroupId] && this.gridSafetyCheckOthers.instance.getSelectedRowKeys().length == 0) {\r\n this.gridSafetyCheckOthers.instance.selectRows(this.selectedKeys[this.safetyCheckGroupId], true);\r\n }\r\n }\r\n }\r\n\r\n cellPreparedCustomer(e: any) {\r\n if (\r\n (e.rowType === \"header\" && e.column.dataField == \"MandatoryForCustomerTypeImage\" && !this.customerTypeId) ||\r\n (e.rowType === \"data\" && e.column.dataField != \"MandatoryGlobalImage\" && (!this.customerTypeId || e.data.MandatoryForCustomerType == 0))\r\n ) {\r\n e.cellElement.style.opacity = this.inActiveOpacity;\r\n }\r\n }\r\n\r\n cellPreparedLoginLogout(e: any) {\r\n if (\r\n (e.rowType === \"header\" && e.column.dataField == \"MandatoryForVehicleTypeImage\" && !this.vehicleTypeId) ||\r\n (e.rowType === \"header\" && e.column.dataField == \"MandatoryForDataAreaImage\" && this.dataAreaId == null) ||\r\n (e.rowType === \"header\" && e.column.dataField == \"MandatoryForVehicleImage\" && !this.vehicleId) ||\r\n (e.rowType === \"data\" && e.column.dataField != \"MandatoryGlobalImage\" && e.data.MandatoryForFleet == 0 &&\r\n (!this.vehicleTypeId || e.data.MandatoryForVehicleType == 0) &&\r\n (!this.dataAreaId || e.data.MandatoryForDataArea ==0) &&\r\n (!this.vehicleId || e.data.MandatoryForVehicle == 0))\r\n ) {\r\n e.cellElement.style.opacity = this.inActiveOpacity;\r\n }\r\n }\r\n\r\n cellPreparedProduct(e: any) {\r\n if (\r\n (e.rowType === \"header\" && e.column.dataField == \"MandatoryForProductTypeImage\" && this.productTypeId == undefined) ||\r\n (e.rowType === \"data\" && e.column.dataField != \"MandatoryGlobalImage\" && (this.productTypeId == undefined || e.data.MandatoryForProductType == 0))\r\n ) {\r\n e.cellElement.style.opacity = this.inActiveOpacity;\r\n }\r\n }\r\n\r\n cellPreparedVehicle(e: any) {\r\n if (\r\n (e.rowType === \"header\" && e.column.dataField === \"MandatoryForVehicleTypeImage\" && this.vehicleTypeId === undefined) ||\r\n (e.rowType === \"data\" && e.column.dataField !== \"MandatoryGlobalImage\" && (this.vehicleTypeId === undefined || e.data.MandatoryForVehicleType == 0))\r\n ) {\r\n e.cellElement.style.opacity = this.inActiveOpacity;\r\n }\r\n }\r\n\r\n cellPreparedOthers(e: any) {\r\n if (e.rowType === \"data\" && e.column.dataField !== \"MandatoryGlobalImage\" && e.data.MandatoryForOthers == 0) {\r\n e.cellElement.style.opacity = this.inActiveOpacity;\r\n }\r\n }\r\n\r\n safetyCheckGroupChanged() {\r\n let groupId = this.safetyCheckGroupId;\r\n this.intialLoad[this.safetyCheckGroupId] = true;\r\n this.isAddNewTextVisible = true;\r\n this.isSafetyCheckLoginLogoutFormVisible = false;\r\n this.isSafetyCheckCustomerFormVisible = false;\r\n this.isSafetyCheckProductFormVisible = false;\r\n this.isSafetyCheckOthersFormVisible = false;\r\n this.isSafetyCheckVehicleInspectionFormVisible = false;\r\n this.isFormVisible = false;\r\n this.selectedSafetyCheckLoginLogout = null;\r\n this.selectedSafetyCheckCustomer = null;\r\n this.selectedSafetyCheckProduct = null;\r\n this.selectedSafetyCheckOthers = null;\r\n this.selectedSafetyCheckVehicleInspection = null;\r\n\r\n if (groupId == 1 || groupId == 11 || groupId == 12) {\r\n this.vehicleTypeId = null;\r\n this.dataAreaId = null;\r\n this.vehicleId = null;\r\n this.productTypeId = null;\r\n this.customerTypeId = null;\r\n if((groupId == 1 || groupId == 11) && this.gridSafetyCheckDevices){\r\n this.safetyChecksDevice = cloneDeep(this.devices);\r\n this.gridSafetyCheckDevices.instance.deselectAll();\r\n }\r\n if (!this.vehicleTypes) {\r\n this.shared$.getVehicleTypes(0).subscribe(res => {\r\n this.vehicleTypes = res;\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n if (!this.dataAreas) {\r\n this.safetyCheck$.getDataAreaList().subscribe(res => {\r\n this.dataAreas = res;\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n if (!this.devices && (groupId == 1 || groupId == 11)){\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId\r\n }\r\n this.safetyCheck$.getDevicesList(arg).subscribe(res => {\r\n this.devices = res;\r\n this.safetyChecksDevice = cloneDeep(res);\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n }\r\n else if (groupId == 2) {\r\n this.vehicleTypeId = null;\r\n this.dataAreaId = null;\r\n this.vehicleId = null;\r\n this.productTypeId = null;\r\n\r\n if (!this.customerTypes) {\r\n this.shared$.getCustomerTypeList().subscribe(res => {\r\n this.customerTypes = res.filter(a => a.Id != 1);\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n }\r\n else if (groupId == 5 || groupId == 13) {\r\n this.vehicleTypeId = null;\r\n this.dataAreaId = null;\r\n this.vehicleId = null;\r\n this.customerTypeId = null;\r\n if (!this.productTypes) {\r\n this.products$.getProductTypeDropdown().subscribe(res => {\r\n this.productTypes = res;\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n }\r\n else if (groupId == 7 || groupId == 8 || groupId == 9 || groupId == 10) {\r\n this.vehicleTypeId = null;\r\n this.dataAreaId = null;\r\n this.vehicleId = null;\r\n this.customerTypeId = null;\r\n this.productTypeId = null;\r\n }\r\n\r\n if (this.safetyChecksProduct && [5, 13].indexOf(this.safetyCheckGroupId) < 0) {\r\n this.safetyChecksProduct.clear();\r\n }\r\n\r\n if (this.safetyChecksForOthers && [7, 8, 9, 10].indexOf(this.safetyCheckGroupId) < 0) {\r\n this.safetyChecksForOthers.clear();\r\n }\r\n\r\n this.getSafetyChecks();\r\n }\r\n\r\n getSafetyChecks() {\r\n if (this.safetyCheckGroupId == 1) {\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId,\r\n vehicleTypeId: this.vehicleTypeId,\r\n dataAreaId: this.dataAreaId,\r\n vehicleId: this.vehicleId\r\n }\r\n this.gridSafetyCheckLoginLogout?.instance.beginCustomLoading('');\r\n this.safetyCheck$.getSafetyCheckForLogin(arg).subscribe(res => {\r\n this.updateLoginLogoutGrid(res);\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n if (this.safetyCheckGroupId == 11) {\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId,\r\n vehicleTypeId: this.vehicleTypeId,\r\n dataAreaId: this.dataAreaId,\r\n vehicleId: this.vehicleId\r\n }\r\n this.gridSafetyCheckLoginLogout?.instance.beginCustomLoading('');\r\n this.safetyCheck$.getSafetyCheckForLogout(arg).subscribe(res => {\r\n this.updateLoginLogoutGrid(res);\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n else if (this.safetyCheckGroupId == 12) {\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId,\r\n vehicleTypeId: this.vehicleTypeId,\r\n }\r\n this.gridSafetyCheckVehicleInspection?.instance.beginCustomLoading('');\r\n this.safetyCheck$.getSafetyCheckForVehicleInspection(arg).subscribe(res => {\r\n this.safetyChecksVehicle = new ArrayStore({\r\n data: res,\r\n key: ['Id']\r\n });\r\n this.gridSafetyCheckVehicleInspection?.instance.endCustomLoading();\r\n this.gridSafetyCheckVehicleInspection.instance.repaint();\r\n if (this.selectedKeys[this.safetyCheckGroupId]) {\r\n this.selectEntity(this.selectedKeys[this.safetyCheckGroupId]);\r\n this.gridSafetyCheckVehicleInspection.instance.selectRows(this.selectedKeys[this.safetyCheckGroupId], true);\r\n }\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n else if (this.safetyCheckGroupId == 2) {\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId,\r\n customerTypeId: this.customerTypeId,\r\n }\r\n this.gridSafetyCheckCustomer?.instance.beginCustomLoading('');\r\n this.safetyCheck$.getSafetyCheckForCustomer(arg).subscribe(res => {\r\n this.safetyChecksCustomer = new ArrayStore({\r\n data: res,\r\n key: ['Id']\r\n });\r\n this.gridSafetyCheckCustomer?.instance.endCustomLoading();\r\n this.gridSafetyCheckCustomer.instance.repaint();\r\n if (this.selectedKeys[this.safetyCheckGroupId]) {\r\n this.selectEntity(this.selectedKeys[this.safetyCheckGroupId]);\r\n this.gridSafetyCheckCustomer.instance.selectRows(this.selectedKeys[this.safetyCheckGroupId], true);\r\n }\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n else if (this.safetyCheckGroupId == 5) {\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId,\r\n productTypeId: this.productTypeId,\r\n }\r\n this.safetyCheck$.getSafetyCheckForProduct(arg).subscribe(res => {\r\n this.updateProductGrid(res);\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n\r\n }\r\n else if (this.safetyCheckGroupId == 13) {\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId,\r\n productTypeId: this.productTypeId,\r\n }\r\n this.safetyCheck$.getSafetyCheckForLoadingProduct(arg).subscribe(res => {\r\n this.updateProductGrid(res);\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n else if (this.safetyCheckGroupId == 7 || this.safetyCheckGroupId == 8\r\n || this.safetyCheckGroupId == 9 || this.safetyCheckGroupId == 10) {\r\n\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId,\r\n groupTypeId: this.safetyCheckGroupId,\r\n }\r\n this.safetyCheck$.getSafetyCheckForOthers(arg).subscribe(res => {\r\n this.safetyChecksForOthers = new ArrayStore({\r\n data: res,\r\n key: ['Id']\r\n });\r\n if (this.selectedKeys[this.safetyCheckGroupId]) {\r\n this.selectEntity(this.selectedKeys[this.safetyCheckGroupId]);\r\n this.gridSafetyCheckOthers.instance.selectRows(this.selectedKeys[this.safetyCheckGroupId], true);\r\n }\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n }\r\n updateLoginLogoutGrid(res: any) {\r\n this.safetyChecksLoginLogout = new ArrayStore({\r\n data: res,\r\n key: ['Id']\r\n });\r\n this.gridSafetyCheckLoginLogout?.instance.endCustomLoading();\r\n setTimeout(() => {\r\n this.gridSafetyCheckLoginLogout.instance.repaint();\r\n if (this.selectedKeys[this.safetyCheckGroupId]) {\r\n this.selectEntity(this.selectedKeys[this.safetyCheckGroupId]);\r\n this.gridSafetyCheckLoginLogout.instance.selectRows(this.selectedKeys[this.safetyCheckGroupId], true);\r\n }\r\n }, 1000);\r\n }\r\n updateProductGrid(res: any) {\r\n this.safetyChecksProduct = new ArrayStore({\r\n data: res,\r\n key: ['Id']\r\n });\r\n this.gridSafetyCheckProduct?.instance.repaint();\r\n if (this.selectedKeys[this.safetyCheckGroupId]) {\r\n this.selectEntity(this.selectedKeys[this.safetyCheckGroupId]);\r\n this.gridSafetyCheckProduct.instance.selectRows(this.selectedKeys[this.safetyCheckGroupId], true);\r\n }\r\n }\r\n\r\n addNewSafetyCheck() {\r\n if (this.safetyCheckGroupId == 1) {\r\n if (this.newDataLogin) {\r\n this.selectedSafetyCheckLoginLogout = cloneDeep(this.newDataLogin);\r\n this.resetsafetyCheck = cloneDeep(this.newDataLogin);\r\n this.isSafetyCheckLoginLogoutFormVisible = true;\r\n } else {\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId,\r\n vehicleTypeId: this.vehicleTypeId,\r\n dataAreaId: this.dataAreaId,\r\n vehicleId: this.vehicleId\r\n }\r\n this.safetyCheck$.getNewSafetyCheckForLogin(arg).subscribe(res => {\r\n this.selectedSafetyCheckLoginLogout = res;\r\n this.resetsafetyCheck = cloneDeep(res);\r\n this.newDataLogin = cloneDeep(res);\r\n this.isSafetyCheckLoginLogoutFormVisible = true;\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n }\r\n if (this.safetyCheckGroupId == 11) {\r\n if (this.newDataLogout) {\r\n this.selectedSafetyCheckLoginLogout = cloneDeep(this.newDataLogout);\r\n this.resetsafetyCheck = cloneDeep(this.newDataLogout);\r\n this.isSafetyCheckLoginLogoutFormVisible = true;\r\n } else {\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId,\r\n vehicleTypeId: this.vehicleTypeId,\r\n dataAreaId: this.dataAreaId,\r\n vehicleId: this.vehicleId\r\n }\r\n this.safetyCheck$.getNewSafetyCheckForLogout(arg).subscribe(res => {\r\n this.selectedSafetyCheckLoginLogout = res;\r\n this.resetsafetyCheck = cloneDeep(res);\r\n this.newDataLogout = cloneDeep(res);\r\n this.isSafetyCheckLoginLogoutFormVisible = true;\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n }\r\n else if (this.safetyCheckGroupId == 12) {\r\n if (this.newDataVehicle) {\r\n this.selectedSafetyCheckVehicleInspection = cloneDeep(this.newDataVehicle);\r\n this.resetsafetyCheck = cloneDeep(this.newDataVehicle);\r\n this.isSafetyCheckVehicleInspectionFormVisible = true;\r\n } else {\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId,\r\n vehicleTypeId: this.vehicleTypeId,\r\n }\r\n this.safetyCheck$.getNewSafetyCheckForVehicleInspection(arg).subscribe(res => {\r\n this.selectedSafetyCheckVehicleInspection = res;\r\n this.resetsafetyCheck = cloneDeep(res);\r\n this.newDataVehicle = cloneDeep(res);\r\n this.isSafetyCheckVehicleInspectionFormVisible = true;\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n }\r\n else if (this.safetyCheckGroupId == 2) {\r\n if (this.newDataCustomer) {\r\n this.selectedSafetyCheckCustomer = cloneDeep(this.newDataCustomer);\r\n this.resetsafetyCheck = cloneDeep(this.newDataCustomer);\r\n this.isSafetyCheckCustomerFormVisible = true;\r\n } else {\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId,\r\n customerTypeId: this.customerTypeId,\r\n }\r\n this.safetyCheck$.getNewSafetyCheckForCustomer(arg).subscribe(res => {\r\n this.selectedSafetyCheckCustomer = res;\r\n this.resetsafetyCheck = cloneDeep(res);\r\n this.newDataCustomer = cloneDeep(res);\r\n this.isSafetyCheckCustomerFormVisible = true;\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n }\r\n else if (this.safetyCheckGroupId == 5 || this.safetyCheckGroupId == 13) {\r\n if (this.newDataProduct) {\r\n this.selectedSafetyCheckProduct = cloneDeep(this.newDataProduct);\r\n this.resetsafetyCheck = cloneDeep(this.newDataProduct);\r\n this.isSafetyCheckProductFormVisible = true;\r\n } else {\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId,\r\n productTypeId: this.productTypeId,\r\n }\r\n this.safetyCheck$.getNewSafetyCheckForProduct(arg).subscribe(res => {\r\n this.selectedSafetyCheckProduct = res;\r\n this.resetsafetyCheck = cloneDeep(res);\r\n this.newDataProduct = cloneDeep(res);\r\n this.isSafetyCheckProductFormVisible = true;\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n }\r\n else if (this.safetyCheckGroupId == 7 || this.safetyCheckGroupId == 8\r\n || this.safetyCheckGroupId == 9 || this.safetyCheckGroupId == 10) {\r\n if (this.newDataOthers) {\r\n this.selectedSafetyCheckOthers = cloneDeep(this.newDataOthers);\r\n this.resetsafetyCheck = cloneDeep(this.newDataOthers);\r\n this.isSafetyCheckOthersFormVisible = true;\r\n }\r\n else {\r\n let arg = {\r\n companyId: this.safetyCheckCompanyId,\r\n groupTypeId: this.safetyCheckGroupId,\r\n }\r\n this.safetyCheck$.getNewSafetyCheckForOthers(arg).subscribe(res => {\r\n this.selectedSafetyCheckOthers = res;\r\n this.resetsafetyCheck = cloneDeep(res);\r\n this.newDataOthers = cloneDeep(res);\r\n this.isSafetyCheckOthersFormVisible = true;\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n }\r\n this.isAddNewTextVisible = false;\r\n this.isFormVisible = true;\r\n this.isDeleteVisible = false;\r\n this.collapseColor = \"yellow\";\r\n }\r\n\r\n cancelForm() {\r\n this.deSelectEntity();\r\n }\r\n\r\n updateGlobalMandatory(globalMandatoryState: any, type: any) {\r\n let mandatoryGlobal = 0;\r\n let mandatoryGlobalImg = this.notvisibleImg;\r\n if (globalMandatoryState == 0) {\r\n mandatoryGlobal = 1;\r\n mandatoryGlobalImg = this.mandatoryGlobalImg;\r\n }\r\n if (type == \"loginlogout\") {\r\n this.selectedSafetyCheckLoginLogout.MandatoryGlobal = mandatoryGlobal;\r\n this.selectedSafetyCheckLoginLogout.MandatoryGlobalImage = mandatoryGlobalImg; }\r\n else if (type == \"vehicleinspection\") {\r\n this.selectedSafetyCheckVehicleInspection.MandatoryGlobal = mandatoryGlobal;\r\n this.selectedSafetyCheckVehicleInspection.MandatoryGlobalImage = mandatoryGlobalImg;\r\n }\r\n else if (type == \"customer\") {\r\n this.selectedSafetyCheckCustomer.MandatoryGlobal = mandatoryGlobal;\r\n this.selectedSafetyCheckCustomer.MandatoryGlobalImage = mandatoryGlobalImg;\r\n }\r\n else if (type == \"product\") {\r\n this.selectedSafetyCheckProduct.MandatoryGlobal = mandatoryGlobal;\r\n this.selectedSafetyCheckProduct.MandatoryGlobalImage = mandatoryGlobalImg;\r\n }\r\n else if (type == \"others\") {\r\n this.selectedSafetyCheckOthers.MandatoryGlobal = mandatoryGlobal;\r\n this.selectedSafetyCheckOthers.MandatoryGlobalImage = mandatoryGlobalImg;\r\n }\r\n }\r\n\r\n getNextState(state: any) {\r\n if (state == 0) return 1;\r\n else if (state == 1) return 2;\r\n else if (state == 2) return 0;\r\n }\r\n\r\n getImageUrl(state: any) {\r\n if (state == 0) return this.optionalImg;\r\n else if (state == 1) return this.mandatoryImg;\r\n else if (state == 2) return this.notvisibleImg;\r\n }\r\n\r\n updateMandatoryState(mandatoryState: any, filterType: any) {\r\n if (filterType == \"fleet\") {\r\n if (this.safetyCheckGroupId == 1 || this.safetyCheckGroupId == 11) {\r\n this.selectedSafetyCheckLoginLogout.MandatoryForFleet = this.getNextState(mandatoryState);\r\n this.selectedSafetyCheckLoginLogout.MandatoryForFleetImage = this.getImageUrl(mandatoryState);\r\n }\r\n else if (this.safetyCheckGroupId == 12) {\r\n this.selectedSafetyCheckVehicleInspection.MandatoryForFleet = this.getNextState(mandatoryState);\r\n this.selectedSafetyCheckVehicleInspection.MandatoryForFleetImage = this.getImageUrl(mandatoryState);\r\n }\r\n }\r\n else if (filterType == \"vehicletype\") {\r\n if (this.safetyCheckGroupId == 1 || this.safetyCheckGroupId == 11) {\r\n this.selectedSafetyCheckLoginLogout.MandatoryForVehicleType = this.getNextState(mandatoryState);\r\n this.selectedSafetyCheckLoginLogout.MandatoryForVehicleTypeImage = this.getImageUrl(mandatoryState);\r\n }\r\n else if (this.safetyCheckGroupId == 12) {\r\n this.selectedSafetyCheckVehicleInspection.MandatoryForVehicleType = this.getNextState(mandatoryState);\r\n this.selectedSafetyCheckVehicleInspection.MandatoryForVehicleTypeImage = this.getImageUrl(mandatoryState);\r\n }\r\n }\r\n else if (filterType == \"dataarea\") {\r\n if (this.safetyCheckGroupId == 1 || this.safetyCheckGroupId == 11) {\r\n this.selectedSafetyCheckLoginLogout.MandatoryForDataArea = this.getNextState(mandatoryState);\r\n this.selectedSafetyCheckLoginLogout.MandatoryForDataAreaImage = this.getImageUrl(mandatoryState);\r\n }\r\n else if (this.safetyCheckGroupId == 12) {\r\n this.selectedSafetyCheckVehicleInspection.MandatoryForDataArea = this.getNextState(mandatoryState);\r\n this.selectedSafetyCheckVehicleInspection.MandatoryForDataAreaImage = this.getImageUrl(mandatoryState);\r\n }\r\n }\r\n else if (filterType == \"vehicle\") {\r\n if (this.safetyCheckGroupId == 1 || this.safetyCheckGroupId == 11) {\r\n this.selectedSafetyCheckLoginLogout.MandatoryForVehicle = this.getNextState(mandatoryState);\r\n this.selectedSafetyCheckLoginLogout.MandatoryForVehicleImage = this.getImageUrl(mandatoryState);\r\n }\r\n else if (this.safetyCheckGroupId == 12) {\r\n this.selectedSafetyCheckVehicleInspection.MandatoryForVehicle = this.getNextState(mandatoryState);\r\n this.selectedSafetyCheckVehicleInspection.MandatoryForVehicleImage = this.getImageUrl(mandatoryState);\r\n }\r\n }\r\n else if (filterType == \"customertype\") {\r\n this.selectedSafetyCheckCustomer.MandatoryForCustomerType = this.getNextState(mandatoryState);\r\n this.selectedSafetyCheckCustomer.MandatoryForCustomerTypeImage = this.getImageUrl(mandatoryState);\r\n }\r\n else if (filterType == \"producttype\") {\r\n this.selectedSafetyCheckProduct.MandatoryForProductType = this.getNextState(mandatoryState);\r\n this.selectedSafetyCheckProduct.MandatoryForProductTypeImage = this.getImageUrl(mandatoryState);\r\n }\r\n else if (filterType == \"others\") {\r\n this.selectedSafetyCheckOthers.MandatoryForOthers = this.getNextState(mandatoryState);\r\n this.selectedSafetyCheckOthers.MandatoryForOthersImage = this.getImageUrl(mandatoryState);\r\n }\r\n }\r\n\r\n clearValidation() {\r\n this.formSubmitted = false;\r\n this.requiredErr = {};\r\n this.maxLengthErr = {};\r\n }\r\n\r\n checkValidation(formData: any) {\r\n if (this.formSubmitted)\r\n this.formValidation(formData)\r\n }\r\n\r\n formValidation(formData: any) {\r\n this.requiredErr = {};\r\n this.maxLengthErr = {};\r\n\r\n if (!formData.Text || formData.Text.trim() == \"\") {\r\n this.requiredErr[this.safetyCheckGroupId] = true;\r\n } else if (formData.Text.trim().length > 50) {\r\n this.maxLengthErr[this.safetyCheckGroupId] = true;\r\n }\r\n return this.requiredErr[this.safetyCheckGroupId] || this.maxLengthErr[this.safetyCheckGroupId];\r\n }\r\n\r\n submitForm() {\r\n this.formSubmitted = true;\r\n switch (this.safetyCheckGroupId) {\r\n case 1:\r\n if (this.formValidation(this.selectedSafetyCheckLoginLogout))\r\n return;\r\n if (this.vehicleTypeId && !this.selectedSafetyCheckLoginLogout.VehicleTypeId) {\r\n this.selectedSafetyCheckLoginLogout.VehicleTypeId = this.vehicleTypeId;\r\n }\r\n if (this.dataAreaId && !this.selectedSafetyCheckLoginLogout.DataAreaId) {\r\n this.selectedSafetyCheckLoginLogout.DataAreaId = this.dataAreaId;\r\n }\r\n if (this.vehicleId && !this.selectedSafetyCheckLoginLogout.VehicleId) {\r\n this.selectedSafetyCheckLoginLogout.VehicleId = this.vehicleId;\r\n }\r\n\r\n this.safetyCheck$.saveSafetyCheckForLogin(this.selectedSafetyCheckLoginLogout).subscribe(res => {\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: 'Updated Safety check details for login successfully' });\r\n this.cancelForm();\r\n this.getSafetyChecks();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n break;\r\n\r\n case 11:\r\n if (this.formValidation(this.selectedSafetyCheckLoginLogout))\r\n return;\r\n if (this.vehicleTypeId && !this.selectedSafetyCheckLoginLogout.VehicleTypeId) {\r\n this.selectedSafetyCheckLoginLogout.VehicleTypeId = this.vehicleTypeId;\r\n }\r\n if (this.dataAreaId && !this.selectedSafetyCheckLoginLogout.DataAreaId) {\r\n this.selectedSafetyCheckLoginLogout.DataAreaId = this.dataAreaId;\r\n }\r\n if (this.vehicleId && !this.selectedSafetyCheckLoginLogout.VehicleId) {\r\n this.selectedSafetyCheckLoginLogout.VehicleId = this.vehicleId;\r\n }\r\n\r\n this.safetyCheck$.saveSafetyCheckForLogout(this.selectedSafetyCheckLoginLogout).subscribe(res => {\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: 'Updated Safety check details for logout successfully' });\r\n this.cancelForm();\r\n this.getSafetyChecks();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n break;\r\n\r\n case 2:\r\n\r\n if (this.formValidation(this.selectedSafetyCheckCustomer))\r\n return;\r\n if (this.customerTypeId && !this.selectedSafetyCheckCustomer.CustomerTypeId) {\r\n this.selectedSafetyCheckCustomer.CustomerTypeId = this.customerTypeId;\r\n }\r\n this.safetyCheck$.saveSafetyCheckForCustomer(this.selectedSafetyCheckCustomer).subscribe(res => {\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: 'Updated Safety check details for customer successfully' });\r\n this.cancelForm();\r\n this.getSafetyChecks();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n break;\r\n\r\n case 5:\r\n if (this.formValidation(this.selectedSafetyCheckProduct))\r\n return;\r\n if (this.productTypeId) {\r\n this.selectedSafetyCheckProduct.ProductTypeId = this.productTypeId;\r\n }\r\n this.safetyCheck$.saveSafetyCheckForProduct(this.selectedSafetyCheckProduct).subscribe(res => {\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: 'Updated Safety check details for product successfully' });\r\n this.cancelForm();\r\n this.getSafetyChecks();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n break;\r\n\r\n case 13:\r\n if (this.formValidation(this.selectedSafetyCheckProduct))\r\n return;\r\n if (this.productTypeId) {\r\n this.selectedSafetyCheckProduct.ProductTypeId = this.productTypeId;\r\n }\r\n this.safetyCheck$.saveSafetyCheckForLoadingProduct(this.selectedSafetyCheckProduct).subscribe(res => {\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: 'Updated Safety check details for loading product successfully' });\r\n this.cancelForm();\r\n this.getSafetyChecks();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n break;\r\n\r\n case 7:\r\n case 8:\r\n case 9:\r\n case 10:\r\n if (this.formValidation(this.selectedSafetyCheckOthers))\r\n return;\r\n this.safetyCheck$.saveSafetyCheckForOthers(this.selectedSafetyCheckOthers).subscribe(res => {\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: 'Updated Safety check details successfully' });\r\n this.cancelForm();\r\n this.getSafetyChecks();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n break;\r\n\r\n case 12:\r\n if (this.formValidation(this.selectedSafetyCheckVehicleInspection))\r\n return;\r\n if (this.vehicleTypeId) {\r\n this.selectedSafetyCheckVehicleInspection.VehicleTypeId = this.vehicleTypeId;\r\n }\r\n this.safetyCheck$.saveSafetyCheckForVehicleInspection(this.selectedSafetyCheckVehicleInspection).subscribe(res => {\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: 'Updated Safety check details for vehicle inspection successfully' });\r\n this.cancelForm();\r\n this.getSafetyChecks();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n reset() {\r\n let message = \"\";\r\n let resetData = cloneDeep(this.resetsafetyCheck);\r\n switch (this.safetyCheckGroupId) {\r\n case 1:\r\n this.selectedSafetyCheckLoginLogout = resetData;\r\n message = 'Reset Safety check details for login successfully';\r\n break;\r\n\r\n case 11:\r\n this.selectedSafetyCheckLoginLogout = resetData;\r\n message = 'Reset Safety check details for logout successfully';\r\n break;\r\n\r\n case 2:\r\n this.selectedSafetyCheckCustomer = resetData;\r\n message = 'Reset Safety check details for customer successfully';\r\n break;\r\n\r\n case 5:\r\n case 13:\r\n this.selectedSafetyCheckProduct = resetData;\r\n message = 'Reset Safety check details for product successfully';\r\n break;\r\n\r\n case 7:\r\n case 8:\r\n case 9:\r\n case 10:\r\n this.selectedSafetyCheckOthers = resetData;\r\n message = 'Reset Safety check details successfully';\r\n break;\r\n\r\n case 12:\r\n this.selectedSafetyCheckVehicleInspection = resetData;\r\n message = 'Reset Safety check details for vehicle inspection successfully';\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: message });\r\n this.checkValidation(resetData);\r\n }\r\n\r\n deleteCancel() {\r\n this.showDeleteConfirm = false;\r\n }\r\n\r\n deleteConfirm() {\r\n this.showDeleteConfirm = false;\r\n let arg = {};\r\n let message = \"\";\r\n switch (this.safetyCheckGroupId) {\r\n case 1:\r\n arg = {\r\n companyId: this.selectedSafetyCheckLoginLogout.CompanyId,\r\n textId: this.selectedSafetyCheckLoginLogout.Id,\r\n safetyCheckGroupId: this.safetyCheckGroupId\r\n }\r\n message = \"Deleted Safety check details for login successfully\";\r\n break;\r\n\r\n case 11:\r\n arg = {\r\n companyId: this.selectedSafetyCheckLoginLogout.CompanyId,\r\n textId: this.selectedSafetyCheckLoginLogout.Id,\r\n safetyCheckGroupId: this.safetyCheckGroupId\r\n }\r\n message = \"Deleted Safety check details for logout successfully\";\r\n break;\r\n\r\n\r\n case 2:\r\n arg = {\r\n companyId: this.selectedSafetyCheckCustomer.CompanyId,\r\n textId: this.selectedSafetyCheckCustomer.Id,\r\n safetyCheckGroupId: this.safetyCheckGroupId\r\n }\r\n message = \"Deleted Safety check details for customer successfully\"\r\n break;\r\n\r\n case 5:\r\n case 13:\r\n arg = {\r\n companyId: this.selectedSafetyCheckProduct.CompanyId,\r\n textId: this.selectedSafetyCheckProduct.Id,\r\n safetyCheckGroupId: this.safetyCheckGroupId\r\n }\r\n message = \"Deleted Safety check details for product successfully\";\r\n break;\r\n\r\n case 7:\r\n case 8:\r\n case 9:\r\n case 10:\r\n arg = {\r\n companyId: this.selectedSafetyCheckOthers.CompanyId,\r\n textId: this.selectedSafetyCheckOthers.Id,\r\n safetyCheckGroupId: this.safetyCheckGroupId\r\n }\r\n message = \"Deleted Safety check details successfully\";\r\n break;\r\n\r\n case 12:\r\n arg = {\r\n companyId: this.selectedSafetyCheckVehicleInspection.CompanyId,\r\n textId: this.selectedSafetyCheckVehicleInspection.Id,\r\n safetyCheckGroupId: this.safetyCheckGroupId\r\n }\r\n message = \"Deleted Safety check details for vehicle inspection successfully\";\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n if (this.safetyCheckGroupId) {\r\n this.app$.notifyScreenBusy();\r\n this.safetyCheck$.deleteSafetyCheck(arg).subscribe(res => {\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: message });\r\n this.cancelForm();\r\n this.getSafetyChecks();\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n }\r\n\r\n disableSaveBtn() {\r\n let disabled = true;\r\n switch (this.safetyCheckGroupId) {\r\n case 1:\r\n if (JSON.stringify(this.resetsafetyCheck) != JSON.stringify(this.selectedSafetyCheckLoginLogout))\r\n disabled = false;\r\n break;\r\n\r\n case 11:\r\n if (JSON.stringify(this.resetsafetyCheck) != JSON.stringify(this.selectedSafetyCheckLoginLogout))\r\n disabled = false;\r\n break;\r\n\r\n case 2:\r\n if (JSON.stringify(this.resetsafetyCheck) != JSON.stringify(this.selectedSafetyCheckCustomer))\r\n disabled = false;\r\n break;\r\n\r\n case 5:\r\n case 13:\r\n if (JSON.stringify(this.resetsafetyCheck) != JSON.stringify(this.selectedSafetyCheckProduct))\r\n disabled = false;\r\n break;\r\n\r\n case 7:\r\n case 8:\r\n case 9:\r\n case 10:\r\n if (JSON.stringify(this.resetsafetyCheck) != JSON.stringify(this.selectedSafetyCheckOthers))\r\n disabled = false;\r\n break;\r\n\r\n case 12:\r\n if (JSON.stringify(this.resetsafetyCheck) != JSON.stringify(this.selectedSafetyCheckVehicleInspection))\r\n disabled = false;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n this.saveDisabled = disabled;\r\n return disabled;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
Filter Options
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
Company
\r\n
\r\n \r\n \r\n {{opt.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
Safety check group
\r\n
\r\n \r\n \r\n {{opt.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Vehicle type
\r\n
\r\n \r\n \r\n {{opt.DisplayName}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
Data area
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Customer type
\r\n
\r\n \r\n \r\n {{opt.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
Product type
\r\n
\r\n \r\n \r\n {{opt.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Legend:\r\n \r\n - Global Mandatory\r\n \r\n \r\n - Invisible\r\n \r\n \r\n - Optional\r\n \r\n \r\n - Mandatory\r\n \r\n \r\n - Inactive\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Edit\r\n Texts\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Safety check ID\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Text\r\n
\r\n
\r\n \r\n
\r\n \r\n Text is required\r\n \r\n \r\n Text cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Mandatory
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Vehicle type\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Safety check ID\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Text\r\n
\r\n
\r\n \r\n
\r\n \r\n Text is required\r\n \r\n \r\n Text cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Mandatory
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Customer Type\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Safety check ID\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Text\r\n
\r\n
\r\n \r\n
\r\n \r\n Text is required\r\n \r\n \r\n Text cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Mandatory
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Fleet
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Vehicle type
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Data Area
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Device
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Safety check ID\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Text\r\n
\r\n
\r\n \r\n
\r\n \r\n Text is required\r\n \r\n \r\n Text cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Mandatory
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Product type\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Safety check ID\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Text\r\n
\r\n
\r\n \r\n
\r\n \r\n Text is required\r\n \r\n \r\n Text cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Mandatory
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Fleet
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
Are you sure you want to delete?
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport class safetyCheckGroup {\r\n Id: number;\r\n Name: string;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class SafetyCheckInterface {\r\n getSafetyCheckTextGroups: () => Observable;\r\n getSafetyCheckForCustomer: (arg: any) => Observable;\r\n getSafetyCheckForLogin: (arg: any) => Observable;\r\n getSafetyCheckForLogout: (arg: any) => Observable;\r\n getSafetyCheckForProduct: (arg: any) => Observable;\r\n getSafetyCheckForLoadingProduct: (arg: any) => Observable;\r\n getSafetyCheckForVehicleInspection: (arg: any) => Observable;\r\n getSafetyCheckForOthers: (arg: any) => Observable;\r\n getNewSafetyCheckForVehicleInspection: (arg: any) => Observable;\r\n getNewSafetyCheckForOthers: (arg: any) => Observable;\r\n getNewSafetyCheckForCustomer: (arg: any) => Observable;\r\n getNewSafetyCheckForLogin: (arg: any) => Observable;\r\n getNewSafetyCheckForLogout: (arg: any) => Observable;\r\n getSafetyGlobalMandatoryStates: () => Observable;\r\n getSafetyMandatoryStates: () => Observable;\r\n getDataAreaList: () => Observable;\r\n getDevicesList: (arg: any) => Observable;\r\n getNewSafetyCheckForProduct: (arg: any) => Observable;\r\n saveSafetyCheckForCustomer: (arg: any) => Observable;\r\n saveSafetyCheckForLogin: (arg: any) => Observable;\r\n saveSafetyCheckForLogout: (arg: any) => Observable;\r\n saveSafetyCheckForProduct: (arg: any) => Observable\r\n saveSafetyCheckForLoadingProduct: (arg: any) => Observable\r\n saveSafetyCheckForOthers: (arg: any) => Observable\r\n saveSafetyCheckForVehicleInspection: (arg: any) => Observable\r\n deleteSafetyCheck: (arg: any) => Observable;\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { SafetyCheckInterface, safetyCheckGroup } from './safety-check.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class SafetyCheckService implements SafetyCheckInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n\r\n getSafetyCheckTextGroups(): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/safetycheckgroup', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getSafetyCheckForCustomer(arg: any): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/safetycheckforcustomer/' + arg.companyId + \"/\" + arg.customerTypeId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getSafetyCheckForLogin(arg: any): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/safetycheckforlogin/' + arg.companyId + \"/\" + arg.vehicleTypeId + \"/\" + arg.dataAreaId + \"/\" + arg.vehicleId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getSafetyCheckForLogout(arg: any): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/safetycheckforlogout/' + arg.companyId + \"/\" + arg.vehicleTypeId + \"/\" + arg.dataAreaId + \"/\" + arg.vehicleId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n \r\n getSafetyGlobalMandatoryStates(): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/globalmandatorystates',{\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getSafetyMandatoryStates(): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/mandatorystates', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getSafetyCheckForProduct(arg: any): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/safetycheckforproduct/' + arg.companyId + \"/\" + arg.productTypeId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getSafetyCheckForLoadingProduct(arg: any): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/safetycheckforloadingproduct/' + arg.companyId + \"/\" + arg.productTypeId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getSafetyCheckForVehicleInspection(arg: any): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/safetycheckforvehicleinspection/' + arg.companyId + \"/\" + arg.vehicleTypeId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getSafetyCheckForOthers(arg: any): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/safetycheckforothers/' + arg.companyId + \"/\" + arg.groupTypeId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewSafetyCheckForVehicleInspection(arg: any): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/newsafetycheck/vehicleinspection/' + arg.companyId + \"/\" + arg.vehicleTypeId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewSafetyCheckForOthers(arg: any): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/newsafetycheck/others/' + arg.companyId + \"/\" + arg.groupTypeId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getDataAreaList() {\r\n return this._http.get(e.endpoint.products.dataArea + '/list/1', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getDevicesList(arg) {\r\n return this._http.get(e.endpoint.device + \"/\"+ arg.companyId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n}\r\n\r\n getNewSafetyCheckForCustomer(arg: any): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/newsafetycheck/customer/' + arg.companyId + \"/\" + arg.customerTypeId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getNewSafetyCheckForLogin(arg: any): Observable {\r\n return this._http.get(e.endpoint.safetycheck + \"/newsafetycheck/login/\" + arg.companyId + \"/\" + arg.vehicleTypeId + \"/\" + arg.dataAreaId + \"/\" + arg.vehicleId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getNewSafetyCheckForLogout(arg: any): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/newsafetycheck/logout/' + arg.companyId + \"/\" + arg.vehicleTypeId + \"/\" + arg.dataAreaId + \"/\" + arg.vehicleId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewSafetyCheckForProduct(arg: any): Observable {\r\n return this._http.get(e.endpoint.safetycheck + '/newsafetycheck/product/' + arg.companyId + \"/\" + arg.productTypeId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n saveSafetyCheckForCustomer(data: any): Observable {\r\n return this._http.put(\r\n e.endpoint.safetycheck + \"/savesafetycheckforcustomer\",\r\n data,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n \r\n saveSafetyCheckForLogin(data: any): Observable {\r\n return this._http.put(\r\n e.endpoint.safetycheck + \"/savesafetycheckforlogin\",\r\n data,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n saveSafetyCheckForLogout(data: any): Observable {\r\n return this._http.put(\r\n e.endpoint.safetycheck + \"/savesafetycheckforlogout\",\r\n data,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n saveSafetyCheckForProduct(data: any): Observable {\r\n return this._http.put(\r\n e.endpoint.safetycheck + \"/savesafetycheckforproduct\",\r\n data,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n saveSafetyCheckForLoadingProduct(data: any): Observable {\r\n return this._http.put(\r\n e.endpoint.safetycheck + \"/savesafetycheckforloadingproduct\",\r\n data,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n saveSafetyCheckForOthers(data: any): Observable {\r\n return this._http.put(\r\n e.endpoint.safetycheck + \"/savesafetycheckforothers\",\r\n data,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n saveSafetyCheckForVehicleInspection(data: any): Observable {\r\n return this._http.put(\r\n e.endpoint.safetycheck + \"/savesafetycheckforvehicleinspection\",\r\n data,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n deleteSafetyCheck(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.safetycheck + '/deletesafetycheck/' + param.companyId + \"/\" + param.textId + \"/\" + param.safetyCheckGroupId, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n","import {ChangeDetectorRef,Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { AuditLogInterface, EntityList, Log, filterOptions } from './audit-log.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { AuditLogService } from './audit-log.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport { AppService } from '@app/app.service';\r\nimport { IsUndefinedOrNull } from '@app/common_helper';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\n\r\n@Component({\r\n selector: 'facnm-audit-log',\r\n templateUrl: './audit-log.component.html',\r\n styleUrls: ['./audit-log.component.scss'],\r\n providers: [\r\n {\r\n provide: AuditLogInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new AuditLogService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class AuditLogComponent implements OnInit {\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n entityName = 'Audit Log';\r\n filterApplied = false;\r\n showFilterModal = false;\r\n collapseColor = 'green';\r\n pageSize = 20;\r\n filterOptions: filterOptions;\r\n customDataSource: any;\r\n auditLog: any;\r\n entityData: any;\r\n totalCount: any;\r\n entityList: EntityList[];\r\n objectKeys: string[];\r\n dateFormat= '';\r\n\r\n constructor(\r\n private auditLog$: AuditLogInterface,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { this.dateFormat = this.app$.dateFormat;}\r\n\r\n ngOnInit(): void {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.initFilterOption();\r\n this.getCustomDataSource();\r\n }\r\n\r\n initFilterOption() {\r\n this.filterOptions = {\r\n TableName: null,\r\n LogType: null,\r\n Username: null,\r\n DateFrom: null,\r\n DateTo: null,\r\n GridPagerOptions: { PageIndex: 0, PageSize: 20, TotalPages: null }\r\n };\r\n }\r\n\r\n getCustomDataSource() {\r\n this.customDataSource = new CustomStore({\r\n key: ['Id'],\r\n load: (loadOptions) => {\r\n if (loadOptions != undefined) {\r\n this.filterOptions.GridPagerOptions.PageSize = (IsUndefinedOrNull(loadOptions.take) == true) ? this.pageSize : loadOptions.take;\r\n this.filterOptions.GridPagerOptions.PageIndex = ((IsUndefinedOrNull(loadOptions.take) && IsUndefinedOrNull(loadOptions.skip)) == true) ? 0 : (loadOptions.skip / loadOptions.take);\r\n }\r\n return this.auditLog$.getAuditLogList(this.filterOptions)\r\n .toPromise()\r\n .then((response: any) => {\r\n this.app$.notifyScreenReady();\r\n this.totalCount = response.TotalCount;\r\n return {\r\n data: response.AuditLogList,\r\n totalCount: response.TotalCount,\r\n };\r\n })\r\n .catch((errorNetwork) => this.errors$.handleServerErrors(errorNetwork));\r\n }\r\n });\r\n }\r\n\r\n onContentReadyGrid(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Audit Logs Found\";\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData) {\r\n this.entityData = new Log();\r\n this.entityData.key = null;\r\n }\r\n\r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow);\r\n }\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = null;\r\n }\r\n\r\n private selectEntity(selectedRow: any) {\r\n this.entityData = selectedRow.data;\r\n this.entityData.LogDate = new Date(this.entityData.LogDate);\r\n this.entityData.key = selectedRow.key;\r\n this.getObjectKeys();\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n cancelDetails() {\r\n this.deSelectEntity();\r\n }\r\n\r\n getObjectKeys() {\r\n if (this.entityData != null) {\r\n if (this.entityData.OldValue != null) this.objectKeys = Object.keys(this.entityData.OldValue);\r\n\r\n if (this.objectKeys.length == 0) {\r\n if (this.entityData.NewValue != null) this.objectKeys = Object.keys(this.entityData.NewValue);\r\n }\r\n }\r\n }\r\n\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel,\r\n 'collapsible-header-icon-green-down': pannel,\r\n }\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n applyFilter() {\r\n this.filterApplied = true;\r\n if (!this.filterOptions.DateFrom && this.filterOptions.DateTo) return;\r\n this.showFilterModal = false;\r\n this.dataGrid.instance.refresh();\r\n this.dataGrid.instance.deselectAll();\r\n this.entityData = null;\r\n }\r\n\r\n resetfilterOptions() {\r\n this.initFilterOption();\r\n this.applyFilter();\r\n }\r\n\r\n viewFilterOptionsModal() {\r\n\r\n if (!this.entityList) {\r\n this.app$.notifyScreenBusy();\r\n this.auditLog$.getEntityList().subscribe(\r\n (res) => {\r\n this.app$.notifyScreenReady();\r\n this.entityList = res;\r\n this.showFilterOptionsModal();\r\n this.changeDetectorRef.detectChanges();\r\n },\r\n (err) => {\r\n this.app$.notifyScreenReady();\r\n this.errors$.handleServerErrors(err);\r\n }\r\n );\r\n } else {\r\n this.showFilterOptionsModal();\r\n }\r\n }\r\n\r\n showFilterOptionsModal() {\r\n this.filterApplied = false;\r\n if (!this.filterOptions.DateFrom) this.filterOptions.DateFrom = new Date(new Date().setHours(0, 0, 0, 0));\r\n if (!this.filterOptions.DateTo) this.filterOptions.DateTo = new Date();\r\n this.showFilterModal = true;\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - 90);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Total Rows: {{ totalCount\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n General Information\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Log Values\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Column NameOld ValueNew Value
{{key}}{{entityData.OldValue[key]}}{{entityData.NewValue[key]}}
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{entity.DisplayName}}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Insert\r\n Update\r\n Delete\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n Date From is required \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport class EntityList {\r\n Name: string\r\n DisplayName: string;\r\n}\r\n\r\nexport class Log {\r\n Id: number;\r\n Number: string;\r\n Name: string;\r\n TableKey1: string;\r\n TableKey2: string;\r\n TableKey3: string;\r\n TableKey4: string;\r\n TableKey5: string;\r\n NewValue: any;\r\n OldValue: any;\r\n LogType: any;\r\n LogDate: any;\r\n TableName: string;\r\n UserName: string;\r\n}\r\n\r\nexport class filterOptions {\r\n TableName: string;\r\n LogType: string;\r\n Username: string;\r\n DateFrom: any;\r\n DateTo: any;\r\n GridPagerOptions: { PageIndex: number, PageSize: number, TotalPages: null }\r\n}\r\n\r\n@Injectable()\r\nexport abstract class AuditLogInterface {\r\n getEntityList: () => Observable;\r\n getAuditLogList: (filterOptions: any) => Observable;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { AuditLogInterface, EntityList, Log, filterOptions } from './audit-log.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuditLogService implements AuditLogInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n\r\n getEntityList(): Observable {\r\n return this._http.get(e.endpoint.settings.auditLog + '/entitylist', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getAuditLogList(filterOptions: filterOptions): Observable {\r\n return this._http.put(\r\n e.endpoint.settings.auditLog + '/filter',\r\n filterOptions,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BankAccountInterface, BankAccount } from './bank-account.model';\r\nimport { BankAccountService } from './bank-account.service';\r\nimport { dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-bank-account',\r\n templateUrl: './bank-account.component.html',\r\n styleUrls: ['./bank-account.component.scss'],\r\n providers: [\r\n {\r\n provide: BankAccountInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new BankAccountService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class BankAccountComponent implements OnInit {\r\n\r\n constructor(\r\n private bankaccount$: BankAccountInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n private unsubscribe$ = new Subject();\r\n gridData: ArrayStore;\r\n isAddForm = 0;\r\n entityName = 'Bank Account';\r\n entityData: Entity;\r\n newEntityData: BankAccount;\r\n\r\n ngOnInit(): void {\r\n this.actions();\r\n this.getList();\r\n this.app$.setScreenTitle(this.entityName);\r\n this.bankaccount$.getNewEntity().subscribe(res => {\r\n this.newEntityData = res;\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n actions() {\r\n this.bankaccount$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.gridData = new ArrayStore({\r\n data: data,\r\n key: [\"Id\"]\r\n });\r\n }\r\n });\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getList() {\r\n this.bankaccount$.getList().subscribe(listWithCreated => {\r\n this.bankaccount$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n\r\n this.bankaccount$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.getList();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n private deleteConfirm() {\r\n let param = {\r\n BankAccountId: this.entityData.value.Id\r\n };\r\n this.bankaccount$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.entityData = new Entity();\r\n this.entityData.value = cloneDeep(this.newEntityData);\r\n this.entityData.created = true;\r\n this.isAddForm = 1;\r\n this.collapseColor = 'yellow';\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onContentReadyGroup(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Bank Accounts Found\";\r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.actions$.notifyEntityBusy();\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.gridData.byKey(key)\r\n .then(pt => {\r\n this.entityData.value = cloneDeep(pt);\r\n this.app$.notifyScreenReady();\r\n this.isAddForm = 0;\r\n });\r\n this.collapseColor = 'green';\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n }\r\n\r\n private reset() {\r\n this.entityData.restore();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData) {\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n\r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n \r\n isNumberOnly(event) {\r\n return (event.charCode != 8 && event.charCode == 0 || (event.charCode == 46) || (event.charCode >= 48 && event.charCode <= 57))\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n GICollapse = false;\r\n collapseColor = 'green';\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n General Information\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Bank Name is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Bank Number is required\r\n \r\n \r\n Bank Number cannot be longer than 25 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n IBAN cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Account Number is required\r\n \r\n \r\n Account Number cannot be longer than 25 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Owner is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n BIC cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity } from \"@app/app.model\";\r\n\r\nexport class BankAccount {\r\n Id: number;\r\n BankName: string;\r\n BankNumber: number;\r\n AccountNumber: number;\r\n Owner:string;\r\n IBAN : string;\r\n BIC : string \r\n IsEditable: boolean;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class BankAccountInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: BankAccount[]) => void;\r\n\r\n getNewEntity: () => Observable;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Entity } from '@app/app.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { BankAccount, BankAccountInterface } from './bank-account.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BankAccountService implements BankAccountInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n\r\n save: (data: Entity) => Observable;\r\n getEntity: (data: any) => Observable;\r\n\r\n notifyRetrieved(data: BankAccount[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.settings.bankAccount, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.settings.bankAccount,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.settings.bankAccount + \"/\" + param.BankAccountId, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewEntity() {\r\n return this._http.get(e.endpoint.settings.bankAccount + '/newbankaccount', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Company, CompanyInterface } from './company.model';\r\nimport { CompanyService } from './company.service';\r\nimport { dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-company',\r\n templateUrl: './company.component.html',\r\n styleUrls: ['./company.component.scss'],\r\n providers: [\r\n {\r\n provide: CompanyInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new CompanyService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class CompanyComponent implements OnInit {\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n private unsubscribe$ = new Subject();\r\n gridData: ArrayStore;\r\n entityData: Entity;\r\n newEntityData: Company;\r\n isAddForm = 0;\r\n collapseColor = 'green';\r\n entityName = 'Company';\r\n GICollapse = false;\r\n ICollapse = false;\r\n ADCollapse = false;\r\n CICollapse = false;\r\n CRCollapse = false;\r\n msgReceiverGroups: any[];\r\n autoEmailOptionsLists: any[];\r\n showBillingCustomerModal: boolean;\r\n showPrintCompanyCheck: boolean;\r\n\r\n constructor(\r\n private company$: CompanyInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.actions();\r\n this.getList();\r\n forkJoin({\r\n newEntityData: this.company$.getNewEntity(),\r\n msgReceiverGroups: this.company$.getMsgReceiverGroups(),\r\n autoEmailOptionsLists: this.company$.getAutoEmailOptionsList(),\r\n }).subscribe(\r\n res => {\r\n this.newEntityData = res['newEntityData']\r\n this.msgReceiverGroups = res['msgReceiverGroups'];\r\n this.autoEmailOptionsLists = res['autoEmailOptionsLists'];\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n actions() {\r\n this.company$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.gridData = new ArrayStore({\r\n data: data,\r\n key: ['Id']\r\n });\r\n }\r\n });\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getList() {\r\n this.company$.getList().subscribe(listWithCreated => {\r\n this.company$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.entityData = new Entity();\r\n this.entityData.value = { ...this.newEntityData };\r\n this.entityData.created = true;\r\n this.isAddForm = 1;\r\n this.collapseColor = 'yellow';\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private deleteConfirm() {\r\n let param = { id: this.entityData.value.Id }\r\n this.company$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n if (!isSave) {\r\n this.app$.notifyScreenReady();\r\n this.showPrintCompanyCheck = true;\r\n } else {\r\n this.createOrUpdate(isSave);\r\n }\r\n }\r\n\r\n printCompany(isPrintCompany: boolean) {\r\n this.showPrintCompanyCheck = false;\r\n this.entityData.value.IsPrintCompany = isPrintCompany;\r\n this.createOrUpdate(false);\r\n }\r\n\r\n createOrUpdate(isSave: boolean) {\r\n this.company$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.getList();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n }\r\n\r\n private reset() {\r\n this.entityData.restore();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.app$.notifyScreenBusy();\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n this.company$.getEntity(key).subscribe((res: any) => {\r\n this.app$.notifyScreenReady();\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.entityData.value = cloneDeep(res);\r\n this.changeDetectorRef.detectChanges();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n onContentReady(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Company Found\";\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData){\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n\r\n /**Billing customer start*/\r\n\r\n viewBillingCustomerModal() {\r\n this.showBillingCustomerModal = true;\r\n }\r\n\r\n billingCustomerSelectionOk(data: any) {\r\n this.showBillingCustomerModal = false;\r\n if (data.length > 0) {\r\n let selectedRowData = data[0];\r\n this.entityData.value.DefaultCustomer = selectedRowData.Id;\r\n this.entityData.value.DefaultCustomerName = selectedRowData.Name1;\r\n }\r\n }\r\n\r\n billingCustomerSelectionCancel() {\r\n this.showBillingCustomerModal = false;\r\n }\r\n \r\n /**Billing customer end */\r\n\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n isNumberOnly(event) {\r\n return (event.charCode != 8 && event.charCode == 0 || (event.charCode == 46) || (event.charCode >= 48 && event.charCode <= 57))\r\n }\r\n\r\n onPasteNumberOnly(event: ClipboardEvent) {\r\n const clipboardData = event.clipboardData\r\n const pastedText = clipboardData.getData('text');\r\n\r\n // Check if the pasted text is a valid integer\r\n if (!/^\\d+$/.test(pastedText)) {\r\n event.preventDefault(); // Prevent the paste operation\r\n }\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n General Information\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Name is required\r\n \r\n \r\n Name cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Name 2 cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Name 3 cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Short Name cannot be longer than 15 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Tax Number cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Company Number cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Is Print Company\r\n
\r\n
\r\n Is Not Print Company\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Images\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Small Image is not valid number\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Large Image is not valid number\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Address Information\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Contact Information\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Fax cannot be longer than 25 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Email cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Web Address cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n Cash Registration\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Service Url cannot be longer than 100 characters\r\n \r\n \r\n Service Url is not valid.\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Access Token cannot be longer than 100 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n CashBox Id must be a valid GUID\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{entity.Id}} - {{entity.Name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
Should the new company be print-only company?
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\nexport class Company {\r\n Id: number;\r\n Name: string;\r\n DefaultCustomerName: string;\r\n DefaultCustomer: number;\r\n ShortName: string;\r\n StreetAddress: string;\r\n Suburb: string;\r\n Telephone: string;\r\n IsPrintCompany: any;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class CompanyInterface implements EntityInterface {\r\n\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: Company[]) => void;\r\n\r\n getNonPrintCompanyList: (data: any) => Observable;\r\n getMsgReceiverGroups: () => Observable;\r\n getAutoEmailOptionsList: () => Observable;\r\n getNewEntity: () => Observable;\r\n\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Entity, Enum } from '@app/app.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { Company, CompanyInterface } from './company.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompanyService implements CompanyInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n\r\n save: (data: Entity) => Observable;\r\n\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n notifyRetrieved(data: Company[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n getNonPrintCompanyList(lookup): Observable {\r\n return this._http.get(e.endpoint.settings.nonPrintCompanyDropdown + lookup, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.company,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.company, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getEntity(key: any): Observable {\r\n return this._http.get(e.endpoint.company + '/' + key.Id, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewEntity(): Observable {\r\n return this._http.get(e.endpoint.company + '/newcompany', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.company + \"/\" + param.id, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getCompanyDropDown(lookup: any): Observable {\r\n return this._http.get(e.endpoint.company + '/dropdown/' + lookup, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getMsgReceiverGroups(): Observable {\r\n return this._http.get(e.endpoint.company + '/GetMsgReceiverGroups', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getAutoEmailOptionsList(): Observable {\r\n return this._http.get(e.endpoint.company + '/GetAutoEmailOptionsList', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport {ChangeDetectorRef,Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { FleetManagementInterface, Fleet } from './fleet-management.model';\r\nimport { FleetManagementService } from './fleet-management.service';\r\nimport { dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-fleet-management',\r\n templateUrl: './fleet-management.component.html',\r\n styleUrls: ['./fleet-management.component.scss'],\r\n providers: [\r\n {\r\n provide: FleetManagementInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new FleetManagementService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class FleetManagementComponent implements OnInit {\r\n\r\n constructor(\r\n private FleetManagement$: FleetManagementInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n private unsubscribe$ = new Subject();\r\n gridData: ArrayStore;\r\n isAddForm = 0;\r\n entityName = 'Fleet Management';\r\n entityAddName = 'Fleet';\r\n entityData: Entity;\r\n newEntityData: Fleet;\r\n newEntity: any;\r\n VCollapse = false;\r\n DCollapse = false;\r\n collapseColor = 'green';\r\n\r\n ngOnInit(): void {\r\n this.actions();\r\n this.getList();\r\n this.app$.setScreenTitle(this.entityName);\r\n this.getNewEntityData();\r\n }\r\n actions() {\r\n this.FleetManagement$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.gridData = new ArrayStore({\r\n data: data,\r\n key: [\"Id\"]\r\n });\r\n }\r\n });\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getList() {\r\n this.FleetManagement$.getList().subscribe(listWithCreated => {\r\n this.FleetManagement$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n getNewEntityData() {\r\n this.FleetManagement$.getEntity({ Id: 0 }).subscribe((res: any) => {\r\n this.newEntityData = res;\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n\r\n this.FleetManagement$.create(this.entityData).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.getList();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n private deleteConfirm() {\r\n let param = {\r\n Id: this.entityData.value.Id,\r\n };\r\n this.FleetManagement$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.entityData = new Entity();\r\n this.entityData.value = cloneDeep(this.newEntityData);\r\n this.entityData.value.Id = 0;\r\n this.entityData.value.Name = \"\";\r\n this.entityData.value.AssignedDrivers = [];\r\n this.entityData.value.AssignedVehicles = [];\r\n this.entityData.created = true;\r\n this.isAddForm = 1;\r\n this.collapseColor = 'yellow';\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onContentReady(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Fleets Found\";\r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.app$.notifyScreenBusy();\r\n this.FleetManagement$.getEntity(key).subscribe((res: any) => {\r\n this.app$.notifyScreenReady();\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.entityData.value = cloneDeep(res);\r\n this.refreshGrid();\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n this.changeDetectorRef.detectChanges();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n }\r\n\r\n private reset() {\r\n this.entityData.restore();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData) {\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n\r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': !pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': pannel && this.isAddForm,\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Fleet Name is required\r\n \r\n \r\n Fleet Name cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n Vehicles\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n Drivers\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity } from \"@app/app.model\";\r\n\r\nexport class FleetList {\r\n Id: number;\r\n Name: string;\r\n NumberOfAssignedVehicles: number;\r\n NumberOfAssignedDrivers: number;\r\n}\r\n\r\nexport class Fleet {\r\n Id: number;\r\n IsNew: boolean;\r\n Name: string;\r\n AssignedDrivers: any;\r\n AssignedVehicles: any;\r\n UnassignedDrivers: any;\r\n UnassignedVehicles: any;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class FleetManagementInterface implements EntityInterface {\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: FleetList[]) => void;\r\n\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Entity } from '@app/app.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { FleetList, Fleet, FleetManagementInterface } from './fleet-management.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FleetManagementService implements FleetManagementInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n\r\n save: (data: Entity) => Observable;\r\n getEntity(param: any): Observable {\r\n return this._http.get(e.endpoint.settings.fleet + \"/\" + param.Id, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n notifyRetrieved(data: FleetList[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.settings.fleet, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.settings.fleet,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.settings.fleet + \"/\" + param.Id, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","import {ChangeDetectorRef, Component, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { Subject, forkJoin } from 'rxjs';\r\nimport { Modules, ModulesInterface } from './modules.model';\r\nimport { NgForm } from '@angular/forms';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { AppService } from '@app/app.service';\r\nimport { ModulesService } from './modules.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'facnm-modules',\r\n templateUrl: './modules.component.html',\r\n styleUrls: ['./modules.component.scss'],\r\n providers: [\r\n {\r\n provide: ModulesInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new ModulesService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\n\r\nexport class ModulesComponent implements OnInit, AfterViewInit {\r\n private unsubscribe$ = new Subject();\r\n entityName = 'Modules';\r\n modules: Modules[];\r\n modulesOriginal: Modules[];\r\n errorsHeight: number = 0;\r\n\r\n constructor(private modules$: ModulesInterface, private actions$: ActionsService, private errors$: ErrorsService, private app$: AppService, private changeDetectorRef: ChangeDetectorRef) {\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe(errors => {\r\n errors ? this.errorsHeight = 50 : this.errorsHeight = 0;\r\n this.resizeScreenContent();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.app$.loginUserInfo.subscribe((res: any) => {\r\n if (!res.IsSysAdmin) {\r\n this.actions$.notifyEntityCustomAction({ type: 'warning', title: 'Error!', message: 'You do not have the access for this page.' });\r\n this.app$.notifyScreenReady();\r\n this.app$.redirectTo('home');\r\n }\r\n });\r\n\r\n forkJoin(\r\n this.modules$.getList()\r\n ).subscribe(multipleDataMapped => {\r\n this.modulesOriginal = multipleDataMapped[0];\r\n this.modules = cloneDeep(this.modulesOriginal);\r\n this.app$.notifyScreenReady();\r\n this.resizeScreenContent();\r\n }, (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n });\r\n }\r\n\r\n onChangeModule(module: Modules) {\r\n module.invalid = false;\r\n module.modified = this.modulesOriginal.find(c => c.ModuleID == module.ModuleID).Enabled != module.Enabled;\r\n }\r\n\r\n saveModule(module: Modules) {\r\n this.app$.notifyScreenBusy();\r\n this.errors$.clearErrors();\r\n this.modules$.save(module).subscribe(() => {\r\n this.modulesOriginal.find(c => c.ModuleID == module.ModuleID).Enabled = module.Enabled;\r\n module.modified = false;\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: 'Saved Module ' + ' - ' + module.ModuleName });\r\n this.app$.notifyScreenReady();\r\n }, (errorNetwork) => {\r\n module.invalid = true;\r\n this.errors$.handleServerErrors(errorNetwork);\r\n });\r\n }\r\n\r\n resetModule(module: Modules) {\r\n module.Enabled = this.modulesOriginal.find(c => c.ModuleID == module.ModuleID).Enabled;\r\n module.modified = false;\r\n module.invalid = false;\r\n this.errors$.clearErrors();\r\n }\r\n\r\n onResize(e): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.resizeScreenContent();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 100 - this.errorsHeight + 'px';\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Module IdModule NameEnabled
\r\n \r\n {{ module.ModuleID }}\r\n \r\n \r\n {{ module.ModuleName }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport class Modules {\r\n ModuleID: string;\r\n ModuleName: string;\r\n Enabled: boolean;\r\n modified: boolean;\r\n invalid: boolean;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class ModulesInterface {\r\n save: (data: Modules) => Observable;\r\n getList: () => Observable;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { ModulesInterface, Modules } from './modules.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModulesService implements ModulesInterface {\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { } \r\n save(data: Modules): Observable {\r\n return this._http.put(\r\n e.endpoint.settings.modules + '/save',\r\n data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.settings.modules, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Entity } from '@app/app.model';\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { PaymentTermInterface, PaymentTerm } from './payment-term.model';\r\nimport { PaymentTermService } from './payment-term.service';\r\n\r\n@Component({\r\n selector: 'facnm-payment-term',\r\n templateUrl: './payment-term.component.html',\r\n styleUrls: ['./payment-term.component.scss'],\r\n providers: [\r\n {\r\n provide: PaymentTermInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new PaymentTermService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class PaymentTermComponent implements OnInit {\r\n\r\n constructor(\r\n private paymentTerm$: PaymentTermInterface,\r\n private actions$: ActionsService,\r\n private errors$: ErrorsService,\r\n private app$: AppService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n\r\n private unsubscribe$ = new Subject();\r\n gridData: ArrayStore;\r\n isAddForm = 0;\r\n entityName = 'Payment Terms';\r\n addEntityName = 'Payment Term';\r\n entityData: Entity;\r\n newEntityData: PaymentTerm;\r\n newEntity: any;\r\n companyList: any[];\r\n paymentTermsOptionList: any[];\r\n selectedCompany: 0;\r\n errorList = [];\r\n originalId = -1;\r\n\r\n ngOnInit(): void {\r\n this.actions();\r\n this.app$.setScreenTitle(this.entityName);\r\n forkJoin({\r\n newEntity: this.paymentTerm$.getNewEntity(),\r\n companyList: this.paymentTerm$.getCompanyList(),\r\n paymentTermsOptionList: this.paymentTerm$.getPaymentTermOptionList(),\r\n }).subscribe(\r\n res => {\r\n this.newEntityData = res['newEntity'];\r\n this.companyList = res['companyList'];\r\n this.paymentTermsOptionList = res['paymentTermsOptionList'];\r\n if (this.companyList.length > 0) {\r\n this.selectedCompany = this.companyList[0].Id;\r\n }\r\n this.getList();\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n actions() {\r\n this.paymentTerm$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.gridData = new ArrayStore({\r\n data: data,\r\n key: [\"Id\", \"CompanyId\"]\r\n });\r\n }\r\n });\r\n\r\n this.actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n this.actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n this.actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n this.actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n this.actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n this.actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n this.errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n getList() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n if (this.selectedCompany != null && this.selectedCompany != undefined && this.selectedCompany > 0) {\r\n this.paymentTerm$.getList(this.selectedCompany).subscribe(listWithCreated => {\r\n this.paymentTerm$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n else {\r\n this.addNewEntity();\r\n }\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n\r\n validateForm() {\r\n this.clearErrors();\r\n var vallidateValue = false;\r\n if (this.entityData.value.DirectDebit && !this.entityData.value.Invoice) {\r\n this.errorList.push(\"'Payment by bank transfer' must be used with 'Invoice' only.\");\r\n vallidateValue = true;\r\n }\r\n if (this.entityData.value.Prepayment && !this.entityData.value.Invoice) {\r\n this.errorList.push(\"'Prepayment' must be used with 'Invoice' only.\");\r\n vallidateValue = true;\r\n }\r\n if (this.entityData.value.DeliveryNoteWithPrices && !this.entityData.value.DeliveryNote) {\r\n this.errorList.push(\"'With price' must be used with 'Delivery Note' only.\");\r\n vallidateValue = true;\r\n }\r\n if (this.entityData.value.OmitAddress && (!this.entityData.value.DeliveryNote && !this.entityData.value.Invoice)) {\r\n this.errorList.push(\"'Omit delivery address' must be used with 'Invoice' or 'Delivery Note' only.\");\r\n vallidateValue = true;\r\n }\r\n return vallidateValue;\r\n }\r\n\r\n clearErrors() {\r\n this.errorList = [];\r\n }\r\n\r\n hasErrorList() {\r\n if (this.errorList != undefined) {\r\n return (this.errorList.length > 0) ? true : false;\r\n }\r\n return false;\r\n }\r\n\r\n create(isSave: boolean) {\r\n if (!this.validateForm()) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n if (this.originalId == undefined || this.originalId == null)\r\n this.originalId = this.entityData.value.Id;\r\n this.entityData.value.CompanyId = this.selectedCompany;\r\n let param = {\r\n data: this.entityData,\r\n originalId: this.originalId,\r\n };\r\n this.paymentTerm$.create(param).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deSelectEntity();\r\n this.getList();\r\n this.refreshGrid();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n\r\n private deleteConfirm() {\r\n let param = {\r\n Id: this.entityData.value.Id,\r\n CompanyId: this.selectedCompany,\r\n };\r\n this.paymentTerm$.delete(param).subscribe(\r\n (okDelete) => {\r\n this.cancel();\r\n this.getList();\r\n this.actions$.notifyDeleted();\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.addEntityName);\r\n this.entityData = new Entity();\r\n this.entityData.value = cloneDeep(this.newEntityData);\r\n this.entityData.created = true;\r\n this.isAddForm = 1;\r\n this.changeDetectorRef.detectChanges();\r\n this.clearErrors();\r\n }\r\n\r\n onContentReadyGroup(e) {\r\n this.dataGrid.noDataText = this.dataGrid.instance.totalCount() ? '' : \"No Payment Terms Found\";\r\n }\r\n\r\n private selectEntity(key: any) {\r\n this.clearErrors();\r\n this.app$.notifyScreenBusy();\r\n this.originalId = key.Id;\r\n this.paymentTerm$.getEntity(key).subscribe((res: any) => {\r\n this.entityData = new Entity();\r\n this.entityData.key = key;\r\n this.entityData.value = cloneDeep(res);\r\n this.app$.notifyScreenReady();\r\n this.isAddForm = 0;\r\n this.changeDetectorRef.detectChanges();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n refreshGrid() {\r\n this.dataGrid.instance.refresh();\r\n }\r\n\r\n private deSelectEntity() {\r\n this.dataGrid.instance.deselectRows(this.entityData.key);\r\n this.entityData.key = undefined;\r\n }\r\n\r\n private reset() {\r\n this.entityData.restore();\r\n this.clearErrors();\r\n }\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deSelectEntity();\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onRowClick($clikedRow: { key: any; }) {\r\n this.app$.setScreenTitle(this.entityName);\r\n if (!this.entityData) {\r\n this.entityData = new Entity();\r\n this.entityData.key = undefined;\r\n }\r\n if (JSON.stringify(this.entityData.key) === JSON.stringify($clikedRow.key)) {\r\n this.deSelectEntity();\r\n }\r\n else {\r\n this.selectEntity($clikedRow.key);\r\n }\r\n }\r\n\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control)?.errors;\r\n }\r\n\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - 75);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
Company
\r\n
\r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Fix the below validations!\">\r\n
    \r\n
  • {{ errorL }}
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Payment Term ID\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Payment Term ID is required\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n Select Options\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity } from \"@app/app.model\";\r\n\r\nexport class PaymentTermList {\r\n Id: number;\r\n CompanyId: number;\r\n Name: string;\r\n}\r\n\r\nexport class PaymentTerm {\r\n Cash: boolean;\r\n CashCard: boolean;\r\n Cheque: boolean;\r\n CompanyId: 0\r\n CreditCard: boolean;\r\n DeliveryNote: boolean;\r\n DeliveryNoteWithPrices: boolean;\r\n DirectDebit: boolean;\r\n Id: number;\r\n Invoice: boolean;\r\n OmitAddress: boolean;\r\n Option: number;\r\n OptionEnabled: boolean;\r\n Prepayment: boolean;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class PaymentTermInterface implements EntityInterface {\r\n create: (data: any) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: (CompanyId: number) => Observable;\r\n getEntity: (key: any) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: any[]) => void;\r\n getNewEntity: () => Observable;\r\n getCompanyList: () => Observable;\r\n getPaymentTermOptionList: () => Observable;\r\n\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Entity } from '@app/app.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { PaymentTerm, PaymentTermInterface, PaymentTermList } from './payment-term.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PaymentTermService implements PaymentTermInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n\r\n save: (data: Entity) => Observable;\r\n getEntity(param: any) {\r\n return this._http.get(e.endpoint.settings.paymentTerms + \"/\" + param.CompanyId + \"/\" + param.Id, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n notifyRetrieved(data: PaymentTermList[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n getCompanyList() {\r\n return this._http.get(e.endpoint.company + '/dropdown/0', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n getPaymentTermOptionList() {\r\n return this._http.get(e.endpoint.settings.paymentTerms + '/paymenttermoption', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n getList(companyId: number): Observable {\r\n return this._http.get(e.endpoint.settings.paymentTerms + \"/paymentterms/\" + companyId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n create(data: any): Observable {\r\n return this._http.put(\r\n e.endpoint.settings.paymentTerms + \"/\" + data.originalId,\r\n data.data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(param: any): Observable {\r\n this.header['responseType'] = 'text/plain';\r\n return this._http.delete(e.endpoint.settings.paymentTerms + \"/\" + param.CompanyId + \"/\" + param.Id, {\r\n headers: this.header,\r\n responseType: \"text\"\r\n },).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getNewEntity() {\r\n return this._http.get(e.endpoint.settings.paymentTerms + '/newpaymentterm', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n}\r\n","import { Component, OnInit, Input, EventEmitter, Output, ViewChild, ElementRef, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { Subject, forkJoin } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { AppService } from '@app/app.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { PrintTemplate, PrintTemplatesInterface, PrintTemplateEditor, PrintTemplateTest, SaleTemplateTest, LoadingTemplateTest, SafetyCheckTemplateTest, SaleProtocolTemplateTest, AssessmentTemplateTest, TransportDocumentTemplateTest, PrintTemplateLog, DeliveryAuthorizationDocumentTemplateTest } from './print-templates.model';\r\n\r\n\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { PrintTemplatesService } from './print-templates.service';\r\nimport { PrintTemplatesEditService } from './print-templates-edit.service';\r\nimport { takeUntil, debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\r\n\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { Entity, Enum } from '@app/app.model';\r\n\r\nimport { SharedService } from '@app/_shared/shared.service';\r\nimport { Company, Device, ServerError } from '@app/_shared/shared.model';\r\n\r\nimport { find, cloneDeep } from 'lodash';\r\n\r\nimport { DxDataGridModule, DxDropDownBoxComponent } from 'devextreme-angular';\r\nimport { DateRange } from '@pdi/platform-angular-template';\r\n\r\n\r\n@Component({\r\n selector: 'facnm-print-templates-edit',\r\n templateUrl: './print-templates-edit.component.html',\r\n styleUrls: ['./print-templates-edit.component.scss'],\r\n providers: [\r\n {\r\n provide: PrintTemplatesInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new PrintTemplatesService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n },\r\n PrintTemplatesEditService\r\n ]\r\n})\r\nexport class PrintTemplatesEditComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n animation: any;\r\n shadingColor: any;\r\n errorsHeight: number;\r\n\r\n @Input() printTemplate: PrintTemplate;\r\n @Input() companyId: number;\r\n @Output() onDone = new EventEmitter();\r\n\r\n companies: Company[];\r\n devices: Device[];\r\n device: any;\r\n devicesStore: ArrayStore;\r\n currentDeviceId: number;\r\n testDataDeviceId: number;\r\n\r\n printTemplateContent: string;\r\n printTemplateEditor: PrintTemplateEditor;\r\n printTemplateContentCopy: string;\r\n printTemplateContentModified: boolean;\r\n\r\n templateTypes: Enum[];\r\n templateTypesReduced: Enum[];\r\n safetyGroups: Enum[];\r\n safetyGroupsReduced: Enum[];\r\n isTourSaleProtocol: boolean;\r\n\r\n searchDateFrom_PrintTemplateTestData: Date = new Date();\r\n searchDateTo_PrintTemplateTestData: Date = new Date();\r\n\r\n printTemplateEditSection: any;\r\n\r\n dataGridTestData: any;\r\n templateTestEntity: Entity;\r\n testDataStore: ArrayStore;\r\n\r\n dataGridLogData: any;\r\n logDataStore: ArrayStore;\r\n okPrintTest: boolean;\r\n PrintErrors: any[] = [];\r\n\r\n dataGridAttributeData: any;\r\n printSettingsData:any;\r\n printSettingsDataCopy:any;\r\n attributeDataStore: ArrayStore;\r\n attributeDataSource: ArrayStore;\r\n isSaveDisabled: boolean = true;\r\n dateFormat = '';\r\n\r\n enabledRangeFrom: DateRange = {\r\n from: new Date(this.searchDateTo_PrintTemplateTestData.setDate(this.searchDateFrom_PrintTemplateTestData.getDate()-7)),\r\n };\r\n enabledRangeTo: DateRange = {\r\n to: new Date(this.searchDateFrom_PrintTemplateTestData),\r\n };\r\n\r\n constructor(private printTemplates$: PrintTemplatesInterface, private printTemplatesEdit$: PrintTemplatesEditService, private errors$: ErrorsService, private app$: AppService, private actions$: ActionsService, private shared$: SharedService) {\r\n this.searchDateFrom_PrintTemplateTestData.setDate(this.searchDateFrom_PrintTemplateTestData.getDate() - 7);\r\n this.searchDateTo_PrintTemplateTestData = new Date();\r\n this.currentDeviceId = 0;\r\n\r\n this.printTemplateEditSection = 'EDIT';\r\n\r\n this.animation = app$.getAnimationSettings();\r\n this.shadingColor = app$.getShadingColor();\r\n\r\n this.printTemplateEditor = new PrintTemplateEditor();\r\n\r\n app$.ScreenReady.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.errorsHeight = 0);\r\n \r\n this.dateFormat = app$.dateFormat;\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe(errors => {\r\n this.errorsHeight = errors == null || errors == false ? 0 : 70;\r\n this.resizeScreenContent();\r\n });\r\n\r\n this.printTemplateContentSubject.pipe(\r\n debounceTime(1000),\r\n distinctUntilChanged())\r\n .subscribe(content => {\r\n this.printTemplatesEdit$.updateVerticalLines(content);\r\n this.editorView.codeMirror.refresh();\r\n });\r\n\r\n \r\n\r\n this.printTemplates$.TestDataRetrieved.pipe(\r\n takeUntil(this.unsubscribe$),\r\n map(data => {\r\n\r\n if (data) {\r\n\r\n let templateTestEntity = [];\r\n let key;\r\n\r\n if (this.isSaleTemplate() || this.isCustomerDocumentTemplate()) {\r\n\r\n key = ['Id'];\r\n\r\n let testDataTemplateTypes: number[] = [];\r\n\r\n data.forEach((s: SaleTemplateTest, i) => {\r\n\r\n templateTestEntity.push(s);\r\n\r\n if (!testDataTemplateTypes.includes(s.TemplateTypeId)) {\r\n testDataTemplateTypes.push(s.TemplateTypeId);\r\n }\r\n });\r\n\r\n this.templateTypesReduced = this.templateTypes.filter(t => testDataTemplateTypes.includes(t.id));\r\n }\r\n\r\n else if (this.isLoadingTemplate()) {\r\n\r\n key = ['Id', 'TourId'];\r\n\r\n data.forEach((s: LoadingTemplateTest, i) => {\r\n\r\n templateTestEntity.push(s);\r\n });\r\n }\r\n\r\n else if (this.isSafetyCheckTemplate()) {\r\n\r\n let testDataSafetyGroups = [];\r\n\r\n key = ['Id', 'SessionId'];\r\n\r\n data.forEach((s: SafetyCheckTemplateTest, i) => {\r\n\r\n templateTestEntity.push(s);\r\n\r\n if (!testDataSafetyGroups.includes(s.SafetyGroupId)) {\r\n testDataSafetyGroups.push(s.SafetyGroupId);\r\n }\r\n });\r\n\r\n this.safetyGroupsReduced = this.safetyGroups.filter(t => testDataSafetyGroups.includes(t.id));\r\n }\r\n\r\n else if (this.isSaleProtocolTemplate()) {\r\n\r\n key = ['Id'];\r\n\r\n data.forEach((s: SaleProtocolTemplateTest, i) => {\r\n\r\n templateTestEntity.push(s);\r\n });\r\n\r\n this.isTourSaleProtocol = data.every((t: SaleProtocolTemplateTest) => t.TourId != null);\r\n }\r\n\r\n else if (this.isAssessmentTemplate()) {\r\n\r\n key = ['Id', 'SessionId'];\r\n\r\n data.forEach((s: AssessmentTemplateTest, i) => {\r\n\r\n templateTestEntity.push(s);\r\n });\r\n }\r\n\r\n else if (this.isDeliveryAuthorizationDocumentTemplate()) {\r\n\r\n key = ['Id', 'SessionId'];\r\n\r\n data.forEach((s: DeliveryAuthorizationDocumentTemplateTest, i) => {\r\n\r\n templateTestEntity.push(s);\r\n });\r\n }\r\n\r\n return { templateTestEntity, key };\r\n }\r\n }))\r\n\r\n .subscribe((testDataMapped) => {\r\n\r\n if (testDataMapped) {\r\n\r\n this.testDataStore = new ArrayStore({\r\n data: testDataMapped.templateTestEntity,\r\n key: testDataMapped.key\r\n });\r\n if (testDataMapped.templateTestEntity.length == 0) {\r\n this.dataGridTestData.instance().option('noDataText', 'No test data');\r\n }\r\n else {\r\n\r\n this.testDataDeviceId = this.currentDeviceId;\r\n\r\n this.dataGridTestData.instance().option('noDataText', '');\r\n }\r\n }\r\n });\r\n\r\n\r\n\r\n\r\n this.printTemplates$.LogDataRetrieved.pipe(takeUntil(this.unsubscribe$))\r\n\r\n .subscribe((logsData) => {\r\n \r\n if (logsData) {\r\n\r\n this.logDataStore = new ArrayStore({\r\n data: logsData,\r\n key: ['LogDate']\r\n });\r\n if (logsData.length == 0) {\r\n this.dataGridLogData.instance().option('noDataText', 'No log data');\r\n }\r\n else {\r\n this.dataGridLogData.instance().option('noDataText', '');\r\n }\r\n }\r\n });\r\n\r\n \r\n this.printTemplates$.AttributeDataRetrieved.pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((printSettings) => {\r\n if(printSettings){\r\n this.printSettingsData = printSettings;\r\n this.printSettingsDataCopy = printSettings;\r\n if (this.printSettingsData.KeywordAttributes) {\r\n this.attributeDataStore = new ArrayStore({\r\n data: this.printSettingsData.KeywordAttributes,\r\n key: ['Keyword']\r\n });\r\n if (this.printSettingsData.KeywordAttributes.length == 0) {\r\n this.dataGridAttributeData.instance().option('noDataText', 'No Attribute Found');\r\n }\r\n else {\r\n this.dataGridAttributeData.instance().option('noDataText', '');\r\n }\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n forkJoin(\r\n\r\n this.printTemplates$.getKeywords(),\r\n this.printTemplates$.getLineLength(),\r\n this.shared$.getCompanyList(),\r\n this.shared$.getDeviceList(),\r\n this.printTemplates$.getTemplatesTypes(),\r\n this.shared$.getSafetyGroups()\r\n\r\n ).subscribe(\r\n multipleData => {\r\n\r\n this.companies = multipleData[2];\r\n this.devices = multipleData[3];\r\n this.templateTypes = multipleData[4];\r\n this.safetyGroups = multipleData[5];\r\n\r\n this.devicesStore = new ArrayStore({\r\n data: this.devices,\r\n key: 'Id'\r\n });\r\n\r\n this.printTemplatesEdit$.defineCodeMirrorMode(multipleData[0]);\r\n this.printTemplatesEdit$.setVerticalBaseLine(multipleData[1] || 80);\r\n\r\n this.printTemplateEditor.options = this.printTemplatesEdit$.getCodeMirrorOptions();\r\n\r\n this.printTemplates$.DownloadPrinterForm(this.printTemplate, false).subscribe(\r\n\r\n (okDownloadShadow) => {\r\n\r\n this.printTemplateContent = okDownloadShadow;\r\n this.printTemplateContentCopy = okDownloadShadow;\r\n\r\n this.printTemplatesEdit$.updateVerticalLines(this.printTemplateContent);\r\n\r\n this.app$.notifyScreenReady();\r\n\r\n },\r\n\r\n (errorDownloadShadow) => {\r\n this.errors$.handleServerErrors(errorDownloadShadow);\r\n }\r\n );\r\n\r\n },\r\n\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n\r\n }\r\n\r\n\r\n @ViewChild('editorView') editorView;\r\n cursorActivity(e) {\r\n\r\n if (this.editorView)\r\n this.printTemplateEditor.cursor = this.editorView.codeMirror.getCursor();\r\n }\r\n\r\n printTemplateContentSubject: Subject = new Subject();\r\n onChangePrintTemplateContent(contentChanged) {\r\n if (contentChanged && this.printTemplateContent == this.printTemplateContentCopy) {\r\n this.printTemplateContentSubject.next(contentChanged);\r\n this.isSaveDisabled = false;\r\n }\r\n else if(this.printSettingsData && (contentChanged == 'Grid'||\r\n (contentChanged == 'Attribute' && \r\n (this.printSettingsData.TopBorder == this.printSettingsDataCopy.TopBorder || \r\n this.printSettingsData.BottomBorder == this.printSettingsDataCopy.BottomBorder ||\r\n this.printSettingsData.PrintPaymentSlip == this.printSettingsDataCopy.PrintPaymentSlip)))) {\r\n this.isSaveDisabled = false;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.resizeScreenContent();\r\n }\r\n\r\n getCompanyName() {\r\n\r\n if (this.companyId) {\r\n let company = find(this.companies, c => c.Id == this.companyId);\r\n\r\n if (company)\r\n return company.name;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n\r\n onContentReady_sections(e) {\r\n\r\n e.component.selectItem(0);\r\n }\r\n\r\n switchSection(e) {\r\n\r\n this.errors$.clearErrors();\r\n\r\n this.printTemplateEditSection = e.itemData.text;\r\n\r\n if (this.printTemplateEditSection == 'LOG') {\r\n \r\n this.app$.notifyScreenBusy();\r\n this.printTemplates$.getLogData(this.printTemplate).subscribe(\r\n\r\n (okLogData) => {\r\n\r\n this.printTemplates$.notifyLogDataRetrieved(okLogData);\r\n this.app$.notifyScreenReady();\r\n },\r\n\r\n (errorLogData) => {\r\n this.errors$.handleServerErrors(errorLogData);\r\n }\r\n );\r\n }\r\n\r\n if(this.printTemplateEditSection == 'ATTRIBUTES'){\r\n this.app$.notifyScreenBusy();\r\n this.printTemplates$.getAttributeData(this.printTemplate).subscribe(\r\n (success) =>{\r\n this.printTemplates$.notifyAttributeData(success);\r\n this.app$.notifyScreenReady();\r\n },\r\n (error) => {\r\n this.errors$.handleServerErrors(error);\r\n }\r\n );\r\n }\r\n\r\n this.resizeScreenContent();\r\n\r\n setTimeout(() => {\r\n\r\n if (this.dataGridTestData && this.templateTestEntity && this.templateTestEntity.key) {\r\n\r\n this.dataGridTestData.instance().selectRows([this.templateTestEntity.key]);\r\n //this.dataGridTestData.instance().navigateToRow([this.templateTestEntity.key]); //REVIEW buggy, will jump to the last grid page\r\n }\r\n }, 1000);\r\n }\r\n\r\n\r\n onRowClick_TestData($clikedRow) {\r\n\r\n this.okPrintTest = undefined;\r\n\r\n if (!this.templateTestEntity)\r\n this.templateTestEntity = new Entity();\r\n\r\n if (JSON.stringify(this.templateTestEntity.key) === JSON.stringify($clikedRow.key)) {\r\n this.deselectTestData();\r\n }\r\n else {\r\n this.selectTestData($clikedRow.key);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n onInitialized_TestData(e) {\r\n\r\n this.dataGridTestData = e.component.instance();\r\n\r\n this.resizeScreenContent();\r\n }\r\n\r\n\r\n\r\n onInitialized_LogData(e) {\r\n\r\n this.dataGridLogData = e.component.instance();\r\n\r\n this.resizeScreenContent();\r\n }\r\n\r\n onInitialized_Attribute(e) {\r\n this.dataGridAttributeData = e.component.instance();\r\n\r\n this.resizeScreenContent();\r\n }\r\n\r\n calculateLogDataChanges(rowData: PrintTemplateLog) {\r\n\r\n return (rowData.IsLive ? ' Published. ' : '') +\r\n (rowData.InsertsNo > 0 ? rowData.InsertsNo + ' Added. ' : '') +\r\n (rowData.UpdatesNo > 0 ? rowData.UpdatesNo + ' Updated. ' : '') +\r\n (rowData.DeletesNo > 0 ? rowData.DeletesNo + ' Deleted.' : '');\r\n }\r\n\r\n\r\n saveEditedTemplate() {\r\n\r\n this.app$.notifyScreenBusy();\r\n\r\n this.printTemplates$.UploadPrinterForm(new File([this.printTemplateContent], ''), this.printTemplate, this.printSettingsData).subscribe(\r\n (okUploadShadow) => {\r\n\r\n this.onDone.emit();\r\n this.actions$.notifyEntityCustomAction({ title: 'Uploaded', message: 'The print template was uploaded to shadow' });\r\n },\r\n\r\n (errorUploadShadow) => {\r\n this.errors$.handleServerErrors(errorUploadShadow);\r\n }\r\n );\r\n }\r\n\r\n search() {\r\n\r\n this.okPrintTest = undefined;\r\n\r\n this.deselectTestData();\r\n this.errors$.clearErrors()\r\n\r\n this.app$.notifyScreenBusy();\r\n\r\n this.printTemplates$.getTestData(this.printTemplate.Id, this.companyId, this.currentDeviceId, this.searchDateFrom_PrintTemplateTestData, this.searchDateTo_PrintTemplateTestData).subscribe(templateTestEntity => {\r\n\r\n this.app$.notifyScreenReady();\r\n\r\n this.printTemplates$.notifyTestDataRetrieved(templateTestEntity.TemplateTestEntity);\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n\r\n test() {\r\n\r\n this.okPrintTest = undefined;\r\n\r\n this.errors$.clearErrors()\r\n\r\n this.app$.notifyScreenBusy();\r\n\r\n if (this.isTransportDocumentTemplate() || this.isCollectiveSettlementTemplate() || this.isTourPaperTemplate()) {\r\n (this.templateTestEntity.value as TransportDocumentTemplateTest).DateFrom = this.searchDateFrom_PrintTemplateTestData;\r\n (this.templateTestEntity.value as TransportDocumentTemplateTest).DateTo = this.searchDateTo_PrintTemplateTestData;\r\n\r\n this.testDataDeviceId = this.templateTestEntity.key;\r\n }\r\n\r\n else if (this.isCashBalanceTemplate()) {\r\n\r\n this.testDataDeviceId = this.templateTestEntity.key;\r\n }\r\n\r\n this.printTemplates$.TestPrinterForm(this.printTemplateContent, this.templateTestEntity.value, this.testDataDeviceId, this.printTemplate.Id).subscribe(\r\n (okTest: Blob) => {\r\n\r\n this.okPrintTest = true;\r\n\r\n this.app$.notifyScreenReady();\r\n\r\n var pdf = URL.createObjectURL(okTest);\r\n\r\n window.open(pdf, '_blank');\r\n\r\n //saveAs(okTest, 'print-template-test.pdf'); REVIEW popup above may be blocked by the browser\r\n },\r\n\r\n (errorTest) => {\r\n\r\n this.okPrintTest = false;\r\n\r\n if (errorTest.size && errorTest.type && errorTest.type == \"application/json\") {\r\n\r\n const blobReader = new FileReader();\r\n\r\n blobReader.addEventListener('loadend', (e) => {\r\n\r\n let blobError = new ServerError();\r\n\r\n let httpErrorResponseJson = JSON.parse((e.srcElement as any).result);\r\n blobError.message = httpErrorResponseJson.Message;\r\n this.PrintErrors = httpErrorResponseJson.PrintErrors;\r\n\r\n this.errors$.handleServerErrors(blobError);\r\n });\r\n\r\n blobReader.readAsText(errorTest);\r\n }\r\n else this.errors$.handleServerErrors(errorTest);\r\n }\r\n );\r\n\r\n }\r\n\r\n\r\n cancelEditTemplate() {\r\n this.errors$.clearErrors()\r\n this.onDone.emit();\r\n }\r\n\r\n\r\n getSelectedDeviceName = (device: Device) => device ? device.Name : '';\r\n\r\n @ViewChild('dropdownDevices') dropdownDevices: DxDropDownBoxComponent;\r\n onDevicesRowClick($event) {\r\n\r\n this.currentDeviceId = $event.key;\r\n this.dropdownDevices.instance.close();\r\n\r\n if (this.isTransportDocumentTemplate() || this.isTourPaperTemplate() || this.isCollectiveSettlementTemplate() || this.isCashBalanceTemplate()) {\r\n\r\n this.templateTestEntity = new Entity();\r\n this.templateTestEntity.key = this.currentDeviceId;\r\n }\r\n }\r\n\r\n\r\n isSaleTemplate = () => [1, 2, 3, 4, 5, 6, 7, 8, 11].includes(this.printTemplate.Id);\r\n\r\n isQuittanceTemplate = () => [9].includes(this.printTemplate.Id);\r\n\r\n isTransportDocumentTemplate = () => [10].includes(this.printTemplate.Id);\r\n\r\n isTourPaperTemplate = () => [14].includes(this.printTemplate.Id);\r\n\r\n isAssessmentTemplate = () => [15].includes(this.printTemplate.Id);\r\n\r\n isSafetyCheckTemplate = () => [16].includes(this.printTemplate.Id);\r\n\r\n isCustomerDocumentTemplate = () => [17].includes(this.printTemplate.Id);\r\n\r\n isLoadingTemplate = () => [18, 19].includes(this.printTemplate.Id);\r\n\r\n isCollectiveSettlementTemplate = () => [50].includes(this.printTemplate.Id);\r\n\r\n isSaleProtocolTemplate = () => [51].includes(this.printTemplate.Id);\r\n\r\n isCashBalanceTemplate = () => [52].includes(this.printTemplate.Id);\r\n\r\n isDeliveryAuthorizationDocumentTemplate = () => [20].includes(this.printTemplate.Id);\r\n\r\n canTestTemplate = () => this.isSaleTemplate() || this.isTransportDocumentTemplate() || this.isTourPaperTemplate() || this.isAssessmentTemplate() || this.isSafetyCheckTemplate() || this.isCustomerDocumentTemplate() || this.isLoadingTemplate() || this.isCollectiveSettlementTemplate() || this.isSaleProtocolTemplate() || this.isCashBalanceTemplate() || this.isDeliveryAuthorizationDocumentTemplate();\r\n\r\n canSearchTemplateData = () => this.isSaleTemplate() || this.isAssessmentTemplate() || this.isSafetyCheckTemplate() || this.isCustomerDocumentTemplate() || this.isLoadingTemplate() || this.isSaleProtocolTemplate() || this.isDeliveryAuthorizationDocumentTemplate();\r\n\r\n canSearchTemplateDataWithDateRange = () => !this.isCashBalanceTemplate();\r\n\r\n isEmptySearchFilter = () => this.currentDeviceId == 0;\r\n\r\n isEmptyTemplateData = () => (!this.templateTestEntity || !this.templateTestEntity.key);\r\n\r\n\r\n\r\n private selectTestData(testDataKey: any) {\r\n\r\n this.actions$.notifyEntityBusy();\r\n\r\n this.templateTestEntity = new Entity();\r\n this.templateTestEntity.key = testDataKey;\r\n\r\n this.testDataStore.byKey(testDataKey)\r\n .then(s => {\r\n\r\n this.templateTestEntity.value = cloneDeep(s);\r\n\r\n this.app$.notifyScreenReady()\r\n });\r\n\r\n }\r\n\r\n private deselectTestData() {\r\n\r\n if (this.templateTestEntity && this.templateTestEntity.key) {\r\n\r\n this.dataGridTestData.instance().deselectRows(this.templateTestEntity.key);\r\n this.templateTestEntity.key = undefined;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n onResize(e): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n let w = this.screenElement.nativeElement.clientWidth;\r\n\r\n setTimeout(()=>{\r\n this.printTemplateEditor.height = h - 200;\r\n })\r\n\r\n if (this.dataGridTestData) {\r\n\r\n this.dataGridTestData.instance().option('height', h - 205 - this.errorsHeight);\r\n\r\n }\r\n if (this.dataGridLogData) {\r\n\r\n this.dataGridLogData.instance().option('height', h - 202 - this.errorsHeight);\r\n\r\n }\r\n if(this.dataGridAttributeData){\r\n this.dataGridAttributeData.instance().option('height', h - 205 - this.errorsHeight);\r\n }\r\n }\r\n OnloadSearchDateTo_PrintTemplateTestData(toDateValue) {\r\n this.enabledRangeFrom = {\r\n from: new Date(toDateValue)\r\n };\r\n }\r\n OnloadSearchDateFrom_PrintTemplateTestData(fromDateValue) {\r\n this.enabledRangeTo = {\r\n to: new Date(fromDateValue)\r\n };\r\n }\r\n}\r\n","
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n {{section.text}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n template \r\n {{ printTemplate.TemplateName }} |\r\n language \r\n {{ printTemplate.Language == '' ? 'none' : printTemplate.Language }} |\r\n company \r\n company \r\n {{ getCompanyName() }} \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n line \r\n {{printTemplateEditor.cursor.line + 1}} |\r\n Column \r\n {{printTemplateEditor.cursor.ch}} \r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n 0\">\r\n \r\n
\r\n

{{printError}}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n","import CodeMirror from \"codemirror\";\r\n\r\nimport 'codemirror/addon/selection/active-line';\r\nimport 'codemirror/addon/display/rulers';\r\nimport 'codemirror/addon/search/match-highlighter';\r\nimport 'codemirror/addon/edit/matchbrackets';\r\nimport 'codemirror/addon/edit/trailingspace';\r\nimport 'codemirror/addon/mode/simple';\r\nimport 'codemirror/addon/hint/show-hint';\r\n\r\nimport uniq from 'lodash/uniq';\r\nimport { PrintTemplateKeywords, linelenghtKeyword } from \"./print-templates.model\";\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n\r\n\r\n@Injectable()\r\nexport class PrintTemplatesEditService {\r\n\r\n\r\n codeMirror = (CodeMirror as any);\r\n\r\n verticalLine: { defaultLength: number, baseColor: string, additionalColor?: string } = {\r\n baseColor: '#07003D', defaultLength: 80, additionalColor: '#D9D8D6'\r\n };\r\n\r\n codeMirrorOptions = {\r\n lineNumbers: true,\r\n tabSize: 4,\r\n theme: 'base16-light',\r\n mode: 'printTemplate',\r\n styleActiveLine: { nonEmpty: true },\r\n rulers: [{ color: this.verticalLine.baseColor, column: this.verticalLine.defaultLength }],\r\n highlightSelectionMatches: true,\r\n extraKeys: { \"Ctrl-Space\": \"autocomplete\" },\r\n matchBrackets: true,\r\n showTrailingSpace: true,\r\n hint: this.codeMirror.hint.printTemplate\r\n };\r\n\r\n getCodeMirrorOptions() {\r\n\r\n return this.codeMirrorOptions;\r\n }\r\n\r\n setVerticalBaseLine(length: number) {\r\n\r\n this.verticalLine.defaultLength = length;\r\n }\r\n\r\n\r\n updateVerticalLines(templateContent: string) {\r\n\r\n this.codeMirrorOptions.rulers = [{ color: this.verticalLine.baseColor, column: this.verticalLine.defaultLength }];\r\n\r\n let lineLengthsPattern = RegExp(linelenghtKeyword + ':\\\\d+', 'g');\r\n let lineLengths: string[] = templateContent.match(lineLengthsPattern);\r\n if (lineLengths && lineLengths.length > 0) {\r\n let lineLengthsValues: number[] = [];\r\n lineLengths.forEach((l, i) => {\r\n lineLengthsValues.push(Number(l.split(':')[1]));\r\n });\r\n lineLengthsValues.forEach(lineLength => {\r\n\r\n this.codeMirrorOptions.rulers.push({ color: this.verticalLine.additionalColor, column: lineLength });\r\n this.codeMirrorOptions.rulers = uniq(this.codeMirrorOptions.rulers);\r\n });\r\n }\r\n }\r\n\r\n\r\n defineCodeMirrorMode(keywords: PrintTemplateKeywords) {\r\n\r\n let pageParts = keywords.PageParts.reverse().map((k) => '->' + k + '<-').join('|') || '#nothing_found#';\r\n let formatCommands = keywords.FormatCommands.reverse().join('|') || '#nothing_found#';\r\n let parsers = keywords.Parsers.reverse().join('|') || '#nothing_found#';\r\n let tablesAndHashes = keywords.TablesAndHashes.reverse().join('|') || '#nothing_found#';\r\n\r\n this.codeMirror.defineSimpleMode(\"printTemplate\",\r\n {\r\n start: [\r\n {\r\n regex: RegExp('(?:' + pageParts + ')', 'g'),\r\n token: 'pageParts'\r\n },\r\n {\r\n regex: RegExp('(?:^|_)(' + formatCommands + ')(?![a-zA-Z])', 'g'),\r\n token: \"formatCommands\"\r\n },\r\n {\r\n regex: RegExp('(?:^|_)(' + parsers + ')(?![a-zA-Z])', 'g'),\r\n token: \"parsers\"\r\n },\r\n {\r\n regex: /[-+\\/*=<>!%]+/,\r\n token: \"operator\"\r\n },\r\n {\r\n regex: /(?::|;|,|\\(|\\)|\\[|\\])/g,\r\n token: \"atom\"\r\n },\r\n {\r\n regex: RegExp('(?:^|_)(' + tablesAndHashes + ')(?![a-zA-Z])', 'g'),\r\n token: 'tablesAndHashes'\r\n },\r\n {\r\n regex: RegExp('(\\d|_|\\W|\\b)(' + linelenghtKeyword + ')(\\d|_|\\W|\\b)', 'g'),\r\n token: ['', 'linelen', '']\r\n },\r\n {\r\n regex: /_+/g,\r\n token: \"string\"\r\n },\r\n {\r\n regex: /\\d+/g,\r\n token: \"number\"\r\n }\r\n ]\r\n });\r\n\r\n\r\n let dictionary: string[] = [].concat(\r\n keywords.TablesAndHashes,\r\n keywords.Parsers,\r\n keywords.FormatCommands,\r\n keywords.PageParts.map((k) => '->' + k + '<-')\r\n );\r\n\r\n this.codeMirror.hint.printTemplate = function (editor) {\r\n\r\n var cursor = editor.getCursor();\r\n var currentLine = editor.getLine(cursor.line);\r\n var start = cursor.ch;\r\n var end = start;\r\n while (end < currentLine.length && /(?!_|\\(|\\)|\\[|\\]|\\+|>|-|=|\\/|:|,|\\s|;|\\d)[\\S$+]/.test(currentLine.charAt(end)))++end;\r\n while (start && /(?!_|\\(|\\)|\\[|\\]|\\+|-|<|=|\\/|:|,|\\s|;|\\d)[\\S$+]/.test(currentLine.charAt(start - 1)))--start;\r\n var curWord = start != end && currentLine.slice(start, end);\r\n var regex = new RegExp('^' + curWord, 'i');\r\n var result = {\r\n list: (!curWord ? dictionary : dictionary.filter(function (item) {\r\n return item.match(regex) || item.indexOf(curWord) >= 0;\r\n })),\r\n from: CodeMirror.Pos(cursor.line, start),\r\n to: CodeMirror.Pos(cursor.line, end)\r\n };\r\n\r\n return result;\r\n };\r\n }\r\n}","import { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NgForm } from '@angular/forms';\r\n\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { AppService } from '@app/app.service';\r\nimport { Entity, Enum } from '@app/app.model';\r\n\r\n\r\nimport uniq from 'lodash/uniq';\r\nimport find from 'lodash/find';\r\nimport without from 'lodash/without';\r\n\r\n\r\nimport { saveAs } from 'file-saver';\r\n\r\nimport { PrintTemplatesInterface, PrintTemplate, PrintTemplateAttributes } from './print-templates.model';\r\nimport { PrintTemplatesService } from './print-templates.service';\r\n\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { SharedService } from '@app/_shared/shared.service';\r\nimport { Company } from '@app/_shared/shared.model';\r\nimport { dxDataGridHeightAdjustment, makePDIDropDownOptions } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-print-templates',\r\n templateUrl: './print-templates.component.html',\r\n styleUrls: ['./print-templates.component.scss'],\r\n providers: [\r\n {\r\n provide: PrintTemplatesInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new PrintTemplatesService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class PrintTemplatesComponent implements OnInit, OnDestroy {\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n entityName = 'Print Template';\r\n\r\n companies: Company[];\r\n currentCompanyId: number;\r\n currentInUseChanged: boolean;\r\n currentAliasChanged: boolean;\r\n\r\n printTemplate: Entity;\r\n printTemplatesStore: ArrayStore;\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('printTemplatesForm') printTemplatesForm: NgForm;\r\n\r\n deletingLanguagesVisible: boolean;\r\n syncingVisible: boolean;\r\n\r\n clicked_actions: boolean;\r\n\r\n overSyncFromShadow = [];\r\n overRevertTemplate = [];\r\n overDownloadShadow = [];\r\n overUploadShadow = [];\r\n overDownloadLive = [];\r\n overEditTemplate = [];\r\n\r\n allTemplatesLanguages: string[];\r\n allTemplatesNames: PrintTemplate[];\r\n allTemplatesAliases: PrintTemplate[];\r\n templateTypes: Enum[];\r\n\r\n syncingTemplate: PrintTemplate;\r\n syncingIsLive: boolean;\r\n aliasTemplate: PrintTemplate;\r\n\r\n editingTemplate: PrintTemplate;\r\n\r\n animation: any;\r\n shadingColor: any;\r\n currentTemplateChanged: boolean;\r\n companiesOptions: any;\r\n\r\n constructor(private printTemplates$: PrintTemplatesInterface, private actions$: ActionsService, private errors$: ErrorsService, private app$: AppService, private shared$: SharedService) {\r\n\r\n this.animation = app$.getAnimationSettings();\r\n this.shadingColor = app$.getShadingColor();\r\n\r\n printTemplates$.ListRetrieved.pipe(\r\n\r\n map(data => {\r\n if (data) {\r\n data.forEach(pt => {\r\n let templateType = this.templateTypes.filter(t => t.id == pt.Id)[0];\r\n\r\n if (templateType) {\r\n pt.TemplateName = templateType.name;\r\n }\r\n });\r\n }\r\n return data;\r\n }))\r\n\r\n .subscribe(dataAliased => {\r\n if (dataAliased) {\r\n\r\n this.printTemplatesStore = new ArrayStore({\r\n data: dataAliased,\r\n key: ['Id', 'CompanyId']\r\n });\r\n if (dataAliased.length == 0) {\r\n this.dataGrid.noDataText = 'No print templates';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n });\r\n\r\n\r\n actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.save());\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n\r\n if (errors) {\r\n\r\n let entityForm = document.getElementById('entity-form');\r\n\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n forkJoin(\r\n this.shared$.getCompanyList(),\r\n this.printTemplates$.getAliases(),\r\n this.printTemplates$.getTemplatesTypes()\r\n ).subscribe(\r\n multipleData => {\r\n\r\n this.companies = multipleData[0];\r\n this.companiesOptions = makePDIDropDownOptions(multipleData[0],'Id','name');\r\n this.currentCompanyId = this.companies[0].Id;\r\n\r\n this.allTemplatesNames = multipleData[1]?.map(alias=>{\r\n alias.label = alias.Id + ' - ' + alias.TemplateName + ' (' + this.getCompanyName(alias.CompanyId) + ')';\r\n alias.key = alias;\r\n return alias;\r\n })\r\n\r\n this.templateTypes = multipleData[2];\r\n\r\n this.printTemplates$.getList(this.companies[0].Id).subscribe(printTemplatesData => {\r\n this.printTemplates$.notifyRetrieved(printTemplatesData);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n\r\n onCompanyChange(companyId: number) {\r\n if (this.printTemplate)\r\n this.printTemplate.key = undefined;\r\n this.currentCompanyId = companyId;\r\n\r\n this.printTemplates$.getList(this.currentCompanyId).subscribe(printTemplatesData => {\r\n this.printTemplates$.notifyRetrieved(printTemplatesData);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n\r\n getCompanyName(companyId: number) {\r\n\r\n if (companyId) {\r\n let company = find(this.companies, c => c.Id == companyId);\r\n\r\n if (company)\r\n return company.name;\r\n }\r\n }\r\n\r\n\r\n onSelectionChanged($clikedRow) {\r\n\r\n if (!this.printTemplate) {\r\n try {\r\n let keySaved = JSON.parse(localStorage.getItem('print-templates.dataGrid')).selectedRowKeys[0];\r\n if (keySaved) {\r\n this.selectPrintTemplate(keySaved);\r\n }\r\n }\r\n catch{ }\r\n }\r\n }\r\n\r\n\r\n onRowClick($clikedRow) {\r\n\r\n if (!this.clicked_actions) this.app$.setScreenTitle(this.entityName);\r\n\r\n if (!this.printTemplate) {\r\n this.printTemplate = new Entity();\r\n }\r\n if (JSON.stringify(this.printTemplate.key) === JSON.stringify($clikedRow.key)) {\r\n if (!this.clicked_actions) this.deselectPrintTemplate();\r\n }\r\n else {\r\n this.selectPrintTemplate($clikedRow.key);\r\n }\r\n\r\n if (this.clicked_actions) {\r\n this.clicked_actions = false;\r\n }\r\n }\r\n\r\n onCellPrepared($cell) {\r\n\r\n if ($cell.rowType == 'data' && !$cell.data.AnyLivePrinterForms && !$cell.data.AnyShadowPrinterForms && !($cell.data.AliasId > 0 && $cell.data.AliasCompanyId > 0)) {\r\n\r\n if ($cell.column.dataField == 'TemplateName')\r\n $cell.cellElement.style = 'color: rgba(0,0,0,.4); font-style: italic; ' + $cell.cellElement.style;\r\n else if ($cell.column.dataField == 'Id')\r\n $cell.cellElement.style = 'color: rgba(0,0,0,.4); text-align: right; font-style: italic; ' + $cell.cellElement.style;\r\n }\r\n }\r\n\r\n\r\n onCustomLanguageCreating(e) {\r\n\r\n this.allTemplatesLanguages.push(e.text);\r\n }\r\n\r\n onTemplatesLanguagesChanged(e) {\r\n\r\n this.printTemplate.value.AllLanguages = e.value;\r\n\r\n this.printTemplate.value.InUse = (this.printTemplate.value.AllLanguages.length > 0 || (this.printTemplate.value.AliasId > 0 && this.printTemplate.value.AliasCompanyId > 0));\r\n }\r\n\r\n onChangeAlias(alias: PrintTemplate) {\r\n\r\n if (!alias) {\r\n\r\n if (this.currentAliasChanged) {\r\n this.printTemplate.value.AllLanguages = this.printTemplate.original.AllLanguages;\r\n\r\n this.printTemplate.value.AliasCompanyId = this.printTemplate.original.AliasCompanyId;\r\n this.printTemplate.value.AliasId = this.printTemplate.original.AliasId;\r\n this.currentAliasChanged = false;\r\n this.currentInUseChanged = false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n\r\n this.printTemplate.value.AliasCompanyId = 0;\r\n this.printTemplate.value.AliasId = 0;\r\n if (this.printTemplate.value.AllLanguagesOriginal.length == 0) {\r\n this.printTemplate.value.AllLanguages = ['none'];\r\n }\r\n });\r\n this.currentAliasChanged = true;\r\n }\r\n }\r\n else {\r\n this.printTemplate.value.AllLanguages = [];\r\n\r\n this.printTemplate.value.AliasCompanyId = alias.CompanyId;\r\n this.printTemplate.value.AliasId = alias.Id;\r\n this.currentAliasChanged = true;\r\n }\r\n\r\n\r\n\r\n this.printTemplate.value.InUse = (this.printTemplate.value.AllLanguages.length > 0 || (this.printTemplate.value.AliasId > 0 && this.printTemplate.value.AliasCompanyId > 0));\r\n }\r\n\r\n\r\n onInUseChanged(e) {\r\n\r\n this.printTemplate.value.InUse = e.value;\r\n\r\n\r\n if (this.printTemplate.value.InUse && !this.aliasTemplate && this.printTemplate.value.AllLanguages.length == 0) {\r\n\r\n if (this.currentInUseChanged) {\r\n\r\n if (this.printTemplate.original.InUse) {\r\n this.printTemplate.value.AllLanguages = this.printTemplate.original.AllLanguages;\r\n }\r\n else {\r\n this.printTemplate.value.AllLanguages = ['none'];\r\n }\r\n\r\n this.printTemplate.value.AliasCompanyId = this.printTemplate.original.AliasCompanyId;\r\n this.printTemplate.value.AliasId = this.printTemplate.original.AliasId;\r\n\r\n this.aliasTemplate = this.allTemplatesAliases.find(t => t.Id == this.printTemplate.original.AliasId && t.CompanyId == this.printTemplate.original.AliasCompanyId);\r\n\r\n this.currentAliasChanged = false;\r\n this.currentInUseChanged = false;\r\n }\r\n else {\r\n this.printTemplate.value.AllLanguages = ['none'];\r\n this.currentInUseChanged = true;\r\n }\r\n }\r\n\r\n else if (!this.printTemplate.value.InUse) {\r\n\r\n this.aliasTemplate = undefined;\r\n\r\n if (this.printTemplate.original.InUse == false) {\r\n this.printTemplate.value.AliasCompanyId = this.printTemplate.original.AliasCompanyId;\r\n this.printTemplate.value.AliasId = this.printTemplate.original.AliasId;\r\n }\r\n else {\r\n this.printTemplate.value.AliasCompanyId = 0;\r\n this.printTemplate.value.AliasId = 0;\r\n }\r\n this.printTemplate.value.AllLanguages = [];\r\n this.currentInUseChanged = true;\r\n }\r\n }\r\n\r\n\r\n clickDownloadShadow(e: PrintTemplate) {\r\n\r\n this.clicked_actions = true;\r\n\r\n this.printTemplates$.DownloadPrinterForm(e, false).subscribe(\r\n (okDownloadShadow) => {\r\n\r\n var blob = new Blob([okDownloadShadow], {\r\n type: \"text/plain;charset=utf-8\"\r\n });\r\n\r\n saveAs(blob, e.Id + '_' + e.TemplateName + '_' + e.Language + '_shadow.txt');\r\n\r\n this.actions$.notifyEntityCustomAction({ title: 'Downloaded', message: 'The print template was downloaded from shadow' });\r\n },\r\n\r\n (errorDownloadShadow) => {\r\n this.errors$.handleServerErrors(errorDownloadShadow);\r\n }\r\n );\r\n }\r\n\r\n\r\n clickDownloadLive(e: PrintTemplate) {\r\n\r\n this.clicked_actions = true;\r\n\r\n this.printTemplates$.DownloadPrinterForm(e, true).subscribe(\r\n (okDownloadLive) => {\r\n\r\n var blob = new Blob([okDownloadLive], {\r\n type: \"text/plain;charset=utf-8\"\r\n });\r\n\r\n saveAs(blob, e.Id + '_' + e.TemplateName + '_' + e.Language + '.txt');\r\n\r\n this.actions$.notifyEntityCustomAction({ title: 'Downloaded', message: 'The print template was downloaded from live' });\r\n },\r\n\r\n (errorDownloadLive) => {\r\n this.errors$.handleServerErrors(errorDownloadLive);\r\n }\r\n );\r\n }\r\n\r\n clickUploadShadow(uploadShadow) {\r\n\r\n this.clicked_actions = true;\r\n\r\n setTimeout(() => {\r\n uploadShadow.click();\r\n }, 500);\r\n }\r\n\r\n changeUploadShadow($event, e: PrintTemplate) {\r\n this.clicked_actions = true;\r\n\r\n let file = $event.target.files[0];\r\n $event.target.value = null;\r\n\r\n let currentCompanyId = e.CompanyId;\r\n\r\n this.printTemplates$.UploadPrinterForm(file, e).subscribe(\r\n (okUploadShadow) => {\r\n\r\n this.deselectPrintTemplate();\r\n\r\n this.actions$.notifyEntityCustomAction({ title: 'Uploaded', message: 'The print template was uploaded to shadow' });\r\n\r\n this.printTemplates$.getList(currentCompanyId).subscribe(printTemplatesData => {\r\n this.printTemplates$.notifyRetrieved(printTemplatesData);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n\r\n },\r\n\r\n (errorUploadShadow) => {\r\n this.errors$.handleServerErrors(errorUploadShadow);\r\n this.selectPrintTemplate(this.printTemplate.key);\r\n }\r\n );\r\n\r\n }\r\n\r\n\r\n\r\n clickSyncFromShadow(e: PrintTemplate) {\r\n\r\n this.clicked_actions = true;\r\n\r\n this.syncingVisible = true;\r\n\r\n this.syncingTemplate = e;\r\n this.syncingIsLive = false;\r\n\r\n }\r\n\r\n clickSyncFromLive(e: PrintTemplate) {\r\n\r\n this.clicked_actions = true;\r\n\r\n this.syncingVisible = true;\r\n\r\n this.syncingTemplate = e;\r\n this.syncingIsLive = true;\r\n }\r\n\r\n\r\n syncConfirm(printTemplate, isLive) {\r\n\r\n this.app$.notifyScreenBusy();\r\n \r\n this.syncingVisible = false;\r\n\r\n let currentCompanyId = printTemplate.CompanyId;\r\n\r\n this.printTemplates$.SyncPrinterForm(printTemplate, isLive).subscribe(\r\n (okSync) => {\r\n\r\n this.actions$.notifyEntityCustomAction({ title: isLive ? 'Published' : 'Restored', message: isLive ? 'The print template was published to the previous Live version' : 'The print template was restored to Live' });\r\n\r\n this.deselectPrintTemplate();\r\n\r\n this.printTemplates$.getList(currentCompanyId).subscribe(printTemplatesData => {\r\n this.printTemplates$.notifyRetrieved(printTemplatesData);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorSync) => {\r\n this.errors$.handleServerErrors(errorSync);\r\n },\r\n\r\n () => {\r\n this.syncingTemplate = undefined;\r\n this.syncingIsLive = undefined;\r\n }\r\n );\r\n }\r\n\r\n syncCancel() {\r\n this.syncingVisible = false;\r\n this.syncingTemplate = undefined;\r\n this.syncingIsLive = undefined;\r\n }\r\n\r\n\r\n clickEditTemplate(e: PrintTemplate) {\r\n\r\n this.app$.setScreenTitle('Edit ' + this.entityName);\r\n this.clicked_actions = true;\r\n this.editingTemplate = e;\r\n }\r\n\r\n onDoneEditingTemplate() {\r\n\r\n this.app$.notifyScreenBusy();\r\n\r\n this.currentCompanyId = this.editingTemplate.CompanyId;\r\n\r\n this.printTemplates$.getList(this.currentCompanyId).subscribe(printTemplatesData => {\r\n this.printTemplates$.notifyRetrieved(printTemplatesData);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n\r\n this.editingTemplate = undefined;\r\n }\r\n\r\n\r\n private reset() {\r\n\r\n this.printTemplate.restore();\r\n\r\n this.aliasTemplate = this.allTemplatesNames.find(t => t.Id == this.printTemplate.original.AliasId && t.CompanyId == this.printTemplate.original.AliasCompanyId);\r\n }\r\n\r\n\r\n private save() {\r\n\r\n this.deletingLanguagesVisible = !this.printTemplate.original.AllLanguages.every(l => this.printTemplate.value.AllLanguages.includes(l));\r\n\r\n if (!this.deletingLanguagesVisible) {\r\n this.saveConfirm();\r\n }\r\n }\r\n\r\n onConfirmSaveShowing(e) {\r\n this.app$.notifyScreenReady();\r\n }\r\n\r\n saveConfirm() {\r\n this.deletingLanguagesVisible = false;\r\n this.handleFormSubmit();\r\n let currentCompanyId = this.currentCompanyId;\r\n this.printTemplate.value.AllLanguages = this.printTemplate.value.AllLanguages.map(l => { if (l == 'none') return ''; return l });\r\n this.printTemplates$.save(this.printTemplate).subscribe(\r\n (okSave) => {\r\n\r\n this.actions$.notifySaved();\r\n\r\n this.deselectPrintTemplate();\r\n\r\n this.printTemplates$.getList(currentCompanyId).subscribe(printTemplatesData => {\r\n this.printTemplates$.notifyRetrieved(printTemplatesData);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorSave) => {\r\n\r\n this.printTemplate.value.AllLanguages = this.printTemplate.value.AllLanguages.map(l => { if (l == '') return 'none'; return l });\r\n\r\n this.printTemplate.value.InUse = (this.printTemplate.value.AllLanguages.length > 0 || (this.printTemplate.value.AliasId > 0 && this.printTemplate.value.AliasCompanyId > 0));\r\n\r\n this.errors$.handleServerErrors(errorSave);\r\n }\r\n );\r\n }\r\n\r\n saveCancel() {\r\n\r\n this.deletingLanguagesVisible = false;\r\n }\r\n\r\n\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n this.deselectPrintTemplate();\r\n }\r\n\r\n isInvalid(field) { return this.errors$.isInvalid(field); }\r\n\r\n getError(field) { return this.errors$.getError(field); }\r\n\r\n\r\n private selectPrintTemplate(key: any) {\r\n\r\n this.actions$.notifyEntityBusy();\r\n\r\n this.printTemplates$.getEntity(key).pipe(\r\n\r\n map(entity => {\r\n\r\n if (entity) {\r\n entity.AllLanguages = entity.AllLanguages.map(l => { if (l == '') return 'none'; return l });\r\n\r\n entity.InUse = (entity.AllLanguages.length > 0 || (entity.AliasId > 0 && entity.AliasCompanyId > 0));\r\n\r\n\r\n let templateType = this.templateTypes.filter(t => t.id == entity.Id)[0];\r\n\r\n if (templateType) {\r\n entity.TemplateName = templateType.name;\r\n }\r\n }\r\n return entity;\r\n })\r\n\r\n ).subscribe(\r\n entityMapped => {\r\n\r\n this.actions$.notifyEntityReady();\r\n\r\n this.printTemplate = new Entity();\r\n\r\n this.printTemplate.value = entityMapped;\r\n this.printTemplate.key = key;\r\n\r\n this.printTemplatesStore.load().then(s => {\r\n\r\n let languages = s.map((t: PrintTemplate) => {\r\n\r\n if (t.Language == '')\r\n return 'none';\r\n\r\n return t.Language;\r\n });\r\n\r\n this.allTemplatesLanguages = uniq(languages);\r\n });\r\n\r\n this.allTemplatesAliases = without(this.allTemplatesNames, this.allTemplatesNames.find(t => t.Id == entityMapped.Id && t.CompanyId == entityMapped.CompanyId));\r\n this.aliasTemplate = this.allTemplatesAliases.find(t => t.Id == entityMapped.AliasId && t.CompanyId == entityMapped.AliasCompanyId);\r\n\r\n this.currentInUseChanged = false;\r\n this.currentAliasChanged = false;\r\n this.currentTemplateChanged = true;\r\n },\r\n\r\n (errorGetEntity) => {\r\n\r\n this.errors$.handleServerErrors(errorGetEntity);\r\n }\r\n );\r\n }\r\n\r\n private deselectPrintTemplate() {\r\n this.dataGrid.instance.deselectAll();\r\n\r\n this.aliasTemplate = undefined;\r\n\r\n if (this.printTemplate) {\r\n this.printTemplate.key = undefined;\r\n }\r\n }\r\n\r\n\r\n private handleFormSubmit() {\r\n this.printTemplatesForm.form.markAsPristine();\r\n this.printTemplatesForm.form.markAsUntouched();\r\n this.printTemplatesForm.form.updateValueAndValidity();\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n onContentReady(e) {\r\n this.resizeScreenContent();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.resizeScreenContent();\r\n }\r\n\r\n onResize(e): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n\r\n let companySelectHeight = 30;\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment - companySelectHeight);\r\n\r\n }\r\n}\r\n","
\r\n\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Company:\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n
\r\n
0 && cell.data.AliasCompanyId > 0)\">\r\n \r\n
\r\n
0 && cell.data.AliasCompanyId > 0)\">\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
0 && cell.data.AliasCompanyId > 0)\">\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
0 && cell.data.AliasCompanyId > 0)\">\r\n
\r\n \r\n \r\n \r\n Publish to Live\r\n \r\n
\r\n
\r\n \r\n \r\n Revert to previous Live version\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
0 && cell.data.AliasCompanyId > 0)\">\r\n\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n 0 && printTemplate.value.AliasCompanyId > 0)\"\r\n [items]=\"allTemplatesLanguages\"\r\n [value]=\"(printTemplate.value.AliasId > 0 && printTemplate.value.AliasCompanyId > 0)? [] :printTemplate.value.AllLanguages\"\r\n [acceptCustomValue]=\"true\"\r\n (onCustomItemCreating)=\"onCustomLanguageCreating($event)\"\r\n (onValueChanged)=\"onTemplatesLanguagesChanged($event)\"\r\n [showSelectionControls]=\"true\"\r\n placeholder=\"Add a language and hit enter or choose from existing ones\"\r\n hint=\"Add a language and hit enter or choose from existing ones\">\r\n \r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n The printer forms associated with the removed languages will be deleted.\r\n Are you sure you want to save?\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n The previous Live version will be restored.\r\n
\r\n \r\n The Shadow version will be published to Live.\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\n\r\nexport class PrintTemplate {\r\n\r\n Id: number;\r\n CompanyId: number;\r\n\r\n AliasId: number;\r\n AliasCompanyId: number;\r\n\r\n TemplateName: string;\r\n\r\n IsSyncedShadowLive: boolean;\r\n\r\n AnyShadowPrinterForms: boolean;\r\n AnyLivePrinterForms: boolean;\r\n\r\n Language: string;\r\n\r\n AllLanguages: string[];\r\n AllLanguagesOriginal: string[];\r\n\r\n InUse: boolean;\r\n\r\n PrinterForms: PrinterForm[];\r\n label:string;\r\n key: PrintTemplate;\r\n}\r\n\r\nexport class PrinterForm {\r\n\r\n Language: string;\r\n}\r\n\r\nexport class PrintTemplateEditor {\r\n\r\n cursor: { line: number, ch: number };\r\n options?: any;\r\n height?: any;\r\n\r\n constructor() {\r\n this.cursor = { line: 1, ch: 0 };\r\n }\r\n}\r\n\r\nexport class PrintTemplateKeywords {\r\n\r\n PageParts: string[];\r\n FormatCommands: string[];\r\n Parsers: string[];\r\n TablesAndHashes: string[];\r\n}\r\n\r\n\r\n\r\nexport class PrintTemplateTest {\r\n Id: number;\r\n DeviceId: number;\r\n}\r\n\r\nexport class SaleTemplateTest extends PrintTemplateTest {\r\n SaleDate: Date | string;\r\n ReceiptNumber: number;\r\n CustomerName: string;\r\n TemplateTypeId: number;\r\n CustomerAddress: string;\r\n}\r\n\r\nexport class LoadingTemplateTest extends PrintTemplateTest {\r\n\r\n TourNo: string;\r\n TourId: number;\r\n LoadLocation: string;\r\n DateFrom: Date | string;\r\n DateTo: Date | string;\r\n}\r\n\r\nexport class SafetyCheckTemplateTest extends PrintTemplateTest {\r\n\r\n SessionId: number;\r\n Date: Date | string;\r\n DriverName: string;\r\n SafetyGroupId: number;\r\n\r\n}\r\n\r\nexport class SaleProtocolTemplateTest extends PrintTemplateTest {\r\n\r\n DateStart: Date | string | null;\r\n DateEnd: Date | string | null;\r\n DriverName: string;\r\n TourNo: string;\r\n Date: Date | string;\r\n SessionId: number | null;\r\n TourId: number | null;\r\n IsSessionSale: boolean;\r\n}\r\n\r\nexport class AssessmentTemplateTest extends PrintTemplateTest {\r\n\r\n SessionId: number | null;\r\n ResultId: number | null;\r\n FormName: string;\r\n}\r\n\r\nexport class TransportDocumentTemplateTest extends PrintTemplateTest {\r\n\r\n DateFrom: Date | string | null;\r\n DateTo: Date | string | null;\r\n}\r\n\r\nexport class TourPaperTemplateTest extends PrintTemplateTest {\r\n\r\n DateFrom: Date | string | null;\r\n DateTo: Date | string | null;\r\n}\r\n\r\nexport class CollectiveSettlementTemplateTest extends PrintTemplateTest {\r\n\r\n DateFrom: Date | string | null;\r\n DateTo: Date | string | null;\r\n}\r\n\r\nexport class CashBalanceTemplateTest extends PrintTemplateTest { }\r\n\r\nexport class CustomerDocumentTemplateTest extends SaleProtocolTemplateTest {\r\n\r\n CustomerId: number | null;\r\n CustomerPos: number | null;\r\n}\r\n\r\nexport class DeliveryAuthorizationDocumentTemplateTest extends PrintTemplateTest {\r\n Id: number;\r\n SessionId: number;\r\n AuthorizationDate: Date | string;\r\n CustomerName: string;\r\n CustomerAddress: string;\r\n}\r\n\r\nexport class PrintTemplateLog {\r\n LogDate: Date | string;\r\n IsLive: boolean;\r\n UserName: string;\r\n InsertsNo: number;\r\n UpdatesNo: number;\r\n DeletesNo: number;\r\n}\r\n\r\nexport class PrintTemplateKeywordAttributes{\r\n Keyword: string;\r\n Bold: boolean;\r\n Italic: boolean;\r\n Underline: boolean;\r\n Value: boolean;\r\n}\r\n\r\nexport class PrintTemplateAttributes{\r\n KeywordAttributes: PrintTemplateKeywordAttributes[];\r\n TopBorder: number;\r\n BottomBorder: number;\r\n PrintPaymentSlip: boolean;\r\n}\r\nexport const linelenghtKeyword = 'lineLen';\r\n\r\n\r\n@Injectable()\r\nexport abstract class PrintTemplatesInterface implements EntityInterface {\r\n\r\n getList: (companyId: number) => Observable;\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: PrintTemplate[]) => void;\r\n\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n\r\n getEntity: (key: any) => Observable;\r\n\r\n SyncPrinterForm: (entity: PrintTemplate, isLive: boolean) => Observable;\r\n DownloadPrinterForm: (entity: PrintTemplate, isLive: boolean) => Observable;\r\n UploadPrinterForm: (file: File, entity: PrintTemplate, attributes?: PrintTemplateAttributes) => Observable;\r\n\r\n getAliases: () => Observable;\r\n getKeywords: () => Observable;\r\n getLineLength: () => Observable;\r\n getTemplatesTypes: () => Observable;\r\n\r\n getTestData: (templateTypeId: number, companyId: number, deviceId: number, dateFrom: Date, dateTo: Date) => Observable;\r\n TestDataRetrieved: Observable;\r\n notifyTestDataRetrieved: (data: PrintTemplateTest[]) => void;\r\n\r\n getLogData: (entity: PrintTemplate) => Observable;\r\n LogDataRetrieved: Observable;\r\n notifyLogDataRetrieved: (data: PrintTemplateLog[]) => void;\r\n\r\n getAttributeData: (entity: PrintTemplate) => Observable;\r\n AttributeDataRetrieved: Observable;\r\n notifyAttributeData: (data: PrintTemplateAttributes[]) => void;\r\n\r\n\r\n\r\n TestPrinterForm: (printerFormLines: string, templateTestEntity: any, deviceId: number, templateTypeId: number) => Observable;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PrintTemplatesInterface, PrintTemplate, PrintTemplateKeywords, PrintTemplateTest, PrintTemplateLog, PrintTemplateAttributes } from './print-templates.model';\r\nimport { Entity, Enum } from '@app/app.model';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PrintTemplatesService implements PrintTemplatesInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.post(\r\n e.endpoint.settings.printTemplates,\r\n data.value,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n save(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.settings.printTemplates,\r\n data.value,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(data: any): Observable {\r\n return this._http.request('delete',\r\n e.endpoint.settings.printTemplates,\r\n {\r\n body: data,\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n getList(companyId: number): Observable {\r\n return this._http.get(e.endpoint.settings.printTemplates + '/' + companyId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n notifyRetrieved(data: PrintTemplate[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n getEntity(key: any): Observable {\r\n\r\n return this._http.get(e.endpoint.settings.printTemplates, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n },\r\n params: new HttpParams().set('id', key.Id).set('companyId', key.CompanyId)\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n };\r\n\r\n SyncPrinterForm(entity: PrintTemplate, isLive: boolean): Observable {\r\n\r\n return this._http.get(e.endpoint.settings.printTemplates + '/sync', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n },\r\n params: this.getHttpParams(entity, isLive)\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n DownloadPrinterForm(entity: PrintTemplate, isLive: boolean): Observable {\r\n\r\n return this._http.get(e.endpoint.settings.printTemplates + '/download', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n },\r\n params: this.getHttpParams(entity, isLive)\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n\r\n UploadPrinterForm(file: File, entity: PrintTemplate, attributes: PrintTemplateAttributes): Observable {\r\n\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n return this._http.post(e.endpoint.settings.printTemplates + '/upload',\r\n formData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n },\r\n \r\n params: this.getHttpPrintParams(attributes,entity, false),\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n\r\n getAliases(): Observable {\r\n return this._http.get(e.endpoint.settings.printTemplates + '/aliases', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getKeywords(): Observable {\r\n return this._http.get(e.endpoint.settings.printTemplates + '/keywords', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getLineLength(): Observable {\r\n return this._http.get(e.endpoint.settings.printTemplates + '/line-length', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getTemplatesTypes(): Observable {\r\n return this._http.get(e.endpoint.settings.printTemplates + '/print-templates-types', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n\r\n private testDataRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n TestDataRetrieved = this.testDataRetrieved.asObservable();\r\n getTestData(templateTypeId: number, companyId: number, deviceId: number, dateFrom: Date, dateTo: Date): Observable {\r\n return this._http.get(e.endpoint.settings.printTemplates + '/get-template-test-entity', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n },\r\n params: new HttpParams()\r\n .set('templateTypeId', templateTypeId.toString())\r\n .set('companyId', companyId.toString())\r\n .set('deviceId', deviceId.toString())\r\n .set('dateFrom', dateFrom.toISOString())\r\n .set('dateTo', dateTo.toISOString())\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n notifyTestDataRetrieved(data: PrintTemplateTest[]): void {\r\n this.testDataRetrieved.next(data);\r\n }\r\n \r\n\r\n private logDataRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n LogDataRetrieved = this.logDataRetrieved.asObservable();\r\n getLogData(entity: PrintTemplate): Observable {\r\n return this._http.get(e.endpoint.settings.printTemplates + '/get-template-logs', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n },\r\n params: this.getHttpParams(entity, true)\r\n \r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n notifyLogDataRetrieved(data: PrintTemplateLog[]): void {\r\n this.logDataRetrieved.next(data);\r\n }\r\n\r\n private attributeDataRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n AttributeDataRetrieved = this.attributeDataRetrieved.asObservable();\r\n getAttributeData(entity: PrintTemplate): Observable {\r\n return this._http.get(e.endpoint.settings.printTemplates+'/get-template-attributes', {\r\n headers:{\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n },\r\n params: this.getHttpParams(entity, true)\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n notifyAttributeData(data: PrintTemplateAttributes[]): void{\r\n this.attributeDataRetrieved.next(data);\r\n }\r\n\r\n\r\n TestPrinterForm(printTemplateContent: string, printTemplateTest: any, deviceId: number, templateTypeId: number): Observable {\r\n\r\n let testParameter = new HttpParams()\r\n .set('printTemplateTestJson', JSON.stringify(printTemplateTest))\r\n .set('deviceId', deviceId.toString())\r\n .set('templateTypeId', templateTypeId.toString());\r\n\r\n return this._http.post(e.endpoint.settings.printTemplates + '/test-printer-form',\r\n\r\n JSON.stringify(printTemplateContent),\r\n\r\n {\r\n responseType: 'blob',\r\n headers: {\r\n 'content-type': 'application/json',\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n },\r\n params: testParameter\r\n\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n\r\n private getHttpParams(entity: PrintTemplate, isLive: boolean): HttpParams {\r\n return new HttpParams()\r\n .set('id', (isLive ? entity.Id : -entity.Id).toString())\r\n .set('companyId', entity.CompanyId.toString())\r\n .set('language', entity.Language.toString());\r\n }\r\n\r\n private getHttpPrintParams(attributes: PrintTemplateAttributes, entity: PrintTemplate, isLive: boolean): HttpParams {\r\n return new HttpParams()\r\n .set('attributes',JSON.stringify(attributes))\r\n .set('id', (isLive ? entity.Id : -entity.Id).toString())\r\n .set('companyId', entity.CompanyId.toString())\r\n .set('language', entity.Language.toString());\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, DoCheck, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { PrintTextReference, PrintTextReferenceTypeEng } from './print-text.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { DxDataGridComponent, DxDropDownBoxComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { AppService } from '@app/app.service';\r\nimport { PrintTextsService } from './print-text.service';\r\nimport { Enum } from '@app/app.model';\r\nimport { PrintTemplatesService } from '@settings/print-templates/print-templates.service';\r\nimport { SharedService } from '@app/_shared/shared.service';\r\n\r\nimport inRange from 'lodash/inRange';\r\nimport some from 'lodash/some';\r\nimport { displayZeroValueText, makePDIDropDownOptions } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-print-text-reference',\r\n templateUrl: './print-text-reference.component.html',\r\n styleUrls: ['./print-text-reference.component.scss']\r\n})\r\nexport class PrintTextReferenceComponent implements OnInit, DoCheck, OnChanges {\r\n\r\n\r\n @Input() printTextReference: PrintTextReference;\r\n @Output() printTextReferenceChange: EventEmitter = new EventEmitter();\r\n\r\n @Input() invalid: boolean;\r\n @Output() invalidChange: EventEmitter = new EventEmitter();\r\n\r\n typeName: string;\r\n @Input() printTextCreated: boolean;\r\n\r\n @ViewChild('dataGridReferenceTypeData') dataGrid: DxDataGridComponent;\r\n @ViewChild('dropDownBox_Reference') dropDownBox_Reference: DxDropDownBoxComponent;\r\n\r\n printTextReferenceDataStore: ArrayStore;\r\n printTextReferenceData: any[];\r\n\r\n printTextReferenceTypes: Enum[];\r\n printTemplateTypes: Enum[];\r\n vehicleTypes: any;\r\n\r\n currentReferenceDataKey: any;\r\n safetyGroups: Enum[];\r\n safetySummaryTypes: Enum[];\r\n emptyOption:any = {key:0};\r\n\r\n constructor(private printTexts$: PrintTextsService, private printTemplates$: PrintTemplatesService, private app$: AppService, private errors$: ErrorsService, private actions$: ActionsService, private shared$: SharedService) {\r\n\r\n this.actions$.EntityReady.subscribe(() => setTimeout(() => {\r\n if (this.currentReferenceDataKey) {\r\n this.dataGrid.instance.selectRows(this.currentReferenceDataKey, false);\r\n this.dataGrid.instance.navigateToRow([this.currentReferenceDataKey]);\r\n }\r\n }, 0));\r\n }\r\n\r\n ngOnInit() {\r\n if (this.printTextReference) {\r\n\r\n this.printTexts$.getPrintTextTypes().subscribe(t => this.printTextReferenceTypes = makePDIDropDownOptions(t,'id','name'));\r\n this.printTemplates$.getTemplatesTypes().subscribe(t => {\r\n this.printTemplateTypes = makePDIDropDownOptions(t,'id','name');\r\n this.printTemplateTypes.unshift(this.emptyOption);\r\n }\r\n );\r\n this.shared$.getVehicleTypes().subscribe(t => {\r\n this.vehicleTypes = makePDIDropDownOptions(t,'Id','Name');\r\n if(this.typeName == 'CompanyVehicleTypeId' && this.printTextReference.extID2 == 0)\r\n displayZeroValueText(this.vehicleTypes,'vehicleType','key','label');\r\n });\r\n this.shared$.getSafetyGroups().subscribe(t => this.safetyGroups = makePDIDropDownOptions(t,'id','name'));\r\n this.printTexts$.getSafetySummaryTypes().subscribe(t => {\r\n this.safetySummaryTypes = makePDIDropDownOptions(t,'id','name');\r\n if(this.typeName == 'SafetyCheck' && this.printTextReference.extID2 == 0)\r\n displayZeroValueText(this.safetySummaryTypes,'safetyTypes','key','label');\r\n });\r\n\r\n this.refreshReferenceData();\r\n }\r\n }\r\n\r\n ngDoCheck() {\r\n if (this.printTextReference) {\r\n this.invalid = some([\r\n this.printTextReference.NumberOfLines,\r\n this.printTextReference.TextType\r\n ], (input) => !inRange(input, 0, 255));\r\n\r\n this.invalidChange.emit(this.invalid);\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n if (JSON.stringify(changes['printTextReference'].currentValue) !== JSON.stringify(changes['printTextReference'].previousValue)) {\r\n this.refreshReferenceData();\r\n }\r\n }\r\n\r\n onChange_ReferenceType($event) {\r\n\r\n this.refreshReferenceData();\r\n }\r\n\r\n onRowClick($clikedRow) {\r\n\r\n this.printTextReference.extID1 = $clikedRow.data.Id;\r\n }\r\n\r\n hasTemplate() {\r\n\r\n return ['Product', 'CustomerPrintType', 'CustomerTaxGroup', 'ProductTextAtConfigurablePosition', 'CompanyTemplateType'].includes(this.typeName);\r\n }\r\n\r\n\r\n hasReferenceData() {\r\n\r\n return ['CustomerPrintType', 'CustomerTaxGroup', 'SafetyCheck'].includes(this.typeName) == false;\r\n }\r\n\r\n onOpened($event) {\r\n\r\n setTimeout(() => {\r\n if (this.currentReferenceDataKey)\r\n this.dataGrid.instance.selectRows(this.currentReferenceDataKey, false);\r\n });\r\n if (this.currentReferenceDataKey)\r\n this.dataGrid.instance.navigateToRow([this.currentReferenceDataKey]);\r\n }\r\n\r\n isInvalidByteNumberInput(input) {\r\n\r\n return !input.dirty && input.value < 0 || input.value > 255;\r\n }\r\n\r\n allowOnlyNumbers(evt) {\r\n\r\n return this.app$.allowOnlyNumbers(evt);\r\n }\r\n\r\n private refreshReferenceData() {\r\n\r\n this.errors$.clearErrors();\r\n\r\n this.printTextReferenceDataStore = undefined;\r\n this.printTextReferenceData = undefined;\r\n\r\n this.typeName = PrintTextReferenceTypeEng[this.printTextReference.ReferenceType] || '';\r\n\r\n if (this.hasReferenceData()) {\r\n\r\n this.actions$.notifyEntityBusy();\r\n\r\n this.printTexts$.getPrintTextReferenceData(this.printTextReference).subscribe(data => {\r\n\r\n this.printTextReferenceData = data.printTextReferences;\r\n\r\n this.currentReferenceDataKey = this.printTextReference.extID1;\r\n\r\n this.printTextReferenceDataStore = new ArrayStore({\r\n data: this.printTextReferenceData,\r\n key: 'Id'\r\n });\r\n\r\n this.actions$.notifyEntityReady();\r\n\r\n }, (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n });\r\n }\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n Number Of Lines value can be between 0 and 255\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n Text Type value can be between 0 and 255\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
","import { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NgForm } from '@angular/forms';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { AppService } from '@app/app.service';\r\nimport { Entity, Enum } from '@app/app.model';\r\n\r\n\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport omit from 'lodash/omit';\r\nimport isEqual from 'lodash/isEqual';\r\nimport some from 'lodash/some';\r\n\r\nimport { PrintTextsInterface, PrintText, PrintTextReference, PrintTextReferenceTypeEng } from './print-text.model';\r\nimport { PrintTextsService } from './print-text.service';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-print-text',\r\n templateUrl: './print-text.component.html',\r\n styleUrls: ['./print-text.component.scss'],\r\n providers: [\r\n {\r\n provide: PrintTextsInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new PrintTextsService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class PrintTextsComponent implements OnInit, OnDestroy {\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n entityName = 'Print Text';\r\n\r\n printText: Entity;\r\n printTextsStore: ArrayStore;\r\n\r\n printTextReference: PrintTextReference;\r\n\r\n printTextReferenceTypes: Enum[];\r\n printTextReferenceTypeName: string;\r\n\r\n @ViewChild('printTextForm') printTextForm: NgForm;\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('dataGridReferences') dataGridReferences: DxDataGridComponent;\r\n\r\n overRemoveReference = [];\r\n overDeleteReference = [];\r\n animation: any;\r\n shadingColor: any;\r\n savingConfirmVisible: boolean;\r\n savingReferenceConfirmOverwriteVisible: boolean;\r\n addingReference: boolean;\r\n invalidPrintTextReference: boolean;\r\n\r\n constructor(private printTexts$: PrintTextsInterface, private actions$: ActionsService, private errors$: ErrorsService, private app$: AppService) {\r\n\r\n printTexts$.ListRetrieved\r\n .subscribe(data => {\r\n if (data) {\r\n this.printTextsStore = new ArrayStore({\r\n data: data,\r\n key: ['Id']\r\n });\r\n if (data.length == 0) {\r\n this.dataGrid.noDataText = 'No print texts';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n });\r\n\r\n actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create());\r\n actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n if (this.printText.value.References.some(r => r.ClientDeleted == true)) {\r\n this.savingConfirmVisible = true;\r\n }\r\n else this.save();\r\n });\r\n actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n if (errors) {\r\n let entityForm = document.getElementById('entity-form');\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n\r\n this.cancelPrintTextReference();\r\n }\r\n });\r\n\r\n\r\n this.animation = app$.getAnimationSettings();\r\n this.shadingColor = app$.getShadingColor();\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n forkJoin(\r\n\r\n this.printTexts$.getPrintTextTypes()\r\n\r\n ).subscribe(\r\n\r\n multipleData => {\r\n\r\n this.printTextReferenceTypes = multipleData[0];\r\n\r\n this.printTexts$.getList().subscribe(data => {\r\n\r\n this.printTexts$.notifyRetrieved(data);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n onSelectionChanged($clikedRow) {\r\n\r\n this.deselectPrintTextReference();\r\n\r\n if (!this.printText)\r\n try {\r\n let keySaved = JSON.parse(localStorage.getItem('print-text.dataGrid')).selectedRowKeys[0];\r\n if (keySaved) {\r\n this.selectPrintText(keySaved);\r\n }\r\n }\r\n catch{ }\r\n else {\r\n }\r\n }\r\n\r\n onRowClick($clikedRow) {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n this.addingReference = false;\r\n\r\n if (!this.printText)\r\n this.printText = new Entity();\r\n if (JSON.stringify(this.printText.key) === JSON.stringify($clikedRow.key)) {\r\n this.deselectPrintText();\r\n }\r\n else {\r\n this.selectPrintText($clikedRow.key);\r\n }\r\n }\r\n\r\n\r\n onRowPrepared_References($row) {\r\n\r\n if ($row.data && $row.data.ClientDeleted == true) {\r\n $row.rowElement.classList.add('dx-row-client-deleted');\r\n }\r\n }\r\n\r\n onRowClick_References($clikedRow) {\r\n\r\n if (!this.printTextReference)\r\n this.printTextReference = new PrintTextReference();\r\n if ($clikedRow.data.ClientDeleted == true || JSON.stringify(this.printTextReference) === JSON.stringify($clikedRow.data)) {\r\n this.deselectPrintTextReference();\r\n }\r\n else {\r\n this.printTextReference = new PrintTextReference();\r\n this.printTextReference = $clikedRow.data;\r\n this.printTextReferenceTypeName = PrintTextReferenceTypeEng[this.printTextReference.ReferenceType] || '';\r\n }\r\n }\r\n\r\n\r\n addPrintTextReference() {\r\n\r\n this.addingReference = true;\r\n\r\n this.printTextReference = new PrintTextReference();\r\n\r\n this.printTextReference.ClientId = this.printText.value.References.length;\r\n this.printTextReference.ReferenceType = PrintTextReferenceTypeEng.Product;\r\n this.printTextReferenceTypeName = PrintTextReferenceTypeEng[this.printTextReference.ReferenceType] || '';\r\n\r\n }\r\n\r\n savingPrintTextReference() {\r\n\r\n this.printTexts$.getPrintTextReference(this.printTextReference).subscribe(data => {\r\n\r\n if (data) {\r\n this.printTextReference\r\n this.savingReferenceConfirmOverwriteVisible = true;\r\n }\r\n else {\r\n this.savePrintTextReference();\r\n }\r\n\r\n }, (errorGetReference) => this.errors$.handleServerErrors(errorGetReference));\r\n\r\n }\r\n\r\n\r\n savePrintTextReferenceConfirm() {\r\n this.savingReferenceConfirmOverwriteVisible = false;\r\n this.savePrintTextReference();\r\n }\r\n\r\n savePrintTextReferenceCancel() {\r\n this.savingReferenceConfirmOverwriteVisible = false;\r\n }\r\n\r\n private savePrintTextReference() {\r\n\r\n\r\n var alreadyAddingReference = some(this.printText.value.References, (r) => isEqual(\r\n omit(r, ['ClientId']),\r\n omit(this.printTextReference, ['ClientId'])\r\n ));\r\n\r\n if (!alreadyAddingReference) {\r\n this.printText.value.References.push(this.printTextReference);\r\n }\r\n\r\n this.deselectPrintTextReference();\r\n\r\n this.addingReference = false;\r\n }\r\n\r\n cancelPrintTextReference() {\r\n\r\n this.printTextReferenceTypeName = undefined;\r\n this.printTextReference = undefined;\r\n\r\n this.addingReference = false;\r\n }\r\n\r\n onInvalidChange($event) {\r\n this.invalidPrintTextReference = $event;\r\n }\r\n\r\n click_RemoveReference(reference: PrintTextReference) {\r\n\r\n this.printText.value.References[reference.ClientId].ClientDeleted = true;\r\n\r\n this.deselectPrintTextReference();\r\n this.dataGridReferences.instance.refresh();\r\n }\r\n\r\n click_RestoreReference(reference: PrintTextReference) {\r\n\r\n this.printText.value.References[reference.ClientId].ClientDeleted = false;\r\n\r\n this.deselectPrintTextReference();\r\n this.dataGridReferences.instance.refresh();\r\n }\r\n\r\n onConfirmSaveShowing($event) {\r\n this.app$.notifyScreenReady();\r\n }\r\n saveConfirm() {\r\n this.savingConfirmVisible = false;\r\n this.save();\r\n }\r\n saveCancel() {\r\n this.savingConfirmVisible = false;\r\n }\r\n\r\n\r\n isInvalid(field) { return this.errors$.isInvalid(field); }\r\n getError(field) { return this.errors$.getError(field); }\r\n\r\n\r\n allowOnlyNumbers(evt) {\r\n\r\n return this.app$.allowOnlyNumbers(evt);\r\n }\r\n\r\n\r\n private deselectPrintTextReference() {\r\n if (this.dataGridReferences) {\r\n this.dataGridReferences.instance.deselectAll();\r\n }\r\n this.printTextReferenceTypeName = undefined;\r\n this.printTextReference = undefined;\r\n }\r\n\r\n\r\n private addNewEntity() {\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n this.printText = new Entity();\r\n this.printText.value.Text = '';\r\n this.printText.value.References = [];\r\n this.printText.created = true;\r\n }\r\n\r\n private reset() {\r\n this.deselectPrintTextReference();\r\n this.printText.restore();\r\n\r\n this.addingReference = false;\r\n\r\n if (this.printText.created) {\r\n this.printText.value.References = [];\r\n }\r\n }\r\n\r\n private create() {\r\n this.printTextReferenceTypeName = undefined;\r\n this.handleFormSubmit();\r\n this.printTexts$.create(this.printText).subscribe(\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.actions$.notifyCreated();\r\n this.deselectPrintText();\r\n this.printTexts$.getList().subscribe(data => {\r\n this.printTexts$.notifyRetrieved(data);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n private save() {\r\n this.printTextReferenceTypeName = undefined;\r\n this.printTextReference = undefined;\r\n this.handleFormSubmit();\r\n this.printTexts$.save(this.printText).subscribe(\r\n (okSave) => {\r\n this.actions$.notifySaved();\r\n this.deselectPrintText();\r\n this.printTexts$.getList().subscribe(data => {\r\n this.printTexts$.notifyRetrieved(data);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n (errorSave) => {\r\n this.errors$.handleServerErrors(errorSave);\r\n }\r\n );\r\n }\r\n\r\n private deleteConfirm() {\r\n this.printTextReferenceTypeName = undefined;\r\n this.printTextReference = undefined;\r\n this.printTexts$.delete(this.printText.key).subscribe(\r\n (okDelete) => {\r\n this.actions$.notifyDeleted();\r\n this.deselectPrintText();\r\n this.printTexts$.getList().subscribe(data => {\r\n this.printTexts$.notifyRetrieved(data);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n private cancel() {\r\n this.printTextReferenceTypeName = undefined;\r\n this.printTextReference = undefined;\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deselectPrintText();\r\n }\r\n\r\n private selectPrintText(key: any) {\r\n\r\n this.actions$.notifyEntityBusy();\r\n\r\n this.printText = new Entity();\r\n this.printText.key = key;\r\n\r\n this.printTextsStore.byKey(key)\r\n .then(pt => {\r\n\r\n this.printText.value = cloneDeep(pt);\r\n\r\n this.printTexts$.getEntity(key).pipe(\r\n map(entity => {\r\n if (entity) {\r\n entity.References.forEach((ptr: PrintTextReference, i) => {\r\n ptr.ClientId = i;\r\n });\r\n }\r\n return entity;\r\n }),\r\n ).subscribe(\r\n entityMapped => {\r\n\r\n this.printText.value = entityMapped;\r\n\r\n this.app$.notifyScreenReady();\r\n },\r\n (errorGetEntity) => this.errors$.handleServerErrors(errorGetEntity)\r\n );\r\n\r\n });\r\n }\r\n\r\n private deselectPrintText() {\r\n this.dataGrid.instance.deselectRows(this.printText.key);\r\n this.printText.key = undefined;\r\n\r\n this.cancelPrintTextReference();\r\n }\r\n\r\n\r\n private handleFormSubmit() {\r\n this.printTextForm.form.markAsPristine();\r\n this.printTextForm.form.markAsUntouched();\r\n this.printTextForm.form.updateValueAndValidity();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n onInitialized(e) {\r\n this.resizeScreenContent();\r\n }\r\n ngAfterViewInit() {\r\n this.resizeScreenContent();\r\n }\r\n onResize(e): void {\r\n this.resizeScreenContent();\r\n }\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n {{getError('Id')}}\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n {{getError('Text')}}\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n
0\" class=\"row form-group\">\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
Some of the print text references will be deleted on saving.
\r\n
Are you sure you want to save?
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
The print text reference already exists in another text.
\r\n
Are you sure you want to overwrite it?
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\nexport class PrintText {\r\n Id: number;\r\n Text: string;\r\n\r\n References: PrintTextReference[];\r\n}\r\n\r\nexport class PrintTextReference {\r\n\r\n ReferenceType: number;\r\n TextType: number;\r\n\r\n NumberOfLines: number;\r\n\r\n extID1: number;\r\n extID2: number;\r\n extID3: number;\r\n extID4: number;\r\n\r\n ClientId: number;\r\n ClientDeleted: boolean;\r\n\r\n constructor() {\r\n this.extID1 = 0;\r\n this.extID2 = 0;\r\n this.extID3 = 0;\r\n this.extID4 = 0;\r\n this.TextType = 1;\r\n this.NumberOfLines = 0;\r\n }\r\n}\r\n\r\nexport enum PrintTextReferenceTypeEng {\r\n Product = 1,\r\n Company = 4,\r\n CustomerPrintType,\r\n CompanyVehicleTypeId,\r\n CompanyTemplateType,\r\n CustomerTaxGroup,\r\n SafetyCheck,\r\n ProductTextAtConfigurablePosition\r\n}\r\n\r\n@Injectable()\r\nexport abstract class PrintTextsInterface implements EntityInterface {\r\n\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: PrintText[]) => void;\r\n\r\n getPrintTextReference: (printTextReference: PrintTextReference) => Observable;\r\n\r\n getPrintTextTypes: () => Observable;\r\n getPrintTextReferenceData: (printTextReference: PrintTextReference) => Observable;\r\n\r\n getSafetySummaryTypes: () => Observable;\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\nimport { PrintTextsInterface, PrintText, PrintTextReference } from './print-text.model';\r\nimport { Entity, Enum } from '@app/app.model';\r\n\r\n@Injectable()\r\nexport class PrintTextsService implements PrintTextsInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.post(\r\n e.endpoint.settings.printTexts,\r\n data.value,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n save(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.settings.printTexts,\r\n data.value,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(data: any): Observable {\r\n return this._http.request('delete',\r\n e.endpoint.settings.printTexts,\r\n {\r\n body: data,\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.settings.printTexts, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n notifyRetrieved(data: PrintText[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n getEntity(key: any): Observable {\r\n\r\n return this._http.get(e.endpoint.settings.printTexts + '/' + key.Id, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n getPrintTextReference(printTextReference: PrintTextReference): Observable {\r\n\r\n return this._http.post(\r\n e.endpoint.settings.printTexts + '/print-text-reference', \r\n printTextReference,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n getPrintTextTypes(): Observable {\r\n\r\n return this._http.get(e.endpoint.settings.printTexts + '/print-text-reference-types', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n getPrintTextReferenceData(printTextReference: PrintTextReference): Observable {\r\n\r\n return this._http.post(\r\n e.endpoint.settings.printTexts + '/print-text-reference-data',\r\n printTextReference,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n \r\n getSafetySummaryTypes(): Observable {\r\n\r\n return this._http.get(e.endpoint.settings.printTexts + '/safety-summary-types', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { Subject, forkJoin } from 'rxjs';\r\nimport { ServerConfiguration, ServerConfigurationInterface, ServerConfigurationType } from './server-configuration.model';\r\nimport { NgForm } from '@angular/forms';\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { AppService } from '@app/app.service';\r\nimport { ServerConfigurationService } from './server-configuration.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'facnm-server-configuration',\r\n templateUrl: './server-configuration.component.html',\r\n styleUrls: ['./server-configuration.component.scss'],\r\n providers: [\r\n {\r\n provide: ServerConfigurationInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new ServerConfigurationService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class ServerConfigurationComponent implements OnInit, AfterViewInit {\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n entityName = 'Server Configuration';\r\n AllFlags=[]; \r\n SelectedFlags:[];\r\n serverConfigurations: ServerConfiguration[];\r\n serverConfigurationsOriginal: ServerConfiguration[];\r\n\r\n serverConfigurationType = ServerConfigurationType;\r\n\r\n @ViewChild('serverConfigurationForm') serverConfigurationForm: NgForm;\r\n\r\n errorsHeight: number = 0;\r\n\r\n\r\n constructor(private serverConfiguration$: ServerConfigurationInterface, private actions$: ActionsService, private errors$: ErrorsService, private app$: AppService, private changeDetectorRef: ChangeDetectorRef) {\r\n\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe(errors => {\r\n errors ? this.errorsHeight = 50 : this.errorsHeight = 0;\r\n this.resizeScreenContent();\r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.AllFlags=[];\r\n this.SelectedFlags=[];\r\n this.app$.setScreenTitle(this.entityName);\r\n forkJoin(\r\n\r\n this.serverConfiguration$.getList()\r\n\r\n ).pipe(map(multipleData => {\r\n\r\n if (multipleData) {\r\n\r\n let configs = multipleData[0];\r\n\r\n configs.forEach(c => {\r\n\r\n if (c.Type == ServerConfigurationType.bool) {\r\n\r\n c.Value = c.Value == '1' ? true : false;\r\n }\r\n });\r\n }\r\n\r\n return multipleData;\r\n\r\n })).subscribe(multipleDataMapped => {\r\n\r\n this.serverConfigurationsOriginal = multipleDataMapped[0];\r\n this.serverConfigurations = cloneDeep(this.serverConfigurationsOriginal);\r\n this.setSelectedFlags(this.SelectedFlags,this.AllFlags,this.serverConfigurations);\r\n\r\n this.app$.notifyScreenReady();\r\n\r\n this.resizeScreenContent();\r\n\r\n }, (errorNetwork) => {\r\n\r\n this.errors$.handleServerErrors(errorNetwork);\r\n });\r\n }\r\n\r\n onChangeConfiguration(config: ServerConfiguration) {\r\n\r\n config.invalid = false;\r\n config.modified = this.serverConfigurationsOriginal.find(c => c.Id == config.Id).Value != config.Value;\r\n }\r\n\r\n saveConfiguration(config: ServerConfiguration) {\r\n\r\n this.app$.notifyScreenBusy();\r\n\r\n this.errors$.clearErrors();\r\n\r\n switch (config.Type) {\r\n case ServerConfigurationType.bool:\r\n config.Value = config.Value ? '1' : '0';\r\n break;\r\n }\r\n\r\n this.serverConfiguration$.save(config).subscribe(() => {\r\n\r\n this.serverConfigurationsOriginal.find(c => c.Id == config.Id).Value = config.Value;\r\n config.modified = false;\r\n\r\n this.actions$.notifyEntityCustomAction({ title: 'Success!', message: 'Saved Configuration ' + config.Id + ' - ' + config.Description });\r\n\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorNetwork) => {\r\n\r\n config.invalid = true;\r\n this.errors$.handleServerErrors(errorNetwork);\r\n \r\n }, () => {\r\n\r\n if (config.Type == ServerConfigurationType.bool) {\r\n\r\n config.Value = config.Value == '1' ? true : false;\r\n }\r\n });\r\n }\r\n\r\n resetConfiguration(config: ServerConfiguration) {\r\n\r\n config.Value = this.serverConfigurationsOriginal.find(c => c.Id == config.Id).Value;\r\n config.modified = false;\r\n config.invalid = false;\r\n\r\n this.errors$.clearErrors();\r\n this.SelectedFlags=[];\r\n this.setSelectedFlags(this.SelectedFlags,this.AllFlags,this.serverConfigurationsOriginal);\r\n }\r\n\r\n onResize(e): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.resizeScreenContent();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n onSelectedFlagsChanged(e,Config) {\r\n Config.ListValue =[];\r\n Config.Value=\"\";\r\n e.value.forEach(function (evalue,ekey) {\r\n Config.ListValue.push(Config.Options.find(a=>a.Name == evalue).Id);\r\n });\r\n Config.Value= Config.ListValue.reduce((acc, cur) => acc + Number(cur), 0);\r\n this.onChangeConfiguration(Config); \r\n } \r\n setSelectedFlags(SelectedFlags,AllFlags,serverConfigurations):void{\r\n serverConfigurations.forEach (function (value,key) { \r\n if(value.Type ==\"flags\")\r\n {\r\n value.Options.forEach (function (innnervalue,innerkey) {\r\n AllFlags.indexOf(innnervalue.Name) === -1 ? AllFlags.push(innnervalue.Name) : \"\"; \r\n value.FlagsValues.forEach(function (value,key) {\r\n if(value == innnervalue.Id)\r\n {\r\n SelectedFlags.push(innnervalue.Name); \r\n }\r\n });\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 100 - this.errorsHeight + 'px';\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n
Config IdDescriptionDefault Config Value
\r\n \r\n\r\n {{ config.Id }}\r\n\r\n \r\n \r\n\r\n {{ config.Description }}\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n 0 \">\r\n\r\n \r\n \r\n {{o.Name}}\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n\r\nexport class ServerConfiguration {\r\n\r\n Id: string;\r\n Description: string;\r\n\r\n Value: any;\r\n\r\n ValueFloat: number;\r\n ValueInt: number;\r\n\r\n Type: ServerConfigurationType;\r\n\r\n modified: boolean;\r\n invalid: boolean;\r\n}\r\n\r\nexport enum ServerConfigurationType {\r\n \r\n bool = 'bool',\r\n str = 'str',\r\n int = 'int',\r\n float = 'float'\r\n}\r\n\r\n@Injectable()\r\nexport abstract class ServerConfigurationInterface {\r\n\r\n save: (data: ServerConfiguration) => Observable;\r\n getList: () => Observable;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\n\r\nimport { ServerConfigurationInterface, ServerConfiguration } from './server-configuration.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ServerConfigurationService implements ServerConfigurationInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n \r\n\r\n save(data: ServerConfiguration): Observable {\r\n return this._http.put(\r\n e.endpoint.configuration + '/server-configurations',\r\n data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.configuration + '/server-configurations', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { DxDataGridModule, DxTooltipModule, DxLoadPanelModule, DxToastModule, DxPopupModule, DxTagBoxModule, DxSwitchModule, DxTabsModule, DxDateBoxModule, DxDropDownBoxModule, DxNumberBoxModule, DxCheckBoxModule, DxPopoverModule } from 'devextreme-angular';\r\n\r\nimport { SharedModule } from '@app/_shared/shared.module';\r\n\r\nimport { PrintTemplatesComponent } from './print-templates/print-templates.component';\r\nimport { PrintTemplatesEditComponent } from './print-templates/print-templates-edit.component';\r\nimport { TaxRatesComponent } from './tax-rates/tax-rates.component';\r\n\r\nimport { AutosizeModule } from 'ngx-autosize';\r\n\r\nimport { CodemirrorModule } from '@ctrl/ngx-codemirror';\r\nimport { PrintTextsComponent } from './print-text/print-text.component';\r\nimport { PrintTextReferenceComponent } from './print-text/print-text-reference.component';\r\nimport { PrintTextsService } from './print-text/print-text.service';\r\nimport { ServerConfigurationComponent } from './server-configuration/server-configuration.component';\r\nimport { ModulesComponent } from './modules/modules.component';\r\nimport { UsersComponent } from './users/users.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatNativeDateModule,MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport {MatRadioModule, MAT_RADIO_DEFAULT_OPTIONS} from '@angular/material/radio';\r\nimport {MatSelectModule} from '@angular/material/select';\r\nimport { AuditLogComponent } from './audit-log/audit-log.component';\r\nimport { CompanyComponent } from './company/company.component';\r\nimport { PaymentTermComponent } from './payment-term/payment-term.component';\r\nimport { FleetManagementComponent } from './fleet-management/fleet-management.component';\r\nimport { BankAccountComponent } from './bank-account/bank-account.component';\r\nimport { PdiDatePickerModule } from '@pdi/platform-angular-template';\r\n@NgModule({\r\n declarations: [PrintTemplatesComponent, TaxRatesComponent, PrintTemplatesEditComponent, PrintTextsComponent, PrintTextReferenceComponent, ServerConfigurationComponent, ModulesComponent, UsersComponent, AuditLogComponent, CompanyComponent, PaymentTermComponent, FleetManagementComponent, BankAccountComponent],\r\n providers: [PrintTextsService],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule,\r\n DxDataGridModule,\r\n DxTooltipModule,\r\n DxLoadPanelModule,\r\n DxToastModule,\r\n DxPopupModule,\r\n DxTagBoxModule,\r\n DxSwitchModule,\r\n DxTabsModule,\r\n DxDateBoxModule,\r\n DxDropDownBoxModule,\r\n DxNumberBoxModule,\r\n DxCheckBoxModule,\r\n DxPopoverModule,\r\n AutosizeModule,\r\n CodemirrorModule,\r\n MatInputModule,\r\n MatNativeDateModule,\r\n MatSelectModule,\r\n PdiDatePickerModule\r\n ],\r\n exports: [MatRadioModule]\r\n})\r\nexport class SettingsModule { }\r\n","\r\nimport { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NgForm } from '@angular/forms';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { AppService } from '@app/app.service';\r\nimport { Entity, Enum } from '@app/app.model';\r\n\r\nimport { TaxRatesInterface, TaxRate } from './tax-rates.model';\r\nimport { TaxRatesService } from './tax-rates.service';\r\n\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { displayZeroValueText, dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-tax-rates',\r\n templateUrl: './tax-rates.component.html',\r\n styleUrls: ['./tax-rates.component.scss'],\r\n providers: [\r\n {\r\n provide: TaxRatesInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new TaxRatesService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class TaxRatesComponent implements OnInit, OnDestroy {\r\n\r\n private unsubscribe$ = new Subject();\r\n\r\n entityName = 'Tax Rate';\r\n\r\n taxRate: Entity;\r\n taxRatesStore: ArrayStore;\r\n taxRateTypes: Enum[];\r\n\r\n @ViewChild('taxRateForm') taxRateForm: NgForm;\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n\r\n\r\n constructor(private taxRates$: TaxRatesInterface, private actions$: ActionsService, private errors$: ErrorsService, private app$: AppService) {\r\n\r\n\r\n taxRates$.ListRetrieved.subscribe(data => {\r\n\r\n if (data) {\r\n\r\n this.taxRatesStore = new ArrayStore({\r\n data: data,\r\n key: ['Id', 'TaxGroup', 'Type', 'TaxClass']\r\n });\r\n if (data.length == 0) {\r\n this.dataGrid.noDataText = 'No tax rates';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n });\r\n\r\n actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create());\r\n actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.save());\r\n actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n\r\n if (errors) {\r\n\r\n let entityForm = document.getElementById('entity-form');\r\n\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n forkJoin(\r\n\r\n this.taxRates$.getTaxRatesTypes()\r\n\r\n ).subscribe(\r\n multipleData => {\r\n\r\n this.taxRateTypes = multipleData[0];\r\n\r\n this.taxRates$.getList().subscribe(data => {\r\n\r\n this.taxRates$.notifyRetrieved(data);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList))\r\n },\r\n\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n\r\n\r\n onSelectionChanged($clikedRow) {\r\n\r\n if (!this.taxRate)\r\n try {\r\n let keySaved = JSON.parse(localStorage.getItem('tax-rates.dataGrid')).selectedRowKeys[0];\r\n if (keySaved) {\r\n this.selectTaxRate(keySaved);\r\n }\r\n }\r\n catch{ }\r\n }\r\n\r\n\r\n onRowClick($clikedRow) {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n if (!this.taxRate)\r\n this.taxRate = new Entity();\r\n\r\n if (JSON.stringify(this.taxRate.key) === JSON.stringify($clikedRow.key)) {\r\n this.deselectTaxRate();\r\n }\r\n else {\r\n this.selectTaxRate($clikedRow.key);\r\n }\r\n }\r\n\r\n\r\n isInvalid(field) { return this.errors$.isInvalid(field); }\r\n\r\n getError(field) { return this.errors$.getError(field); }\r\n\r\n\r\n private addNewEntity() {\r\n\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n\r\n this.taxRate = new Entity();\r\n this.taxRate.created = true;\r\n }\r\n\r\n\r\n private reset() {\r\n\r\n this.taxRate.restore();\r\n }\r\n\r\n\r\n private create() {\r\n\r\n this.handleFormSubmit();\r\n\r\n this.taxRates$.create(this.taxRate).subscribe(\r\n\r\n (okCreate) => {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n this.actions$.notifyCreated();\r\n\r\n this.deselectTaxRate();\r\n\r\n this.taxRates$.getList().subscribe(data => {\r\n\r\n this.taxRates$.notifyRetrieved(data);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n\r\n private save() {\r\n\r\n this.handleFormSubmit();\r\n\r\n this.taxRates$.save(this.taxRate).subscribe(\r\n (okSave) => {\r\n\r\n this.actions$.notifySaved();\r\n\r\n this.deselectTaxRate();\r\n\r\n this.taxRates$.getList().subscribe(data => {\r\n\r\n this.taxRates$.notifyRetrieved(data);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n\r\n },\r\n\r\n (errorSave) => {\r\n this.errors$.handleServerErrors(errorSave);\r\n }\r\n );\r\n }\r\n\r\n\r\n private deleteConfirm() {\r\n\r\n this.taxRates$.delete(this.taxRate.key).subscribe(\r\n\r\n (okDelete) => {\r\n\r\n this.actions$.notifyDeleted();\r\n\r\n this.deselectTaxRate();\r\n\r\n this.taxRates$.getList().subscribe(data => {\r\n\r\n this.taxRates$.notifyRetrieved(data);\r\n this.app$.notifyScreenReady();\r\n\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n },\r\n\r\n (errorDelete) => {\r\n this.errors$.handleServerErrors(errorDelete);\r\n }\r\n );\r\n }\r\n\r\n\r\n private cancel() {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n this.deselectTaxRate();\r\n }\r\n\r\n\r\n private selectTaxRate(key: any) {\r\n\r\n this.actions$.notifyEntityBusy();\r\n\r\n this.taxRates$.getEntity(key).pipe(\r\n map(entity => {\r\n return entity;\r\n }),\r\n ).subscribe(\r\n\r\n entityMapped => {\r\n this.taxRate = new Entity();\r\n this.taxRate.value = entityMapped;\r\n this.taxRate.key = key;\r\n if(this.taxRate.value.Type == 0){\r\n displayZeroValueText(this.taxRateTypes,'taxType','id','name');\r\n } \r\n this.app$.notifyScreenReady()\r\n },\r\n\r\n (errorGetEntity) => this.errors$.handleServerErrors(errorGetEntity)\r\n );\r\n }\r\n\r\n private deselectTaxRate() {\r\n this.dataGrid.instance.deselectRows(this.taxRate.key);\r\n this.taxRate.key = undefined;\r\n }\r\n\r\n\r\n private handleFormSubmit() {\r\n this.taxRateForm.form.markAsPristine();\r\n this.taxRateForm.form.markAsUntouched();\r\n this.taxRateForm.form.updateValueAndValidity();\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n onInitialized(e) {\r\n this.resizeScreenContent();\r\n }\r\n ngAfterViewInit() {\r\n this.resizeScreenContent();\r\n }\r\n onResize(e): void {\r\n this.resizeScreenContent();\r\n }\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n}","
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{getError('Id')}}\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{getError('TaxGroup')}}\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{t.name}}\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n {{getError('Type')}}\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{getError('TaxClass')}}\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{getError('SequenceNo')}}\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{getError('Rate')}}\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\n\r\nexport class TaxRate {\r\n\r\n Id: string;\r\n TaxGroup: string;\r\n Rate: number;\r\n Type: number;\r\n Description: string;\r\n TaxClass: number;\r\n SequenceNo: number;\r\n}\r\n\r\n\r\n@Injectable()\r\nexport abstract class TaxRatesInterface implements EntityInterface {\r\n\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n \r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: TaxRate[]) => void;\r\n\r\n getTaxRatesTypes:() => Observable;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { environment as e } from 'src/environments/environment';\r\n\r\nimport { Entity, Enum } from '@app/app.model';\r\n\r\nimport { TaxRatesInterface, TaxRate } from './tax-rates.model';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TaxRatesService implements TaxRatesInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n \r\n create(data: Entity): Observable {\r\n return this._http.post(\r\n e.endpoint.settings.taxRates,\r\n data.value,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n save(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.settings.taxRates,\r\n data.value,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n delete(data: any): Observable {\r\n return this._http.request('delete',\r\n e.endpoint.settings.taxRates,\r\n {\r\n body: data,\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n private listRetrieved: BehaviorSubject = new BehaviorSubject(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.settings.taxRates, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n notifyRetrieved(data: TaxRate[]): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n \r\n getEntity(key: TaxRate): Observable {\r\n\r\n return this._http.get(e.endpoint.settings.taxRates + '/' + key.Id + '/' + key.TaxClass + '/' + key.TaxGroup + '/' + key.Type, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n \r\n\r\n getTaxRatesTypes(): Observable {\r\n\r\n return this._http.get(e.endpoint.settings.taxRates + '/tax-rates-types', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer')\r\n }\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n}\r\n","import { ChangeDetectorRef,Component, OnInit, ViewChild, ElementRef, AfterViewInit, OnDestroy, DoCheck } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AbstractControl, FormControl, NgForm, Validators } from '@angular/forms';\r\n\r\nimport { forkJoin, Subject } from 'rxjs';\r\n\r\nimport { DxDataGridComponent } from 'devextreme-angular/ui/data-grid';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\n\r\nimport { Enum, Entity } from '@app/app.model';\r\n\r\nimport { AppService } from '@app/app.service';\r\n\r\nimport { ActionsService } from '@app/_shared/actions/actions.service';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { UserInterface, User } from './users.model';\r\nimport { UsersService } from './users.service';\r\nimport { displayZeroValueText, dxDataGridHeightAdjustment } from '@app/common_helper';\r\n\r\n@Component({\r\n selector: 'facnm-users',\r\n templateUrl: './users.component.html',\r\n styleUrls: ['./users.component.scss'],\r\n providers: [\r\n {\r\n provide: UserInterface,\r\n useFactory: (httpClient: HttpClient, errors$: ErrorsService): any => {\r\n return new UsersService(httpClient, errors$);\r\n },\r\n deps: [HttpClient, ErrorsService]\r\n }\r\n ]\r\n})\r\nexport class UsersComponent implements OnInit, OnDestroy {\r\n User;\r\n error;\r\n private unsubscribe$ = new Subject();\r\n private arrguments = {};\r\n private Active = 1;\r\n roleList: Enum[];\r\n entityName = 'User';\r\n fleetDropDown: Enum[];\r\n companyDropDown: Enum[];\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n @ViewChild('entityForm') entityForm: NgForm;\r\n @ViewChild('fruitInput') fruitInput: ElementRef;\r\n\r\n userData: ArrayStore;\r\n user: Entity;\r\n data_toggle: boolean;\r\n isAddForm = 1;\r\n GSCollapse = true;\r\n collapseColor = \"yellow\";\r\n isSysAdmin: any;\r\n constructor(private user$: UserInterface, private actions$: ActionsService, private errors$: ErrorsService, private app$: AppService, private changeDetectorRef: ChangeDetectorRef) {\r\n\r\n user$.ListRetrieved.subscribe(data => {\r\n if (data) {\r\n this.userData = new ArrayStore({\r\n data: data,\r\n key: ['Id']\r\n });\r\n\r\n if (data.length == 0) {\r\n this.dataGrid.noDataText = 'No Drivers Found';\r\n }\r\n else {\r\n this.dataGrid.noDataText = '';\r\n }\r\n }\r\n });\r\n\r\n\r\n actions$.EntityAdding.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.addNewEntity());\r\n actions$.EntityCreating.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(false));\r\n actions$.EntitySaving.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.create(true));\r\n // actions$.EntityDeleteConfirmed.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.deleteConfirm());\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.reset());\r\n actions$.EntityCanceling.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.cancel());\r\n\r\n errors$.ServerErrorsReceived.pipe(takeUntil(this.unsubscribe$)).subscribe((errors) => {\r\n\r\n if (errors) {\r\n\r\n let entityForm = document.getElementById('entity-form');\r\n\r\n if (entityForm) {\r\n entityForm.scrollTop = 0;\r\n }\r\n }\r\n\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n getUserList() {\r\n this.user$.getList().subscribe(listWithCreated => {\r\n this.user$.notifyRetrieved(listWithCreated);\r\n this.app$.notifyScreenReady();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n ngOnInit(): void {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.app$.loginUserInfo.subscribe((res: any) => { \r\n this.isSysAdmin = res.IsSysAdmin;\r\n });\r\n this.getUserList();\r\n forkJoin({\r\n fleet: this.user$.getFleetList(),\r\n company: this.user$.getCompanyList(),\r\n user: this.user$.getList(),\r\n roles: this.user$.getRoleList(this.isSysAdmin)\r\n }).subscribe(\r\n multipleData => {\r\n this.fleetDropDown = multipleData['fleet'];\r\n this.companyDropDown = multipleData['company'];\r\n this.roleList = multipleData['roles'];\r\n },\r\n (errorNetwork) => {\r\n this.errors$.handleServerErrors(errorNetwork);\r\n }\r\n );\r\n }\r\n private addNewEntity() {\r\n\r\n this.app$.setScreenTitle('New ' + this.entityName);\r\n\r\n this.user = new Entity();\r\n this.user.value.Id = 0;\r\n //this.user.value.ValidDate = new Date();\r\n this.user.created = true;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n onCellPrepared(e: { rowType: string; column: { dataField: string; }; data: { Deleted: any; }; cellElement: { innerHTML: string; }; }) {\r\n if (e.rowType === \"data\" && e.column.dataField === \"Deleted\") {\r\n if (e.data.Deleted)\r\n e.cellElement.innerHTML = '';\r\n else\r\n e.cellElement.innerHTML = '';\r\n }\r\n }\r\n onRowClick($clikedRow: { key: any; }) {\r\n\r\n this.app$.setScreenTitle(this.entityName);\r\n\r\n if (!this.user)\r\n {\r\n this.user = new Entity();\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n if (JSON.stringify(this.user.key) === JSON.stringify($clikedRow.key)) {\r\n this.deselectUser();\r\n }\r\n else {\r\n this.selectUser($clikedRow.key);\r\n }\r\n }\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n }\r\n onSelectionChanged($clikedRow: any) {\r\n if (!this.user)\r\n try {\r\n let keySaved = JSON.parse(localStorage.getItem('user.dataGrid')).selectedRowKeys[0];\r\n\r\n if (keySaved) {\r\n this.selectUser(keySaved);\r\n }\r\n }\r\n catch { }\r\n }\r\n\r\n create(isSave: boolean) {\r\n this.handleFormSubmit();\r\n this.entityForm.onSubmit(undefined);\r\n console.log(this.entityForm.form)\r\n if (this.entityForm.form.invalid) {\r\n setTimeout(() => { this.app$.notifyScreenReady(); })\r\n return;\r\n }\r\n this.user$.create(this.user).subscribe(\r\n\r\n (okCreate) => {\r\n this.app$.setScreenTitle(this.entityName);\r\n isSave ? this.actions$.notifySaved() : this.actions$.notifyCreated();\r\n this.deselectUser();\r\n this.getUserList();\r\n },\r\n\r\n (errorCreate) => {\r\n this.errors$.handleServerErrors(errorCreate);\r\n }\r\n );\r\n }\r\n\r\n private selectUser(key: any) {\r\n this.actions$.notifyEntityBusy();\r\n this.user = new Entity();\r\n this.user.key = key;\r\n this.user$.getUserDetailById(key.Id).subscribe(data => {\r\n this.user.value = data;\r\n this.app$.notifyScreenReady();\r\n if(this.user.value.FleetId == 0){\r\n displayZeroValueText(this.fleetDropDown,'fleetId','Id','Name');\r\n } \r\n this.changeDetectorRef.detectChanges();\r\n }, (errorGetList) => this.errors$.handleServerErrors(errorGetList));\r\n }\r\n\r\n private handleFormSubmit() {\r\n this.entityForm.form.markAsPristine();\r\n this.entityForm.form.markAsUntouched();\r\n this.entityForm.form.updateValueAndValidity();\r\n }\r\n private deselectUser() {\r\n this.dataGrid.instance.deselectRows(this.user.key);\r\n this.user.key = undefined;\r\n this.Active = 2;\r\n }\r\n private reset() {\r\n this.user.restore();\r\n if(this.user.created){\r\n this.user.value.Id = 0\r\n } \r\n }\r\n private cancel() {\r\n this.app$.setScreenTitle(this.entityName);\r\n this.deselectUser();\r\n }\r\n collapse() {\r\n this.data_toggle = !this.data_toggle;\r\n }\r\n onResize(e: any): void {\r\n this.resizeScreenContent();\r\n }\r\n\r\n formHeight: string;\r\n @ViewChild('screen', { static: true }) screenElement: ElementRef;\r\n private resizeScreenContent() {\r\n let h = this.screenElement.nativeElement.clientHeight;\r\n this.formHeight = h - 80 + 'px';\r\n this.dataGrid.instance.option('height', h - dxDataGridHeightAdjustment);\r\n }\r\n collapseClass(pannel) {\r\n return {\r\n 'collapsible-header-icon-green-up': pannel && !this.isAddForm,\r\n 'collapsible-header-icon-green-down': !pannel && !this.isAddForm,\r\n 'collapsible-header-icon-yellow-up': pannel && this.isAddForm,\r\n 'collapsible-header-icon-yellow-down': !pannel && this.isAddForm,\r\n }\r\n }\r\n hasError(control) {\r\n return this.entityForm?.submitted && this.entityForm.form.get(control).errors;\r\n }\r\n checkError(control, type) {\r\n return this.entityForm.form.get(control).errors[type];\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n General Settings\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n User Name is required\r\n \r\n \r\n User Name cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n First Name is required\r\n \r\n \r\n First Name cannot be longer than 20 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Last Name is required\r\n \r\n \r\n Last Name cannot be longer than 20 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Email cannot be longer than 50 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Password is required\r\n \r\n \r\n Password must be atleast 7 characters\r\n \r\n \r\n Password cannot be longer than 20 characters\r\n \r\n \r\n Password must have atleast one special character (@$!%*#?&)\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{fleet.Name}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{company.name}}\r\n \r\n
\r\n
\r\n \r\n Please select a Company.\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{user.value.LastUserActivity | date:'dd-MM-yyyy HH:MM:ss a'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Security Question is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Security Answer is required\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EntityInterface, Entity, Enum } from \"@app/app.model\";\r\n\r\nexport class User {\r\n\r\n CompanyId: number;\r\n EmailAddress: string;\r\n FirstName: string;\r\n FleetId: number;\r\n Id: number;\r\n IsLocked: boolean;\r\n LastName: string;\r\n LastUserActivity: Date;\r\n Password: string;\r\n SecurityAnswer: string;\r\n SecurityQuestion: string;\r\n UserName: string;\r\n UserRoleIds: number;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class UserInterface implements EntityInterface {\r\n\r\n create: (data: Entity) => Observable;\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getList: () => Observable;\r\n getEntity: (key: any) => Observable;\r\n\r\n ListRetrieved: Observable;\r\n notifyRetrieved: (data: User[]) => void;\r\n getFleetList: () => Observable;\r\n getCompanyList: () => Observable;\r\n getUserDetailById: (userId: any) => Observable;\r\n getRoleList: (isSysAdmin:any) => Observable;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ErrorsService } from '@app/_shared/errors/errors.service';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { User, UserInterface } from './users.model';\r\nimport { environment as e } from 'src/environments/environment';\r\nimport { Entity, Enum } from '@app/app.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UsersService implements UserInterface {\r\n\r\n constructor(private _http: HttpClient, private errors$: ErrorsService) { }\r\n\r\n header = { 'Authorization': 'Bearer ' + sessionStorage.getItem('Bearer') }\r\n\r\n getList(): Observable {\r\n return this._http.get(e.endpoint.settings.user, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n create(data: Entity): Observable {\r\n return this._http.put(\r\n e.endpoint.settings.user,\r\n data.value,\r\n {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n }\r\n\r\n save: (data: Entity) => Observable;\r\n delete: (data: any) => Observable;\r\n getEntity: (key: any) => Observable;\r\n\r\n private listRetrieved: BehaviorSubject<[User]> = new BehaviorSubject<[User]>(undefined);\r\n ListRetrieved = this.listRetrieved.asObservable();\r\n\r\n notifyRetrieved(data): void {\r\n this.listRetrieved.next(data);\r\n }\r\n\r\n getFleetList(): Observable {\r\n return this._http.get(e.endpoint.api + 'fleet', {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n };\r\n getCompanyList(): Observable {\r\n return this._http.get(e.endpoint.company, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n };\r\n\r\n getUserDetailById(userId: any): Observable {\r\n return this._http.get(e.endpoint.settings.user + '/' + userId, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n };\r\n getRoleList(isSysAdmin): Observable {\r\n return this._http.get(e.endpoint.settings.user + '/role/'+ isSysAdmin, {\r\n headers: this.header\r\n }).pipe(catchError(this.errors$.handleNetworkError));\r\n };\r\n}\r\n\r\n\r\n\r\n\r\n","\r\nexport const clientVersion = {\r\n BuildVersionFull: '2.12.0.12',\r\n BuildDescription: 'No build description provided'\r\n}","// This file can be replaced during build by using the `fileReplacements` array.\r\n\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n\r\n// `ng serve -c dev` replaces `environment.ts` with `environment.dev.ts`.\r\n\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nconst URL = getBaseURL();\r\nconst API = URL + '/api/';\r\n\r\nfunction getBaseURL() {\r\n let { hostname, port, pathname } = window.location; \r\n pathname = port == '4200' ? '/TouchStar.FleetAtlasCM.API' : pathname.endsWith('/') ? pathname.slice(0, -1) : pathname;\r\n var baseurl = '//'+hostname+pathname;\r\n console.log(\"hostname: \" + hostname + \" port: \" + port + \" pathname: \" + pathname );\r\n return baseurl;\r\n};\r\n\r\nexport const environment = {\r\n\r\n production: false,\r\n\r\n endpoint: {\r\n\r\n server: URL,\r\n api: API,\r\n\r\n company: API + 'company',\r\n masterData: API + 'masterdata',\r\n\r\n safetycheck: API + 'safetycheck',\r\n\r\n configuration: API + 'configuration',\r\n\r\n fleet: {\r\n devices: API + 'device',\r\n vehicles: API + 'vehicle',\r\n assessment: API + 'assessment',\r\n assessmentFieldTypes: API + 'assessment/field-types',\r\n manageImages: API + 'manage-images',\r\n manageImagesUploadURL: API + 'manage-images-upload',\r\n drivermanagement: API + 'driver',\r\n masterDataLanguage: API + 'masterdata/languages',\r\n additionalFields: API + 'AdditionalFields',\r\n timeLog: API + 'timelog',\r\n configurationGroup: API + 'configurationgroup',\r\n vehicle: API + 'vehicle',\r\n configuration: API + 'configuration',\r\n\t configurationset: API + 'configurationset'\r\n },\r\n\r\n products: {\r\n product: API + 'product',\r\n blends: API + 'product-blends',\r\n transformation: API + 'product-transformation',\r\n transformationTypes: API + 'product-transformation/product-transformation-types',\r\n productCategory: API + 'product-category',\r\n priceChangeable: API + 'product/pricechangeable/dropdown',\r\n salesTax: API + 'product/salestax/dropdown',\r\n quantityUnit: API + 'product/quantityunit/dropdown',\r\n productType: API + 'product/producttype/dropdown',\r\n dangerousGoods: API + 'product/dangerousgoods/dropdown',\r\n productDropdown: API + 'product/dropdown/1',\r\n newproduct: API + 'product/newproduct',\r\n productTypes:API +'product/producttypes',\r\n productShapes:API + 'product-category/shapes',\r\n productCategoryDeletable:API + 'product-category/deletable',\r\n dataArea:API + 'dataarea',\r\n productGroup: API + 'productgroup',\r\n productDevice: API + 'deviceproduct',\r\n deviceProductGroup:API + 'deviceproductgroup',\r\n factor: API + 'factor',\r\n specialPriceGroup: API + 'specialpricegroup'\r\n },\r\n \r\n loadPoint: API + 'loadpoint',\r\n\r\n settings: {\r\n printTemplates: API + 'print-templates',\r\n taxRates: API + 'tax-rates',\r\n printTexts: API + 'print-texts',\r\n modules: API + 'modules',\r\n nonPrintCompanyDropdown: API + 'company' + '/nonprintcompanydropdown/',\r\n user: API +'user',\r\n auditLog: API + 'auditlog',\r\n paymentTerms: API + 'paymentterms',\r\n fleet: API + 'fleet',\r\n bankAccount: API + 'bankaccount'\r\n },\r\n userLoginInfo: API + 'masterdata/user-login-info',\r\n modulesStatus: API + 'modules/status',\r\n apiversion: API + 'login/apiversion',\r\n exportURL: API + 'export',\r\n ssoBaseURL: API + 'login/ssobaseurl',\r\n customers: {\r\n customer: API + 'customer',\r\n specialPriceGroup: API + 'specialpricegroup'\r\n },\r\n unloadPoint: API + 'unloadpoint',\r\n paymentTerms: API + 'paymentterms',\r\n strappingChartProfiles: API + 'strappingchartprofiles',\r\n device: API + 'device'\r\n \r\n }\r\n\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[]}