{"version":3,"file":"main.js","mappings":"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","sources":["./src/app-legacy/App.ts","./src/app-legacy/AppConstant.ts","./src/app-legacy/Entities/AdditionalFields.ts","./src/app-legacy/Entities/AuditLog.ts","./src/app-legacy/Entities/BankAccount.ts","./src/app-legacy/Entities/Company.ts","./src/app-legacy/Entities/ConfigurationGroup.ts","./src/app-legacy/Entities/Customer.ts","./src/app-legacy/Entities/CustomerDataArea.ts","./src/app-legacy/Entities/DataArea.ts","./src/app-legacy/Entities/DeviceProduct.ts","./src/app-legacy/Entities/DeviceProductGroup.ts","./src/app-legacy/Entities/Driver.ts","./src/app-legacy/Entities/ExportTransPacConfiguration.ts","./src/app-legacy/Entities/Factor.ts","./src/app-legacy/Entities/Fleet.ts","./src/app-legacy/Entities/ImportTransPacConfiguration.ts","./src/app-legacy/Entities/LoadPoint.ts","./src/app-legacy/Entities/Login.ts","./src/app-legacy/Entities/Notification.ts","./src/app-legacy/Entities/PaymentTerm.ts","./src/app-legacy/Entities/PriceGroup.ts","./src/app-legacy/Entities/Product.ts","./src/app-legacy/Entities/ProductGroup.ts","./src/app-legacy/Entities/SafetyCheckText.ts","./src/app-legacy/Entities/SalesTax.ts","./src/app-legacy/Entities/StrappingChartProfiles.ts","./src/app-legacy/Entities/TimeLog.ts","./src/app-legacy/Entities/TransPacConfiguration.ts","./src/app-legacy/Entities/User.ts","./src/app-legacy/Entities/Vehicle.ts","./src/app-legacy/Entities/logout.ts","./src/app-legacy/Index.ts","./src/app-legacy/Scripts/Directives/datetimepicker-directive.ts","./src/app-legacy/Scripts/Directives/input-number.ts","./src/app-legacy/version.ts","./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/notifications/notifications.component.html","./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.model.ts","./src/app/app.module.ts","./src/app/app.service.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/home/home.component.html","./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 { 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 { LoginComponent } from \"@app/login/login.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\n\r\nimport last from 'lodash/last';\r\n\r\nimport {} from './../overrides'\r\n\r\nimport * as bootstrap from \"bootstrap\";\r\nimport { RequiredValidator } from \"@angular/forms\";\r\nimport { downgradeComponent } from \"@angular/upgrade/static\";\r\nimport { HeaderComponent } from \"@app/header/header.component\";\r\nimport { FooterComponent } from \"@app/footer/footer.component\";\r\nimport { HomeComponent } from \"@app/home/home.component\";\r\nimport { LoginSSOComponent } from \"@app/login-sso/login-sso.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 { LoadPointComponent } from \"@app/load-point/load-point.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 { SafetyCheckComponent } from \"@app/safety-check/safety-check.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\nvar app = angular.module('FleetAtlasApp', ['ui.router', 'ui.router.upgrade', 'ui.bootstrap', 'angulartics', 'angulartics.google.analytics', 'dx', 'ui.sortable', 'ui.select', 'colorpicker.module', 'ngFileUpload']);\r\n\r\napp.directive('facnmHeader', downgradeComponent({component: HeaderComponent}));\r\napp.directive('facnmFooter', downgradeComponent({component: FooterComponent}));\r\napp.run(['$rootScope', '$window', '$document', '$trace', '$transitions', '$templateCache', function ($rootScope, $window, $document, $trace, $transitions, $templateCache) {\r\n\r\n $trace.enable('TRANSITION');\r\n\r\n $rootScope.fixGridSearchBackspace = [];\r\n\r\n $transitions.onFinish({}, function (transition) {\r\n\r\n try {\r\n $rootScope.fixGridSearchBackspace.forEach(element => {\r\n $document.context.removeEventListener(\"keyup\", element);\r\n });\r\n\r\n $rootScope.fixGridSearchBackspace = [];\r\n }\r\n catch { }\r\n\r\n if (transition.$to().component) {\r\n\r\n let masterFactory = transition.injector().get('masterFactory');\r\n masterFactory.verifyAuthentication();\r\n }\r\n });\r\n\r\n\r\n $rootScope.user = {\r\n username: '',\r\n company: '',\r\n isAuthenticated: false,\r\n bearerToken: '',\r\n expirationDate: null\r\n };\r\n\r\n $rootScope.getLables=function(configId)\r\n {\r\n var 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 function formatLabel(str)\r\n {\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 $rootScope.formatLabel = formatLabel;\r\n \r\n (function configureMoment() {\r\n if (!moment)\r\n return;\r\n\r\n var nav = $window.navigator, i, language;\r\n\r\n var languages = [nav.language]; // supported by most browsers, except ie < 11\r\n languages = languages.concat(nav.languages); // html 5, only supported by firefox & chrome currently\r\n languages = languages.concat([nav.userLanguage, nav.browserLanguage, nav.systemLanguage]); // ie <= 10 only\r\n languages.push('en'); // default\r\n\r\n for (i = 0; i < languages.length; i++) {\r\n language = languages[i];\r\n if (language && language.length)\r\n break;\r\n }\r\n\r\n // if browser language is british english use australian english instead\r\n // en-gb shows times in 24 hour format by default - not what you want if you are, for example, in australia but using chrome or firefox with british english language\r\n language = /en-gb/i.test(language) ? 'en-AU' : language;\r\n\r\n // set moment locale globally\r\n moment.locale(language);\r\n })();\r\n \r\n $templateCache.put(\"app-legacy/Entities/templates/modal-scrollable-content.html\",\r\n \"
\\n\" +\r\n \"
\\n\" +\r\n \"
\\n\" +\r\n \"\");\r\n}]);\r\n\r\napp.config(['$stateProvider', '$urlRouterProvider', '$httpProvider', function ($stateProvider, $urlRouterProvider, $httpProvider) {\r\n\r\n // Disable IE request caching\r\n if (!$httpProvider.defaults.headers.get)\r\n $httpProvider.defaults.headers.get = {};\r\n $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';\r\n $httpProvider.defaults.headers.get['Pragma'] = 'no-cache';\r\n $httpProvider.defaults.headers.get['Expires'] = -1;\r\n\r\n $urlRouterProvider.otherwise('/logout');\r\n\r\n // Please add new state's in alphabetical order. \r\n $stateProvider\r\n .state('home', {\r\n url: '/home',\r\n component:HomeComponent,\r\n })\r\n .state('additionalfields', {\r\n url: '/additionalfields',\r\n component:AdditionalFieldsComponent\r\n }) \r\n .state('auditlog', {\r\n url: '/auditlog',\r\n component:AuditLogComponent\r\n }) \r\n .state('bankaccount', {\r\n url: '/bankaccount',\r\n component:BankAccountComponent\r\n })\r\n .state('company', {\r\n url: '/company',\r\n component:CompanyComponent\r\n })\r\n .state('configurationgroup', {\r\n url: '/configurationgroup',\r\n component:ConfigurationGroupComponent\r\n })\r\n .state('customer', {\r\n url: '/customer',\r\n component:CustomerComponent\r\n })\r\n .state('customerdataarea', {\r\n url: '/customerdataarea',\r\n component:CustomerDataAreaComponent\r\n })\r\n .state('StrappingChartProfiles', {\r\n url: '/StrappingChartProfiles',\r\n component : StrappingChartComponent,\r\n })\r\n .state('dataarea', {\r\n url: '/dataarea',\r\n component:DataAreaComponent\r\n })\r\n .state('devicemapping', {\r\n url: '/devicemapping',\r\n component: DeviceMappingComponent\r\n }) \r\n .state('Assessment', {\r\n url: '/Assessment',\r\n component: AssessmentComponent\r\n })\r\n .state('deviceproductgroup', {\r\n url: '/deviceproductgroup',\r\n component : DeviceGroupComponent\r\n }) \r\n .state('Driver', {\r\n url: '/Driver',\r\n component: DriverManagementComponent\r\n })\r\n .state('drivermanagement', {\r\n url: '/drivermanagement',\r\n templateUrl: 'app-legacy/Entities/Driver.html',\r\n controller: 'DriverController'\r\n })\r\n .state('exportconfigurationset', {\r\n url: '/exportconfigurationset',\r\n\t\t\tcomponent: ExportConfigurationComponent\r\n })\r\n .state('factor', {\r\n url: '/factor',\r\n component:FactorComponent\r\n })\r\n .state('fleetmanagement', {\r\n url: '/fleetmanagement',\r\n component: FleetManagementComponent\r\n })\r\n .state('importconfigurationset', {\r\n url: '/importconfigurationset',\r\n component: ImportConfigurationComponent\r\n })\r\n .state('loadpoint', {\r\n url: '/loadpoint',\r\n component: LoadPointComponent\r\n })\r\n .state('login', {\r\n url: '/login',\r\n component: LoginComponent\r\n })\r\n .state('loginSSO', {\r\n url: '/loginSSO',\r\n component: LoginSSOComponent\r\n })\r\n .state('logout', {\r\n url: '/logout',\r\n templateUrl: 'app-legacy/Entities/Login.html',\r\n controller: 'LogoutController'\r\n })\r\n .state('ManageImages', { \r\n url: '/ManageImages',\r\n component: ManageImagesComponent\r\n })\r\n .state('paymentterm', {\r\n url: '/paymentterm',\r\n component: PaymentTermComponent\r\n })\r\n .state('pricegroup', {\r\n url: '/pricegroup',\r\n component: PriceGroupComponent\r\n })\r\n .state('PrintTemplates', {\r\n url: '/PrintTemplates',\r\n component: PrintTemplatesComponent\r\n })\r\n .state('PrintTexts', {\r\n url: '/PrintTexts',\r\n component: PrintTextsComponent\r\n })\r\n .state('product', {\r\n url: '/product',\r\n component: ProductComponent\r\n })\r\n .state('productgroup', {\r\n url: '/productgroup',\r\n component: ProductGroupComponent\r\n })\r\n .state('ProductTransformation', {\r\n url: '/ProductTransformation',\r\n component: ProductTransformationComponent\r\n })\r\n .state('ProductBlends', {\r\n url: '/ProductBlends',\r\n component: ProductBlendsComponent\r\n })\r\n .state('safetychecktext', {\r\n url: '/safetychecktext',\r\n component: SafetyCheckComponent\r\n })\r\n .state('ServerConfiguration', {\r\n url: '/ServerConfiguration',\r\n component: ServerConfigurationComponent\r\n })\r\n .state('TaxRates', {\r\n url: '/TaxRates',\r\n component: TaxRatesComponent\r\n })\r\n .state('transpacconfiguration', {\r\n url: '/transpacconfiguration',\r\n component: TranspacConfigurationComponent\r\n })\r\n .state('timelogdefinitions', {\r\n url: '/timelogdefinitions',\r\n component:TimeLogComponent\r\n })\r\n .state('users', {\r\n url: '/users',\r\n component: UsersComponent,\r\n resolve: {\r\n isAdmin: function ($rootScope, $q) {\r\n var isAdminDefer = $q.defer();\r\n if ($rootScope.user.isAdmin) {\r\n isAdminDefer.resolve();\r\n } else {\r\n isAdminDefer.reject();\r\n }\r\n return isAdminDefer.promise;\r\n }\r\n }\r\n })\r\n .state('vehicle', {\r\n url: '/vehicle',\r\n component: VehicleComponent,\r\n })\r\n .state('modules', {\r\n url: '/modules',\r\n component: ModulesComponent,\r\n resolve: {\r\n isSysAdmin: function ($rootScope, $q) {\r\n var isSysAdminDefer = $q.defer();\r\n if ($rootScope.user.isSysAdmin) {\r\n isSysAdminDefer.resolve();\r\n } else {\r\n isSysAdminDefer.reject();\r\n }\r\n return isSysAdminDefer.promise; \r\n }\r\n }\r\n });\r\n}]);\r\n\r\n// Creating directive for focus on an element\r\napp.directive('focusOn', function () {\r\n return function (scope, elem, attr) {\r\n scope.$on('focusOn', function (e, name) {\r\n if (name === attr.focusOn) {\r\n elem[0].focus();\r\n }\r\n });\r\n };\r\n});\r\n\r\napp.directive('fixGridSearchBackspace', function ($document, $rootScope) {\r\n\r\n return {\r\n\r\n restrict: \"A\",\r\n\r\n link: function ($scope, element, attrs) {\r\n\r\n let _handler = function (event, attrs) {\r\n\r\n let target: any = event.target;\r\n \r\n if (attrs.class == 'gridDiv' && (event.code == 'Backspace' || event.code === \"Delete\") && target.className == 'dx-texteditor-input') {\r\n\r\n try {\r\n let columnName = target.parentElement.parentElement.parentElement.parentElement.parentElement.classList.item(0);\r\n\r\n if (columnName) {\r\n let dataGrid = $('#' + attrs.id).dxDataGrid('instance');\r\n dataGrid.columnOption(columnName, \"filterValue\", target.value);\r\n }\r\n }\r\n catch { }\r\n }\r\n }\r\n\r\n $rootScope.fixGridSearchBackspace.push(function _listener(ev) { _handler(ev, attrs); });\r\n $document.context.addEventListener(\"keyup\", last($rootScope.fixGridSearchBackspace));\r\n }\r\n }\r\n});\r\n\r\n\r\napp.factory('masterFactory', ['$http', '$state', '$rootScope', '$timeout', 'settings', 'version', function ($http, $state, $rootScope, $timeout, settings, version) {\r\n var masterFunctions =\r\n {\r\n setFocus: function (name) {\r\n $timeout(function () {\r\n $rootScope.$broadcast('focusOn', name);\r\n });\r\n },\r\n setError: function (status, error, scope) {\r\n $('#loadingModal').modal('hide');\r\n if (status == 401 || (status == 500 && angular.isString(error) && error.indexOf('controller') > 0)) {\r\n $state.go('login');\r\n }\r\n else if (status == 403) { //forbidden\r\n $state.go('home');\r\n }\r\n else {\r\n if (error != null && error.ModelState != null) {\r\n for (var key in error.ModelState) {\r\n for (var i = 0; i < error.ModelState[key].length; i++) {\r\n scope.modelState.push(error.ModelState[key][i]);\r\n }\r\n }\r\n }\r\n else if (angular.isString(error) && error.indexOf(\"Validation Error:\") != -1)\r\n scope.modelState.push(error.substring(17, error.length));\r\n else scope.error = error;\r\n }\r\n },\r\n getCountryList: function () {\r\n return $http.get(settings.ApiURL + settings.MasterDataURL + \"/countries/0\");\r\n },\r\n getCustomerTypeList: function () {\r\n return $http.get(settings.ApiURL + settings.MasterDataURL + \"/customertypes/0\");\r\n },\r\n getCompanies: function (lookup) {\r\n var url = settings.ApiURL + settings.CompanyURL;\r\n return $http.get(url + \"/dropdown/\" + lookup);\r\n },\r\n getUserLoginInfo: function () {\r\n $http.get(settings.ApiURL + settings.MasterDataURL + \"/user-login-info\").success(function (userinfo) {\r\n $rootScope.user.username = userinfo.Username;\r\n $rootScope.user.company = userinfo.Company;\r\n $rootScope.user.isAdmin = userinfo.IsAdmin;\r\n $rootScope.user.isSysAdmin = userinfo.IsSysAdmin;\r\n }).error(function () {\r\n $rootScope.user.username = \"\";\r\n $rootScope.user.company = \"\";\r\n $rootScope.user.isAdmin = false;\r\n $rootScope.user.isSysAdmin = false;\r\n });\r\n },\r\n getModulesStatus: function(){\r\n $http.get(settings.ApiURL + settings.ModulesURL + \"/status\").success(function(modulesstatus){\r\n $rootScope.user.isStrappingChartEnabled = modulesstatus.IsStrappingChartEnabled;\r\n }).error(function(){\r\n $rootScope.user.isStrappingChartEnabled = false;\r\n });\r\n },\r\n verifyAuthentication: function () {\r\n var bearerToken = sessionStorage.getItem(\"Bearer\");\r\n var ssoToken = sessionStorage.getItem(\"SSOToken\");\r\n if ($http.defaults.headers.common.Authorization == null || bearerToken == null) {\r\n if (bearerToken != null) {\r\n $http.defaults.headers.common.Authorization = 'Bearer ' + bearerToken;\r\n $rootScope.user.isAuthenticated = true;\r\n masterFunctions.getUserLoginInfo();\r\n // masterFunctions.RefreshDbIcon();\r\n masterFunctions.getModulesStatus();\r\n }\r\n else {\r\n if($state.router.urlRouter.location != '/loginSSO' && ssoToken == null){\r\n $state.go('login');\r\n }\r\n }\r\n }\r\n },\r\n RefreshDbIcon: function () {\r\n $http.get(settings.ApiURL + settings.LoginURL + \"/apiversion/\").success(function (data) {\r\n $rootScope.ApiFileVersion = 'API v.' + data.ApiFileVersion;\r\n $rootScope.ApiFileInfoVersion = data.ApiFileInfoVersion;\r\n $rootScope.DbVersion = data.DbVersion;\r\n $rootScope.RequiredDbVersion = data.RequiredDbVersion;\r\n }).error(function (data) {\r\n $rootScope.ApiFileVersion = \"no API connecton\";\r\n $rootScope.ApiFileInfoVersion = \"\";\r\n $rootScope.DbVersion = 0;\r\n });\r\n }\r\n };\r\n return masterFunctions;\r\n}]);\r\n\r\n// Functions to toggle colors between view details and create new entity\r\nexport function ToggleGreenToYellow() {\r\n $('.collapsible-header-icon').each(function () {\r\n if ($(this).hasClass(\"collapsible-header-icon-green-up\")) {\r\n $(this).removeClass(\"collapsible-header-icon-green-up\").addClass(\"collapsible-header-icon-yellow-up\");\r\n }\r\n else if ($(this).hasClass(\"collapsible-header-icon-green-down\")) {\r\n $(this).removeClass(\"collapsible-header-icon-green-down\").addClass(\"collapsible-header-icon-yellow-down\");\r\n }\r\n });\r\n\r\n $('.collapsible-header-left').removeClass(\"collapsible-header-green\").addClass(\"collapsible-header-yellow\");\r\n $('.collapsible-header-right').removeClass(\"collapsible-header-green\").addClass(\"collapsible-header-yellow\");\r\n $('.collapsible-header-content').removeClass(\"collapsible-header-content-green\").addClass(\"collapsible-header-content-yellow\");\r\n\r\n $('.edit-button').removeClass(\"edit-button-green\").addClass(\"edit-button-yellow\");\r\n $('.edit-button-image').removeClass(\"edit-button-image-green\").addClass(\"edit-button-image-yellow\");\r\n\r\n $('.editGridDiv').removeClass(\"editGridDiv\").addClass(\"newGridDiv\");\r\n};\r\n\r\nexport function ToggleYellowToGreen() {\r\n $('.collapsible-header-icon').each(function () {\r\n if ($(this).hasClass(\"collapsible-header-icon-yellow-up\")) {\r\n $(this).removeClass(\"collapsible-header-icon-yellow-up\").addClass(\"collapsible-header-icon-green-up\");\r\n }\r\n else if ($(this).hasClass(\"collapsible-header-icon-yellow-down\")) {\r\n $(this).removeClass(\"collapsible-header-icon-yellow-down\").addClass(\"collapsible-header-icon-green-down\");\r\n }\r\n });\r\n\r\n $('.collapsible-header-left').removeClass(\"collapsible-header-yellow\").addClass(\"collapsible-header-green\");\r\n $('.collapsible-header-right').removeClass(\"collapsible-header-yellow\").addClass(\"collapsible-header-green\");\r\n $('.collapsible-header-content').removeClass(\"collapsible-header-content-yellow\").addClass(\"collapsible-header-content-green\");\r\n\r\n $('.edit-button').removeClass(\"edit-button-yellow\").addClass(\"edit-button-green\");\r\n $('.edit-button-image').removeClass(\"edit-button-image-yellow\").addClass(\"edit-button-image-green\");\r\n\r\n $('.newGridDiv').removeClass(\"newGridDiv\").addClass(\"editGridDiv\");\r\n};\r\n\r\n//Window resize event\r\nexport function onWindowResize(grdName, heightToAdjust) {\r\n var width = $(window).width();\r\n var grd = ($(grdName)).dxDataGrid('instance');\r\n if (grd != null) {\r\n grd.columnOption(4, 'visible', width > 1000);\r\n grd.columnOption(3, 'visible', width > 900);\r\n grd.columnOption(2, 'visible', width > 800);\r\n grd.option('height', document.documentElement.clientHeight - heightToAdjust);\r\n }\r\n};\r\n\r\n// Grid Selection column width need to be reset on grid content ready\r\nexport function resetSelectionColumn(e) {\r\n var newColWidth = 20;\r\n setTimeout(function () {\r\n var headerGrid = e.element.find('.dx-datagrid-headers-container .dx-datagrid-table');\r\n var headerColgroup = headerGrid.find('colgroup');\r\n $(headerColgroup.children().get(0)).width(newColWidth);\r\n\r\n var contentGrid = e.element.find('.dx-datagrid-rowsview .dx-datagrid-table');\r\n var contentColgroup = contentGrid.find('colgroup');\r\n\r\n $(contentColgroup.children().get(0)).width(newColWidth);\r\n }, 100);\r\n};\r\n\r\n// Line toggle event\r\nexport function collapsibleHeaderClickEvent($rootScope) {\r\n $(\".collapsible-header-container\").click(function () {\r\n if ($rootScope.pageTitle.indexOf(\"Edit\") >= 0 || $rootScope.pageTitle.indexOf(\"New\") >= 0) {\r\n $(this).find('.collapsible-header-icon').toggleClass(\"collapsible-header-icon-yellow-up collapsible-header-icon-yellow-down\");\r\n }\r\n else {\r\n $(this).find('.collapsible-header-icon').toggleClass(\"collapsible-header-icon-green-up collapsible-header-icon-green-down\");\r\n }\r\n });\r\n};\r\n\r\nexport function IsUndefinedOrNull(val) {\r\n return angular.isUndefined(val) || val === null;\r\n};\r\n\r\n\r\nexport default angular.module('FleetAtlasApp');\r\n","import {default as app} from '@legacy/App';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n\r\napp.constant('settings', {\r\n\t// Please add new URL's in alphabetical order.\r\n\tAdditionalFieldsURL: 'AdditionalFields', \r\n ApiURL: environment.endpoint.api,\r\n\tAuditLogURL: 'auditlog',\r\n\tBankAccountURL: 'bankaccount',\r\n\tCompanyURL: 'company',\t\r\n\tConfigurationURL: 'configuration',\r\n\tConfigurationSetURL: 'configurationset',\r\n\tConfigurationGroupURL: 'configurationgroup',\r\n\tCustomerURL: 'customer',\t\r\n\tDataAreaURL: 'dataarea',\r\n\tStrappingChartProfilesURL:'strappingchartprofiles',\r\n\tDeviceProductGroupURL: 'deviceproductgroup',\r\n\tDeviceURL: 'device',\r\n\tDeviceProductURL: 'deviceproduct',\r\n\tDriverURL: 'driver',\r\n\tExportURL: 'export',\t\r\n\tFactorURL: 'factor',\r\n\tFleetURL: 'fleet',\r\n\tGridMarginHeight: 120,\t\r\n\tLoadPointURL: 'loadpoint',\t\r\n\tLoginURL: 'login',\r\n\tMasterDataURL: 'masterdata',\r\n\tPaymentTermsURL: 'paymentterms',\r\n\tPriceGroupURL: 'specialpricegroup',\r\n\tProductURL: 'product',\r\n\tProductCategoriesURL: 'product-category',\r\n\tProductGroupURL: 'productgroup',\t\r\n\tSafetyCheckURL: 'safetycheck',\r\n\tSpecialPriceURL: 'specialprice',\r\n\tSpecialPriceGroupURL: 'specialpricegroup',\r\n\tTimeLogURL: 'timelog',\r\n\tToastDuration: 4000,\t\r\n\tUnloadPointURL: 'unloadpoint',\t\r\n\tUserURL: 'user',\t\r\n\tVehicleURL: 'vehicle',\r\n\tModulesURL: 'modules',\r\n\tLoadPointTankUrl: 'loadpointtank'\r\n});\r\n\r\n","\r\nimport { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow } from '@legacy/App';\r\n\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport { Enum } from '@app/app.model';\r\n\r\napp.factory('AdditionalFieldsFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n\r\n getAdditionalFieldList: function () {\r\n return $http.get(settings.ApiURL + settings.AdditionalFieldsURL + \"/list/\");\r\n },\r\n getAdditionalFieldByKey: function (key) {\r\n return $http.get(settings.ApiURL + settings.AdditionalFieldsURL + \"/\" + key.FieldType + \"/\" + key.FieldLocation);\r\n },\r\n saveAdditionalField: function (additionalField) {\r\n return $http.put(settings.ApiURL + settings.AdditionalFieldsURL + \"/additionalField\", additionalField);\r\n },\r\n deleteAdditionalField: function (key) {\r\n return $http.delete(settings.ApiURL + settings.AdditionalFieldsURL + \"/\" + key.FieldType + \"/\" + key.FieldLocation);\r\n },\r\n getNewAdditionalField: function () {\r\n return $http.get(settings.ApiURL + settings.AdditionalFieldsURL + \"/new\");\r\n },\r\n getCompanyList: function () {\r\n return $http.get(settings.ApiURL + settings.CompanyURL)\r\n },\r\n getTimeLogTypeList: function () {\r\n return $http.get(settings.ApiURL + settings.TimeLogURL);\r\n },\r\n getLoadLocationTypes: function () {\r\n return $http.get(settings.ApiURL + settings.AdditionalFieldsURL + \"/loadLocationTypes\");\r\n },\r\n getFieldLocations: function () {\r\n return $http.get(settings.ApiURL + settings.AdditionalFieldsURL + \"/fieldtypes\");\r\n },\r\n getDataTypes: function () {\r\n return $http.get(settings.ApiURL + settings.AdditionalFieldsURL + \"/datatypes\");\r\n },\r\n getViewModeTypes: function () {\r\n return $http.get(settings.ApiURL + settings.AdditionalFieldsURL + \"/viewmodetypes\");\r\n }\r\n\r\n };\r\n}]);\r\n\r\napp.controller('AdditionalFieldsController', ['$scope', '$q', 'AdditionalFieldsFactory', '$rootScope', 'settings', 'masterFactory', '$uibModal', '$filter',\r\n function ($scope, $q, AdditionalFieldsFactory, $rootScope, settings, masterFactory, $uibModal, $filter) {\r\n\r\n $rootScope.pageTitle = \"Additional Fields\";\r\n\r\n $scope.AdditionalFieldList = [];\r\n $scope.additionalField = {};\r\n\r\n $scope.newAdditionalField = {};\r\n\r\n $scope.companies = [];\r\n $scope.timeLogTypeList = [];\r\n\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n\r\n $scope.pageSize = 20;\r\n\r\n\r\n init(0);\r\n\r\n\r\n $scope.refreshGrid = function (pageIndex) {\r\n\r\n $('#gridAdditionalFields').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.AdditionalFieldList,\r\n type: 'array',\r\n key: ['FieldType', 'FieldLocation']\r\n }\r\n },\r\n noDataText: \"No Additional Fields Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: grdReadyAction,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: $scope.pageSize,\r\n pageIndex: pageIndex\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'Title',\r\n dataField: 'Title',\r\n cssClass: 'Title',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Title)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Data type',\r\n dataField: 'DataType',\r\n dataType: 'string',\r\n lookup: {\r\n dataSource: $scope.dataTypes,\r\n displayExpr: 'name',\r\n valueExpr: 'id'\r\n },\r\n alignment: 'center'\r\n },\r\n {\r\n caption: 'Field location',\r\n dataField: 'FieldLocation',\r\n dataType: 'Number',\r\n lookup: {\r\n dataSource: $scope.fieldLocations,\r\n displayExpr: 'name',\r\n valueExpr: 'id'\r\n },\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(getFieldLocationName(options.data.FieldLocation))\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n wordWrapEnabled: true,\r\n selectionChanged: function (selectedRowsInfo) {\r\n\r\n $scope.error = \"\";\r\n\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $scope.isNewAdditionalField = false;\r\n\r\n AdditionalFieldsFactory.getAdditionalFieldByKey({\r\n FieldType: selectedRowsInfo.selectedRowsData[0].FieldType,\r\n FieldLocation: selectedRowsInfo.selectedRowsData[0].FieldLocation\r\n }).success(function (data) {\r\n\r\n $scope.additionalField = data;\r\n\r\n removeTemporaryVisibilities();\r\n\r\n restoreVisibilities(data.Visibility, selectedRowsInfo.selectedRowsData[0].FieldLocation);\r\n\r\n refreshViewModes();\r\n $scope.refreshAdditionalFieldVisibility();\r\n\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Additional Field\";\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n $('#formFieldId').show();\r\n });\r\n }\r\n }\r\n\r\n });\r\n };\r\n\r\n\r\n $scope.addNewEntity = function () {\r\n removeTemporaryVisibilities();\r\n $rootScope.pageTitle = \"New Additional Fields\";\r\n $scope.isFormVisible = true;\r\n $scope.isNewAdditionalField = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.additionalField = angular.copy($scope.newAdditionalField);\r\n\r\n //$scope.refreshGrid(0);\r\n refreshViewModes();\r\n $scope.refreshAdditionalFieldVisibility();\r\n $('#formFieldId').hide();\r\n\r\n ToggleGreenToYellow(); \r\n };\r\n\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n\r\n $scope.deleteEntity = function (value) {\r\n\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n deleteAdditionalField();\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n removeTemporaryVisibilities();\r\n refreshViewModes();\r\n var dataGrid = $('#gridAdditionalFields').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false;\r\n $scope.additionalFieldsForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function () {\r\n\r\n resetAdditionalField();\r\n refreshViewModes();\r\n\r\n $scope.additionalFieldsForm.$setPristine();\r\n $scope.additionalFieldsForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Additional Fields details were reset' });\r\n };\r\n\r\n\r\n $scope.submitForm = function () {\r\n $scope.error = '';\r\n\r\n $scope.additionalFieldsForm.FieldLocation.$setValidity('required',\r\n $scope.fieldLocations.map(function (fl) { return fl.id }).includes($scope.additionalField.FieldLocation));\r\n\r\n $scope.additionalFieldsForm.DataType.$setValidity('required',\r\n $scope.dataTypes.map(function (fl) { return fl.id }).includes($scope.additionalField.DataType));\r\n\r\n\r\n if ($scope.additionalFieldsForm.$valid) {\r\n\r\n saveAdditionalField();\r\n\r\n $scope.additionalFieldsForm.submitted = false;\r\n } else {\r\n $scope.additionalFieldsForm.submitted = true;\r\n }\r\n };\r\n\r\n\r\n\r\n $scope.refreshAdditionalFieldVisibility = function (pageIndex) {\r\n\r\n var dataSource, columns, element;\r\n\r\n $scope.selectedVisibilityRow = undefined;\r\n $scope.isFormVisibilityVisible = false;\r\n $scope.fieldLocationName = getFieldLocationName($scope.additionalField.FieldLocation);\r\n \r\n switch ($scope.fieldLocationName) {\r\n\r\n case \"Load Location\": {\r\n\r\n element = '#gridLoadLocation';\r\n dataSource = $scope.loadLocationTypes;\r\n columns = [\r\n {\r\n caption: 'Type',\r\n dataField: 'LoadLocationType',\r\n cssClass: 'LoadLocationType',\r\n dataType: 'number',\r\n alignment: 'center'\r\n }\r\n ];\r\n\r\n break;\r\n }\r\n\r\n case \"Time Log\": {\r\n\r\n element = '#gridTimeLogs';\r\n dataSource = $scope.timeLogTypeList;\r\n columns = [\r\n {\r\n caption: 'Time Log',\r\n dataField: 'TimeLogName',\r\n cssClass: 'TimeLogName',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.TimeLogName)\r\n .append(\"
\")\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ];\r\n\r\n break;\r\n }\r\n\r\n default: {\r\n\r\n element = '#gridCompany';\r\n dataSource = $scope.companies;\r\n columns = [\r\n {\r\n width: 75,\r\n caption: 'Id',\r\n dataField: 'Id',\r\n cssClass: 'Id',\r\n dataType: 'number',\r\n alignment: 'center',\r\n sortIndex: 0,\r\n sortOrder: 'asc'\r\n },\r\n {\r\n caption: 'Company Name',\r\n dataField: 'CompanyName',\r\n cssClass: 'CompanyName',\r\n dataType: 'string',\r\n alignment: 'center',\r\n sortIndex: 0,\r\n sortOrder: 'asc',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.name)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ];\r\n\r\n }\r\n }\r\n\r\n columns.push({\r\n\r\n width: 40,\r\n caption: '',\r\n dataField: 'Visibility',\r\n dataType: 'string',\r\n alignment: 'center',\r\n headerFilter: {\r\n allowSearch: false\r\n },\r\n allowFiltering: false,\r\n cellTemplate: function (container, options) {\r\n\r\n if (options.data.$visibility && options.data.$visibility.IsVisible) {\r\n $('')\r\n .appendTo(container);\r\n }\r\n\r\n else {\r\n $('')\r\n .appendTo(container);\r\n }\r\n }\r\n });\r\n\r\n\r\n $(element).dxDataGrid({\r\n dataSource: dataSource,\r\n height: 470,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: false,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: resetSelectionColumn,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: 10,\r\n pageIndex: pageIndex\r\n },\r\n pager: {\r\n showPageSizeSelector: false\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: columns,\r\n wordWrapEnabled: true,\r\n selectionChanged: onVisibilitySelectionChange\r\n });\r\n\r\n\r\n };\r\n\r\n\r\n $scope.onFieldLocationChange = function () {\r\n\r\n refreshViewModes();\r\n $scope.refreshAdditionalFieldVisibility();\r\n }\r\n\r\n\r\n $scope.onShowFieldChange = function () {\r\n\r\n var afVisibility; var dataGrid;\r\n\r\n\r\n switch ($scope.fieldLocationName) {\r\n\r\n case \"Load Location\": {\r\n afVisibility = $scope.additionalField.Visibility.filter(function (afv) {\r\n return afv.LoadLocationType == $scope.selectedVisibilityRow.LoadLocationType;\r\n });\r\n if (!afVisibility.length) {\r\n $scope.selectedVisibilityRow.$visibility.LoadLocationType = $scope.selectedVisibilityRow.LoadLocationType;\r\n }\r\n dataGrid = $('#gridLoadLocation').dxDataGrid('instance');\r\n break;\r\n }\r\n\r\n case \"Time Log\": {\r\n afVisibility = $scope.additionalField.Visibility.filter(function (afv) {\r\n return $scope.selectedVisibilityRow.TimeLogType === afv.TimeLogType && $scope.selectedVisibilityRow.TimeLogId == afv.TimeLogId\r\n });\r\n if (!afVisibility.length) {\r\n $scope.selectedVisibilityRow.$visibility.TimeLogId = $scope.selectedVisibilityRow.TimeLogId;\r\n $scope.selectedVisibilityRow.$visibility.TimeLogType = $scope.selectedVisibilityRow.TimeLogType;\r\n }\r\n dataGrid = $('#gridTimeLogs').dxDataGrid('instance');\r\n break;\r\n }\r\n\r\n case 'Order Detail': {\r\n\r\n afVisibility = $scope.additionalField.Visibility.filter(function (afv) {\r\n return afv.CompanyId == $scope.selectedVisibilityRow.Id;\r\n });\r\n if (!afVisibility.length) {\r\n $scope.selectedVisibilityRow.$visibility.CompanyId = $scope.selectedVisibilityRow.Id;\r\n }\r\n\r\n $scope.selectedVisibilityRow.$visibility.IsVisible = Object.values($scope.selectedVisibilityRow.$visibility.OsrChecked).filter(v => v >= 0).length > 0;\r\n\r\n dataGrid = $('#gridCompany').dxDataGrid('instance');\r\n break;\r\n }\r\n\r\n default: {\r\n afVisibility = $scope.additionalField.Visibility.filter(function (afv) {\r\n return afv.CompanyId == $scope.selectedVisibilityRow.Id;\r\n });\r\n if (!afVisibility.length) {\r\n $scope.selectedVisibilityRow.$visibility.CompanyId = $scope.selectedVisibilityRow.Id;\r\n }\r\n dataGrid = $('#gridCompany').dxDataGrid('instance');\r\n }\r\n }\r\n\r\n if (!afVisibility.length) {\r\n $scope.additionalField.Visibility.push($scope.selectedVisibilityRow.$visibility);\r\n }\r\n\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.refreshAdditionalFieldVisibility(pageIndex);\r\n }\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridAdditionalFields', settings.GridMarginHeight);\r\n });\r\n\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n\r\n\r\n // Initialization - this runs on load\r\n function init(pageIndex) {\r\n masterFactory.verifyAuthentication();\r\n\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n\r\n $q.all([\r\n\r\n AdditionalFieldsFactory.getFieldLocations().success(function (data) {\r\n\r\n $scope.fieldLocations = data;\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, 'Error on loading FieldLocations: ' + data, $scope);\r\n }),\r\n\r\n AdditionalFieldsFactory.getDataTypes().success(function (data) {\r\n\r\n $scope.dataTypes = data;\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, 'Error on loading DataTypes: ' + data, $scope);\r\n }),\r\n\r\n AdditionalFieldsFactory.getViewModeTypes().success(function (data) {\r\n\r\n $scope.viewModeTypes = data.filter(d => d.id != 0);\r\n $scope.viewModeTypesCopy = cloneDeep($scope.viewModeTypes);\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, 'Error on loading DataTypes: ' + data, $scope);\r\n }),\r\n\r\n AdditionalFieldsFactory.getNewAdditionalField().success(function (data) {\r\n\r\n $scope.newAdditionalField = data;\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n\r\n AdditionalFieldsFactory.getCompanyList().success(function (data) {\r\n\r\n $scope.companies = data;\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n\r\n AdditionalFieldsFactory.getTimeLogTypeList().success(function (data) {\r\n\r\n $scope.timeLogTypeList = data;\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n\r\n AdditionalFieldsFactory.getLoadLocationTypes().success(function (data) {\r\n\r\n $scope.loadLocationTypes = data;\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n\r\n ]).then(function () {\r\n\r\n AdditionalFieldsFactory.getAdditionalFieldList().success(function (data) {\r\n\r\n $scope.AdditionalFieldList = data;\r\n $scope.refreshGrid(pageIndex);\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, 'Error on loading Additional Field: ' + data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n })\r\n\r\n });\r\n\r\n }\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridAdditionalFields', settings.GridMarginHeight);\r\n }\r\n\r\n function saveAdditionalField() {\r\n\r\n $scope.saveInProgress = true;\r\n\r\n $scope.additionalField.Visibility = $scope.additionalField.Visibility.filter(function (afv) {\r\n if (afv.OsrChecked) afv.Osr = Object.values(afv.OsrChecked).filter(v => v >= 0);\r\n return afv.IsVisible == true;\r\n });\r\n AdditionalFieldsFactory.saveAdditionalField($scope.additionalField)\r\n .success(function (data) {\r\n $scope.closeModelStateErrors();\r\n $scope.error = '';\r\n\r\n AdditionalFieldsFactory.getAdditionalFieldList().success(function (data) {\r\n $scope.AdditionalFieldList = data;\r\n\r\n var dataGrid = $('#gridAdditionalFields').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.refreshGrid(pageIndex);\r\n $scope.refreshAdditionalFieldVisibility(0);\r\n\r\n if ($scope.additionalField.FieldType > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Additional Field successfully' });\r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Additional Field successfully' });\r\n }\r\n\r\n $scope.saveInProgress = false;\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, 'Error on loading Additional Field: ' + data, $scope);\r\n\r\n $scope.saveInProgress = false;\r\n\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n })\r\n\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n\r\n $scope.saveInProgress = false;\r\n })\r\n .finally(function (data) {\r\n $('#loadingModal').modal('hide');\r\n });\r\n\r\n }\r\n\r\n function resetAdditionalField() {\r\n\r\n if (!$scope.isNewAdditionalField) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n AdditionalFieldsFactory.getAdditionalFieldByKey({\r\n FieldType: $scope.additionalField.FieldType,\r\n FieldLocation: $scope.additionalField.FieldLocation\r\n }).success(function (data) {\r\n $scope.additionalField = data;\r\n $scope.refreshGrid(0);\r\n $scope.refreshAdditionalFieldVisibility(0);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n var dataGrid;\r\n\r\n switch ($scope.fieldLocationName) {\r\n\r\n case \"Load Location\": {\r\n dataGrid = $('#gridLoadLocation').dxDataGrid('instance');\r\n break;\r\n }\r\n\r\n case \"Time Log\": {\r\n dataGrid = $('#gridTimeLogs').dxDataGrid('instance');\r\n break;\r\n }\r\n\r\n default: {\r\n dataGrid = $('#gridCompany').dxDataGrid('instance');\r\n }\r\n }\r\n\r\n dataGrid.clearSelection();\r\n angular.copy($scope.newAdditionalField, $scope.additionalField);\r\n\r\n removeTemporaryVisibilities();\r\n\r\n $scope.refreshGrid(0);\r\n $scope.refreshAdditionalFieldVisibility(0);\r\n }\r\n }\r\n\r\n function deleteAdditionalField() {\r\n\r\n AdditionalFieldsFactory.deleteAdditionalField({\r\n FieldType: $scope.additionalField.FieldType,\r\n FieldLocation: $scope.additionalField.FieldLocation\r\n }).success(function (data) {\r\n\r\n AdditionalFieldsFactory.getAdditionalFieldList().success(function (data) {\r\n\r\n var dataGrid = $('#gridAdditionalFields').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.AdditionalFieldList = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex);\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Additional Fields successfully' });\r\n });\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n\r\n function removeTemporaryVisibilities() {\r\n\r\n angular.forEach($scope.companies, function (v, key) {\r\n v.$visibility = undefined;\r\n });\r\n angular.forEach($scope.timeLogTypeList, function (v, key) {\r\n v.$visibility = undefined;\r\n });\r\n angular.forEach($scope.loadLocationTypes, function (v, key) {\r\n v.$visibility = undefined;\r\n });\r\n\r\n }\r\n\r\n function restoreVisibilities(visibilities, fieldLocation) {\r\n\r\n\r\n switch (getFieldLocationName(fieldLocation)) {\r\n\r\n case \"Time Log\": {\r\n\r\n angular.forEach(visibilities, function (visibility, key) {\r\n\r\n visibility.IsVisible = true;\r\n\r\n if (visibility.TimeLogType > 0) {\r\n var timeLogType = $filter('filter')($scope.timeLogTypeList, function (t) { return t.TimeLogType === visibility.TimeLogType && t.TimeLogId == visibility.TimeLogId });\r\n if (timeLogType.length == 1) {\r\n\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\r\n case \"Load Location\": {\r\n\r\n angular.forEach(visibilities, function (visibility, key) {\r\n\r\n visibility.IsVisible = true;\r\n\r\n if (visibility.LoadLocationType > 0) {\r\n var loadLocationType = $filter('filter')($scope.loadLocationTypes, function (l) { return l.LoadLocationType === visibility.LoadLocationType });\r\n if (loadLocationType.length == 1) {\r\n\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 }\r\n\r\n case \"Order Detail\": {\r\n\r\n angular.forEach(visibilities, function (visibility, key) {\r\n\r\n visibility.IsVisible = true;\r\n\r\n if (visibility.CompanyId > 0) {\r\n var company = $filter('filter')($scope.companies, function (c) { return c.Id === visibility.CompanyId });\r\n if (company.length == 1) {\r\n\r\n var osrChecked = {};\r\n\r\n angular.forEach(visibility.Osr, function (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\r\n visibility.OsrChecked = osrChecked;\r\n\r\n company[0].$visibility = visibility;\r\n company[0].$visibilityKey = key;\r\n }\r\n }\r\n });\r\n break;\r\n\r\n }\r\n\r\n default: {\r\n\r\n angular.forEach(visibilities, function (visibility, key) {\r\n\r\n visibility.IsVisible = true;\r\n\r\n if (visibility.CompanyId > 0) {\r\n var company = $filter('filter')($scope.companies, function (c) { return c.Id === visibility.CompanyId });\r\n if (company.length == 1) {\r\n\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\r\n function onVisibilitySelectionChange(selectedRowsInfo) {\r\n var row = selectedRowsInfo.selectedRowsData[0];\r\n if (row != null) {\r\n\r\n $scope.selectedVisibilityRow = row;\r\n $scope.isFormVisibilityVisible = true; \r\n\r\n }\r\n }\r\n\r\n function getFieldLocationName(fieldLocationValue) {\r\n\r\n var fieldLocation = $scope.fieldLocations.filter(function (fl) {\r\n return fl.id === fieldLocationValue;\r\n });\r\n\r\n if (fieldLocation.length == 1) {\r\n return fieldLocation[0].name; \r\n }\r\n\r\n return '';\r\n }\r\n\r\n\r\n function refreshViewModes() {\r\n\r\n if ($scope.isNewAdditionalField) $scope.additionalField.ViewMode = [];\r\n\r\n switch ($scope.additionalField.FieldLocation) {\r\n case FieldLocationEng.LoadingDetail: {\r\n $scope.viewModeTypes = $scope.viewModeTypesCopy.filter((t: Enum) =>\r\n t.id == AdditionalFieldViewLocation.LoadingProductCompartment);\r\n if ($scope.isNewAdditionalField) $scope.additionalField.ViewMode = [$scope.viewModeTypes[0].id];\r\n break;\r\n }\r\n case FieldLocationEng.LoadingDetailPerProduct: {\r\n $scope.viewModeTypes = $scope.viewModeTypesCopy.filter((t: Enum) =>\r\n t.id == AdditionalFieldViewLocation.LoadingProductDetail);\r\n if ($scope.isNewAdditionalField) $scope.additionalField.ViewMode = [$scope.viewModeTypes[0].id];\r\n break;\r\n }\r\n case FieldLocationEng.OrderDetail: {\r\n $scope.viewModeTypes = $scope.viewModeTypesCopy.filter((t: Enum) =>\r\n t.id == AdditionalFieldViewLocation.OrderProductDetail);\r\n if ($scope.isNewAdditionalField) $scope.additionalField.ViewMode = [$scope.viewModeTypes[0].id];\r\n break;\r\n }\r\n case FieldLocationEng.LoadLocation: {\r\n $scope.viewModeTypes = $scope.viewModeTypesCopy.filter((t: Enum) =>\r\n t.id == AdditionalFieldViewLocation.LoadingLoadLocationProductCompartment);\r\n if ($scope.isNewAdditionalField) $scope.additionalField.ViewMode = [$scope.viewModeTypes[0].id];\r\n break;\r\n }\r\n case FieldLocationEng.Loading: {\r\n $scope.viewModeTypes = $scope.viewModeTypesCopy.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 $scope.viewModeTypes = $scope.viewModeTypesCopy.filter((t: Enum) =>\r\n t.id == AdditionalFieldViewLocation.TimeLog);\r\n if ($scope.isNewAdditionalField) $scope.additionalField.ViewMode = [$scope.viewModeTypes[0].id];\r\n break;\r\n }\r\n case FieldLocationEng.Order: {\r\n $scope.viewModeTypes = $scope.viewModeTypesCopy.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: $scope.viewModeTypes = cloneDeep($scope.viewModeTypesCopy);\r\n }\r\n }\r\n\r\n }]);\r\n\r\n\r\n\r\nexport enum FieldLocationEng {\r\n Loading = 17, // 7 + 17\r\n LoadingDetail = 11, // 1 + 11\r\n LoadingDetailPerProduct = 19, // 9 + 19\r\n LoadLocation = 15, // 15\r\n\r\n Order = 18, // 8 + 18\r\n OrderDetail = 13, // 3 + 13\r\n\r\n Sale = 14, // 4 + 14\r\n\r\n TimeLog = 16, // 16\r\n}\r\n\r\n\r\nexport enum AdditionalFieldViewLocation {\r\n\r\n LoadingStart = 0x1,\r\n LoadingProductsDone = 0x2,\r\n LoadingProductDetail = 0x4,\r\n LoadingProductCompartment = 0x8,\r\n\r\n LoadingLoadLocationProductCompartment = 0x10, //16 \r\n\r\n OrderStart = 0x400, //1024\r\n OrderProductsDone = 0x800, //2048\r\n\r\n OrderAfterSignature = 0x1000, //4096\r\n OrderProductDetail = 0x2000, //8192\r\n OrderPrintSaleDone = 0x4000, //16384\r\n OrderRegisterReceiveScreen = 0x8000, //32768\r\n\r\n TimeLog = 0x100000, // 1048576\r\n}\r\n\r\n\r\n","\r\nimport { default as app, collapsibleHeaderClickEvent, onWindowResize, IsUndefinedOrNull} from '@legacy/App';\r\n\r\n\r\n\r\n\r\napp.factory('AuditLogFactory', ['$http', 'settings', function ($http, settings) {\r\n return { \r\n getAuditLogDetails: function (id) {\r\n return $http.get(settings.ApiURL + settings.AuditLogURL + \"/\" + id);\r\n }, \r\n getEntityList: function () {\r\n return $http.get(settings.ApiURL + settings.AuditLogURL + '/entitylist');\r\n },\r\n getFilteredAuditLogList: function (filterOptions) {\r\n return $http.put(settings.ApiURL + settings.AuditLogURL + '/filter', filterOptions);\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('AuditLogController', ['$scope', 'AuditLogFactory', '$rootScope', 'settings', 'masterFactory', '$uibModal',\r\n function ($scope, AuditLogFactory, $rootScope, settings, masterFactory, $uibModal) {\r\n $rootScope.pageTitle = \"Audit Log\";\r\n $scope.AuditLogs = [];\r\n $scope.AuditLog = {};\r\n $scope.TotalCount = null;\r\n $scope.filterOptions = {\r\n TableName: null, LogType: null, Username: null, DateFrom: null, DateTo: null,\r\n GridPagerOptions: { PageIndex: 0, PageSize: 2, TotalPages: null }\r\n };\r\n $scope.ObjectKeys = [];\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.PageSize = 20;\r\n\r\n var getAuditLog = function (id) {\r\n AuditLogFactory.getAuditLogDetails(id).success(function (data) {\r\n $scope.AuditLog = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n var auditGridDataSource = {\r\n store: new DevExpress.data.CustomStore({\r\n // DataSource Configuration\r\n pageSize: $scope.PageSize,\r\n // Data Access Logic\r\n load: function(loadOptions) {\r\n var d = $.Deferred();\r\n var params = {};\r\n\r\n if (loadOptions != undefined) {\r\n $scope.filterOptions.GridPagerOptions.PageSize = (IsUndefinedOrNull(loadOptions.take) == true) ? $scope.PageSize : loadOptions.take;\r\n $scope.filterOptions.GridPagerOptions.PageIndex = ((IsUndefinedOrNull(loadOptions.take) && IsUndefinedOrNull(loadOptions.skip)) == true) ? 0 : (loadOptions.skip / loadOptions.take); \r\n }\r\n AuditLogFactory.getFilteredAuditLogList($scope.filterOptions).success(function (data) {\r\n d.resolve(data.AuditLogList, { totalCount: data.TotalCount });\r\n $scope.TotalCount = data.TotalCount;\r\n }).error(function (data, status) {\r\n //$scope.AuditLogs = [];\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () { \r\n });\r\n\r\n return d.promise();\r\n },\r\n byKey: function(key, extra) {\r\n // . . .\r\n },\r\n update: function(values) {\r\n // . . .\r\n }\r\n })\r\n };\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (Key) {\r\n $('#gridAuditLog').dxDataGrid({\r\n columns: [\r\n { caption: 'Audit Log Id', dataField: 'Id', dataType: 'number', alignment: 'center' },\r\n { caption: 'Log Date', dataField: 'LogDate', dataType: 'date', format: 'dd/MM/yyyy HH:mm', alignment: 'center' },\r\n { caption: 'Log Type', dataField: 'LogType', dataType: 'string', alignment: 'center' },\r\n { caption: 'Table Name', dataField: 'TableName', dataType: 'string', alignment: 'center' },\r\n { caption: 'User', dataField: 'UserName', dataType: 'string', alignment: 'center' }\r\n ],\r\n contentReadyAction: grdReadyAction,\r\n dataSource: auditGridDataSource,\r\n filterRow: { visible: false },\r\n groupPanel: { visible: false },\r\n noDataText: \"No Audit Logs Found\",\r\n paging: { pageSize: $scope.PageSize },\r\n pager: { visible: true, allowedPageSizes: [10, 20, 30], showPageSizeSelector: true },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'single' },\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $scope.AuditLog = selectedRowsInfo.selectedRowsData[0];\r\n getObjectKeys(); \r\n } \r\n $scope.isFormVisible = true; \r\n },\r\n scrolling: { mode: 'standard' },\r\n showBorders: true,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n sorting: { mode: 'none' }\r\n });\r\n\r\n if (Key != null && Key > 0) {\r\n var dataGrid = $('#gridAuditLog').dxDataGrid('instance');\r\n (dataGrid as unknown as FacnmDx).selectRows([Key]);\r\n }\r\n };\r\n\r\n // Button click functions \r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridAuditLog').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false; \r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.filterAuditLogs = function (filterOptions) { \r\n $scope.closeAlert();\r\n $scope.closeModelStateErrors(); \r\n $scope.filterOptions = angular.copy(filterOptions);\r\n var dataGrid = $('#gridAuditLog').dxDataGrid('instance');\r\n dataGrid.refresh(); \r\n };\r\n\r\n $scope.viewFilterOptionsModal = function () {\r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'app-legacy/Entities/templates/filterOptionsModal.html',\r\n controller: 'FilterOptionsModalController',\r\n controllerAs: 'modalVm',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n\r\n modalInstance.result.then(function (transferData) {\r\n $scope.filterAuditLogs(transferData.filterOptions);\r\n $scope.cancelForm();\r\n if(transferData.action == 'reset')\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Filter options reset successfully' });\r\n else\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Filter options applied successfully' });\r\n }, function () {\r\n\r\n });\r\n };\r\n\r\n function grdReadyAction(e) { \r\n onWindowResize('#gridAuditLog', 185);\r\n }\r\n\r\n // Helping functions and events\r\n function getObjectKeys() {\r\n if ($scope.AuditLog != null) {\r\n if ($scope.AuditLog.OldValue != null) {\r\n $scope.ObjectKeys = Object.keys($scope.AuditLog.OldValue);\r\n }\r\n if ($scope.ObjectKeys.length == 0) {\r\n if ($scope.AuditLog.NewValue != null) $scope.ObjectKeys = Object.keys($scope.AuditLog.NewValue);\r\n }\r\n }\r\n }\r\n\r\n $(window).resize(function () { \r\n onWindowResize('#gridAuditLog', 185);\r\n });\r\n\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n\r\n // Initialization - this runs on load\r\n var init = function () { \r\n masterFactory.verifyAuthentication(); \r\n $scope.refreshGrid(null);\r\n };\r\n\r\n init();\r\n}]);\r\n\r\napp.controller('FilterOptionsModalController', ['$scope', '$filter', 'AuditLogFactory', '$uibModalInstance', '$uibModal', 'masterFactory',\r\n function ($scope, $filter, AuditLogFactory, $uibModalInstance, $uibModal, masterFactory) {\r\n var modalVm = this;\r\n\r\n init();\r\n\r\n modalVm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n modalVm.closeAlert = function () {\r\n modalVm.error = \"\";\r\n };\r\n\r\n modalVm.closeModelStateErrors = function () {\r\n modalVm.modelState = [];\r\n };\r\n\r\n modalVm.resetfilterOptions = function () {\r\n modalVm.filterOptions = {\r\n TableName: null, LogType: null, Username: null, DateFrom: null, DateTo: null,\r\n GridPagerOptions: { PageIndex: 0, PageSize: 2, TotalPages: null }\r\n };\r\n modalVm.transferData.filterOptions = angular.copy(modalVm.filterOptions);\r\n modalVm.transferData.action = \"reset\";\r\n $uibModalInstance.close(modalVm.transferData);\r\n };\r\n\r\n modalVm.filterAuditLogs = function () {\r\n if (modalVm.filterOptionsForm.$valid) {\r\n modalVm.transferData.filterOptions = angular.copy(modalVm.filterOptions);\r\n modalVm.transferData.action = \"filter\";\r\n $uibModalInstance.close(modalVm.transferData); \r\n }\r\n };\r\n\r\n function init() {\r\n modalVm.error = \"\";\r\n modalVm.modelState = [];\r\n modalVm.entityList = [];\r\n modalVm.filterOptions = {\r\n TableName: null, LogType: null, Username: null, DateFrom: moment(), DateTo: moment(),\r\n GridPagerOptions: { PageIndex: 0, PageSize: 2, TotalPages: null }\r\n };\r\n modalVm.transferData = { filterOptions: null, action: null };\r\n AuditLogFactory.getEntityList().success(function (data) {\r\n modalVm.entityList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n });\r\n };\r\n}]);","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow } from '@legacy/App';\r\n\r\napp.factory('BankAccountFactory',['$http','settings', function ($http, settings) {\r\n return {\r\n getNewBankAccount: function () {\r\n return $http.get(settings.ApiURL + settings.BankAccountURL + \"/newbankaccount\");\r\n },\r\n getBankAccountDetails: function (id) {\r\n return $http.get(settings.ApiURL + settings.BankAccountURL + \"/\" + id);\r\n },\r\n saveBankAccount: function (bankAccount) {\r\n return $http.put(settings.ApiURL + settings.BankAccountURL, bankAccount);\r\n },\r\n deleteBankAccount: function (id) {\r\n return $http.delete(settings.ApiURL + settings.BankAccountURL + \"/\" + id);\r\n },\r\n getBankAccountList: function (accessToken) {\r\n return $http.get(settings.ApiURL + settings.BankAccountURL);\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('BankAccountController', ['$q', '$scope', 'BankAccountFactory', '$rootScope', 'settings', 'masterFactory', \r\n function ($q, $scope, BankAccountFactory, $rootScope, settings, masterFactory) {\r\n $rootScope.pageTitle = \"Bank Account\";\r\n $scope.bankAccounts = [];\r\n $scope.bankAccount = {}; \r\n $scope.newbankAccount = {};\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.pageSize = 20;\r\n\r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication();\r\n\r\n $q.all([\r\n BankAccountFactory.getBankAccountList($rootScope.accessToken).success(function (data) {\r\n $scope.bankAccounts = data;\r\n $scope.refreshGrid(0,null);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n BankAccountFactory.getNewBankAccount().success(function (data) {\r\n $scope.newbankAccount = data; \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () { \r\n }); \r\n };\r\n\r\n var getBankAccount = function (id) {\r\n BankAccountFactory.getBankAccountDetails(id).success(function (data) {\r\n $scope.bankAccount = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n init(0); \r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex, Key) { \r\n $('#gridBankAccount').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.bankAccounts,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n noDataText: \"No Bank Accounts Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: grdReadyAction,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: $scope.pageSize,\r\n pageIndex: PageIndex\r\n },\r\n scrolling: {\r\n mode: 'standard'\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'Bank Name',\r\n dataField: 'BankName',\r\n cssClass: 'BankName',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('').text(options.data.BankName).appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Bank Number',\r\n dataField: 'BankNumber',\r\n cssClass: 'BankNumber',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('').text(options.data.BankNumber).appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Account Number',\r\n dataField: 'AccountNumber',\r\n cssClass: 'AccountNumber',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('').text(options.data.AccountNumber).appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Owner',\r\n dataField: 'Owner',\r\n cssClass: 'Owner',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('').text(options.data.Owner).appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n getBankAccount(selectedRowsInfo.selectedRowsData[0].Id);\r\n }\r\n else $scope.bankAccount = angular.copy($scope.newbankAccount);\r\n\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Bank Account\"; \r\n }\r\n\r\n });\r\n\r\n if (Key != null && Key > 0) {\r\n var dataGrid = $('#gridBankAccount').dxDataGrid('instance');\r\n (dataGrid as unknown as FacnmDx).selectRows([Key]);\r\n }\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.addNewEntity = function () {\r\n $rootScope.pageTitle = \"New Bank Account\";\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.bankAccount = angular.copy($scope.newbankAccount); \r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n BankAccountFactory.deleteBankAccount($scope.bankAccount.Id).success(function (data) {\r\n BankAccountFactory.getBankAccountList($rootScope.accessToken).success(function (data) {\r\n var dataGrid = $('#gridBankAccount').dxDataGrid('instance'); \r\n var pageindex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.bankAccounts = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex, null); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Bank Account successfully' });\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridBankAccount').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false;\r\n $scope.bankAccountForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db bankaccount and set to scope.bankaccount.\r\n getBankAccount($scope.bankAccount.Id);\r\n }\r\n else {\r\n angular.copy($scope.newbankAccount, $scope.bankAccount);\r\n } \r\n $scope.bankAccountForm.$setPristine();\r\n $scope.bankAccountForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Bank Account details were reset' }); \r\n };\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.bankAccountForm.$valid) {\r\n $scope.saveBankAccount();\r\n $scope.bankAccountForm.submitted = false;\r\n } else {\r\n $scope.bankAccountForm.submitted = true;\r\n }\r\n };\r\n\r\n $scope.saveBankAccount = function () {\r\n var pageindex, id;\r\n $scope.closeModelStateErrors();\r\n BankAccountFactory.saveBankAccount($scope.bankAccount).success(function (bankAccountId) {\r\n BankAccountFactory.getBankAccountList($rootScope.accessToken).success(function (data) { \r\n var dataGrid = $('#gridBankAccount').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n pageindex = dataGrid.pageIndex();\r\n $scope.bankAccounts = data;\r\n if ($scope.bankAccount.Id > 0) {\r\n $scope.refreshGrid(pageindex, $scope.bankAccount.Id) \r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex, null); \r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n if ($scope.bankAccount.Id > 0) { \r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Bank Account successfully' });\r\n }\r\n else { \r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Bank Account successfully' });\r\n }\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridBankAccount', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridBankAccount', settings.GridMarginHeight);\r\n }\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n}]);","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('CompanyFactory', ['$http','settings', function ($http, settings) {\r\n return {\r\n getNewCompany: function () {\r\n return $http.get(settings.ApiURL + settings.CompanyURL + \"/newcompany\");\r\n },\r\n getCompanyDetails: function (id) {\r\n return $http.get(settings.ApiURL + settings.CompanyURL + \"/\" + id);\r\n },\r\n saveCompany: function (company) {\r\n return $http.put(settings.ApiURL + settings.CompanyURL, company);\r\n },\r\n deleteCompany: function (id) {\r\n return $http.delete(settings.ApiURL + settings.CompanyURL + \"/\" + id);\r\n },\r\n getCompanyList: function () {\r\n return $http.get(settings.ApiURL + settings.CompanyURL);\r\n },\r\n getCompanyDropDown: function(lookup) {\r\n return $http.get(settings.ApiURL + settings.CompanyURL + \"/dropdown/\" + lookup)\r\n },\r\n getNonPrintCompanyList: function (lookup) {\r\n return $http.get(settings.ApiURL + settings.CompanyURL + \"/nonprintcompanydropdown/\" + lookup)\r\n },\r\n getMsgReceiverGroups: function (lookup) {\r\n return $http.get(settings.ApiURL + settings.CompanyURL + \"/GetMsgReceiverGroups\")\r\n },\r\n getAutoEmailOptionsList: function(lookup) {\r\n return $http.get(settings.ApiURL + settings.CompanyURL + \"/GetAutoEmailOptionsList\");\r\n },\r\n };\r\n}]);\r\n\r\napp.controller('CompanyController', ['$q', '$scope', 'CompanyFactory', 'CustomerFactory', '$rootScope', 'settings', 'masterFactory', '$uibModal',\r\n function ($q, $scope, CompanyFactory, CustomerFactory, $rootScope, settings, masterFactory, $uibModal) {\r\n $rootScope.pageTitle = \"Company\";\r\n $scope.companies = [];\r\n $scope.billingCustomerList = [];\r\n $scope.company = {};\r\n $scope.newCompany = {};\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.msgReceiverGroups = [];\r\n $scope.isFormVisible = false;\r\n $scope.pageSize = 20;\r\n $scope.AutoEmailOptionsLists = [];\r\n \r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication();\r\n \r\n\r\n $q.all([\r\n CompanyFactory.getCompanyList().success(function (data) {\r\n $scope.companies = data;\r\n $scope.refreshGrid(0,null); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CompanyFactory.getNewCompany().success(function (data) {\r\n $scope.newCompany = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CompanyFactory.getMsgReceiverGroups().success(function (data) {\r\n $scope.msgReceiverGroups = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CompanyFactory.getAutoEmailOptionsList().success(function (data) {\r\n $scope.AutoEmailOptionsLists = data.filter(function (s) { return s.name != 'None' });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }) \r\n ]).then(function () {\r\n });\r\n \r\n };\r\n\r\n var getCompany = function (id) {\r\n CompanyFactory.getCompanyDetails(id).success(function (data) {\r\n $scope.company = data;\r\n $rootScope.user.DefaultCustomerId = data.DefaultCustomer;\r\n $rootScope.user.DefaultCustomerName = data.DefaultCustomerName;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n init(0);\r\n \r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex, Key) { \r\n $('#gridCompany').dxDataGrid({\r\n dataSource:{\r\n store: {\r\n data: $scope.companies,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n }, \r\n noDataText: \"No Companys Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: grdReadyAction,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: $scope.pageSize,\r\n pageIndex: PageIndex\r\n },\r\n scrolling: {\r\n mode: 'standard'\r\n },\r\n sorting: {\r\n mode: 'single' \r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'Name',\r\n dataField: 'name',\r\n cssClass: 'name',\r\n dataType: 'string',\r\n alignment: 'center',\r\n sortIndex: 0,\r\n sortOrder: 'asc',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.name)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Description',\r\n dataField: 'name2',\r\n cssClass: 'name2',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.name2)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Address',\r\n dataField: 'StreetAddress',\r\n cssClass: 'StreetAddress',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.StreetAddress)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Suburb',\r\n dataField: 'Suburb',\r\n cssClass: 'Suburb',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Suburb)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Post Code',\r\n dataField: 'ZipCode',\r\n cssClass: 'ZipCode',\r\n dataType: 'string',\r\n alignment: 'center',\r\n width: 150,\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.ZipCode)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n getCompany(selectedRowsInfo.selectedRowsData[0].Id); \r\n }\r\n else $scope.company = angular.copy($scope.newCompany); \r\n \r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Company\"; \r\n }\r\n\r\n });\r\n };\r\n\r\n $scope.viewBillingCustomerModal = function () {\r\n $uibModal.open({\r\n templateUrl: 'app-legacy/Entities/templates/defaultCustomerModel.html',\r\n controller: 'BillingCustomerController',\r\n size: 'lg',\r\n scope: $scope,\r\n windowTemplateUrl: 'app-legacy/Entities/templates/modal-scrollable-content.html'\r\n });\r\n };\r\n \r\n // Button click functions and submit form function\r\n $scope.addNewEntity = function () {\r\n $rootScope.pageTitle = \"New Company\";\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.company = angular.copy($scope.newCompany); \r\n ToggleGreenToYellow(); \r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n CompanyFactory.deleteCompany($scope.company.Id).success(function (data) {\r\n var dataGrid = $('#gridCompany').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n dataGrid.clearSelection();\r\n init(pageIndex);\r\n $scope.isFormVisible = false;\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Company successfully' });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridCompany').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false;\r\n $scope.companyForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db bankaccount and set to scope.bankaccount.\r\n getCompany($scope.company.Id);\r\n }\r\n else {\r\n angular.copy($scope.newCompany, $scope.company);\r\n }\r\n //if ($scope.companyCopy != null && !angular.equals($scope.company, $scope.companyCopy)) {\r\n // $rootScope.pageTitle = \"Company\";\r\n // angular.copy($scope.companyCopy, $scope.company);\r\n //}\r\n //else {\r\n // $rootScope.pageTitle = \"New Company\";\r\n // $scope.company = angular.copy($scope.newCompany);\r\n // $scope.companyCopy = angular.copy($scope.company);\r\n //} \r\n //ToggleYellowToGreen();\r\n $scope.companyForm.$setPristine();\r\n $scope.companyForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Company details were reset' }); \r\n };\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.companyForm.$valid) {\r\n if ($scope.company.Id != null && $scope.company.Id > 0) { // update\r\n $scope.saveCompany($scope.companies.IsPrintCompany);\r\n $scope.companyForm.submitted = false;\r\n }\r\n else { // new company\r\n $('#SaveModal').modal({ backdrop: 'static' });\r\n }\r\n } else {\r\n $scope.companyForm.submitted = true;\r\n }\r\n };\r\n\r\n $scope.saveCompany = function (IsPrintCompany) {\r\n $('#SaveModal').modal('hide');\r\n var pageindex, id;\r\n $scope.company.IsPrintCompany = IsPrintCompany;\r\n $scope.company.DefaultCustomer = $rootScope.user.DefaultCustomerId;\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n CompanyFactory.saveCompany($scope.company).success(function (data) {\r\n CompanyFactory.getCompanyList($rootScope.accessToken).success(function (data) {\r\n var dataGrid = $('#gridCompany').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n pageindex = dataGrid.pageIndex();\r\n $scope.companies = data;\r\n if ($scope.company.Id > 0) {\r\n $scope.refreshGrid(pageindex, $scope.company.Id)\r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex, null);\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n if ($scope.company.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Company successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Company successfully' });\r\n }\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridCompany', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridCompany', settings.GridMarginHeight);\r\n }\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n\r\n $scope.filter = function (input, id) {\r\n var i = 0, len = input.length;\r\n for (; i < len; i++) {\r\n if (+input[i].Id == +id) {\r\n return input[i];\r\n }\r\n }\r\n return null;\r\n };\r\n}]);\r\n\r\napp.controller('BillingCustomerController',['$q', '$scope', 'CustomerFactory', 'settings', 'masterFactory', '$uibModalInstance', '$rootScope',\r\n function ($q, $scope, CustomerFactory, settings, masterFactory, $uibModalInstance, $rootScope) {\r\n $scope.filterOptions = {\r\n CustomerNo: null, CustomerName: null, CustomerAddress: null,\r\n GridPagerOptions: { PageIndex: 0, PageSize: 20, TotalPages: null }\r\n };\r\n $scope.TotalCount = null;\r\n $scope.BillingcustomerGridDataSource = [];\r\n $scope.BillingCustomerName = [];\r\n $scope.TitleName = \"Billing Customer\";\r\n\r\n $scope.customerGridDataSource = function() {\r\n var dataSource = {store: new DevExpress.data.CustomStore({\r\n // DataSource Configuration\r\n key: [\"Id\", \"Position\"],\r\n pageSize: $scope.PageSize,\r\n // Data Access Logic\r\n load: function (loadOptions) {\r\n var d = $.Deferred();\r\n var params = {};\r\n\r\n if (loadOptions != undefined) {\r\n $scope.filterOptions.CustomerName = null;\r\n $scope.filterOptions.CustomerAddress = null;\r\n $scope.filterOptions.CustomerNo = null;\r\n if (loadOptions.filter != undefined) { // accessing grid filter values \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\") $scope.filterOptions.CustomerName = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"Id\") $scope.filterOptions.CustomerNo = loadOptions.filter[i][2];\r\n }\r\n }\r\n }\r\n $scope.filterOptions.GridPagerOptions.PageSize = (IsUndefinedOrNull(loadOptions.take) == true) ? $scope.PageSize : loadOptions.take;\r\n $scope.filterOptions.GridPagerOptions.PageIndex = ((IsUndefinedOrNull(loadOptions.take) && IsUndefinedOrNull(loadOptions.skip)) == true) ? 0 : (loadOptions.skip / loadOptions.take);\r\n }\r\n CustomerFactory.getBillingCustomers($scope.filterOptions).success(function (data) {\r\n d.resolve(data.BillingCustomerListVM, { totalCount: data.TotalCount });\r\n $scope.TotalCount = data.TotalCount;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n });\r\n return d.promise();\r\n },\r\n byKey: function (key, extra) {\r\n },\r\n update: function (values) {\r\n }\r\n })\r\n }\r\n return dataSource;\r\n };\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex, Key) {\r\n $scope.originalId = 0;\r\n $scope.originalPos = 0;\r\n $scope.error = '';\r\n $('#gridBillingCustomer').dxDataGrid({\r\n columns: [\r\n { caption: 'Customer Id', dataField: 'Id', cssClass: 'Number', alignment: 'center', dataType: 'string', width: 100 },\r\n {\r\n caption: 'Customer Name', dataField: 'Name1', cssClass: 'FullName', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Name1)\r\n .append(\"
\")\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n $('')\r\n .text(options.data.Name2)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n contentReadyAction: grdReadyAction,\r\n dataSource: $scope.customerGridDataSource(),\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n noDataText: \"No Customers Found\",\r\n paging: { pageSize: $scope.PageSize, pageIndex: PageIndex },\r\n pager: { visible: true, allowedPageSizes: [10, 20, 30], showPageSizeSelector: true },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'single' },\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $scope.saveSelection(selectedRowsInfo);\r\n }\r\n },\r\n scrolling: { mode: 'standard' },\r\n showBorders: true,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n sorting: { mode: 'none' },\r\n wordWrapEnabled: true\r\n });\r\n\r\n if (Key != null && Key > 0) {\r\n var dataGrid = $('#gridBillingCustomer').dxDataGrid('instance');\r\n (dataGrid as unknown as FacnmDx).selectRows([Key]);\r\n }\r\n };\r\n\r\n // Helping functions and events\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridBillingCustomer', settings.GridMarginHeight);\r\n };\r\n \r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel'); \r\n };\r\n\r\n $scope.saveSelection = function(selectedRowsInfo) {\r\n if(!selectedRowsInfo) {\r\n $rootScope.user.DefaultCustomerId = $scope.TempDefaultCustomerId != null ? $scope.TempDefaultCustomerId : $rootScope.user.DefaultCustomerId;\r\n $rootScope.user.DefaultCustomerName = $scope.TempDefaultCustomerName != null ? $scope.TempDefaultCustomerName : $rootScope.user.DefaultCustomerName;\r\n $uibModalInstance.close();\r\n } \r\n else {\r\n $scope.TempDefaultCustomerId = selectedRowsInfo.selectedRowsData[0].Id;\r\n $scope.TempDefaultCustomerName = selectedRowsInfo.selectedRowsData[0].Name1;\r\n }\r\n }\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $('body').on('click', function (e) {\r\n if ($(e.target).parents('[data-toggle=\"popover\"]').length === 0) {\r\n $('[data-toggle=\"popover\"]').popover('hide');\r\n }\r\n });\r\n\r\n \r\n // Initialization - this runs on load\r\n var init = function () {\r\n masterFactory.verifyAuthentication();\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n CustomerFactory.getBillingCustomers($scope.filterOptions).success(function(data){\r\n $scope.BillingcustomerGridDataSource = data;\r\n }).error(function (data, status){\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n $scope.refreshGrid(0, null);\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n init();\r\n\r\n}]);\r\n","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow } from '@legacy/App';\r\n\r\napp.factory('ConfigurationGroupFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getConfigurationGroupList: function () {\r\n return $http.get(settings.ApiURL + settings.ConfigurationGroupURL);\r\n },\r\n getConfigurationGroupByID: function (id) {\r\n return $http.get(settings.ApiURL + settings.ConfigurationGroupURL + \"/\" + id);\r\n },\r\n saveConfigurationGroup: function (ConfigurationGroup) {\r\n return $http.put(settings.ApiURL + settings.ConfigurationGroupURL, ConfigurationGroup);\r\n },\r\n deleteConfigurationGroup: function (id) {\r\n return $http.delete(settings.ApiURL + settings.ConfigurationGroupURL + \"/\" + id);\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('ConfigurationGroupController',['$q', '$scope', 'ConfigurationGroupFactory', '$rootScope', 'settings', 'masterFactory',\r\n function ($q, $scope, ConfigurationGroupFactory, $rootScope, settings, masterFactory) {\r\n $rootScope.pageTitle = \"Configuration Group Management\";\r\n $scope.configurationGroupList = [];\r\n $scope.configurationGroup = {};\r\n $scope.newconfigurationGroup = {};\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.isNewConfigurationGroup = false;\r\n $scope.isAssignedVehicleSelected = false;\r\n $scope.isUnassignedVehicleSelected = false;\r\n $scope.isAssignedDriverSelected = false;\r\n $scope.isUnassignedDriverSelected = false;\r\n\r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication();\r\n \r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n ConfigurationGroupFactory.getConfigurationGroupList().success(function (data) {\r\n $scope.configurationGroupList = data;\r\n $scope.refreshGrid(pageIndex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n }),\r\n ConfigurationGroupFactory.getConfigurationGroupByID(0).success(function (data) {\r\n $scope.newconfigurationGroup = data; \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n\r\n });\r\n };\r\n\r\n var getConfigurationGroupDetails = function (id) {\r\n ConfigurationGroupFactory.getConfigurationGroupByID(id).success(function (data) {\r\n $scope.configurationGroup = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n init(0);\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex) {\r\n $('#gridConfigurationGroup').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.configurationGroupList,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n columns: [\r\n { alignment: 'center', caption: 'Group ID', dataField: 'Id', cssClass: 'Id', dataType: 'number', },\r\n {\r\n alignment: 'center', caption: '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 container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n contentReadyAction: grdReadyAction,\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n noDataText: \"No Configuration Groups Found\",\r\n pager: { showPageSizeSelector: true, allowedPageSizes: [10, 20, 30] },\r\n paging: { pageSize: $scope.pageSize, pageIndex: PageIndex },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'single' },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ConfigurationGroupFactory.getConfigurationGroupByID(selectedRowsInfo.selectedRowsData[0].Id).success(function (data) {\r\n $scope.configurationGroup = data;\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid(); \r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n $scope.isNewConfigurationGroup = false;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Configuration Group Management\";\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n $scope.configurationGroup = angular.copy($scope.newConfigurationGroup);\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshAssignedVehiclesGrid = function () {\r\n $scope.isAssignedVehicleSelected = false;\r\n\r\n $('#gridAssignedVehicles').dxDataGrid({\r\n dataSource: $scope.configurationGroup.AssignedVehicles,\r\n columns: [\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: '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 container.addClass('grid-cell-align-left');\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: 'center', 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 container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n height: 470,\r\n paging: { pageSize: 10 },\r\n pager: { showPageSizeSelector: false },\r\n rowAlternationEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selection: { mode: 'multiple' },\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n $scope.isAssignedVehicleSelected = true;\r\n }\r\n else {\r\n $scope.isAssignedVehicleSelected = false;\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshUnAssignedVehiclesGrid = function () {\r\n $scope.isUnassignedVehicleSelected = false;\r\n\r\n $('#gridUnAssignedVehicles').dxDataGrid({\r\n dataSource: $scope.configurationGroup.UnassignedVehicles,\r\n columns: [\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: '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 container.addClass('grid-cell-align-left');\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: 'center', 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 container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false, },\r\n height: 470,\r\n paging: { pageSize: 10 },\r\n pager: { showPageSizeSelector: false },\r\n rowAlternationEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selection: { mode: 'multiple' },\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n $scope.isUnassignedVehicleSelected = true;\r\n }\r\n else {\r\n $scope.isUnassignedVehicleSelected = false;\r\n }\r\n }\r\n });\r\n };\r\n\r\n //Button click functions\r\n $scope.addNewConfigurationGroup = function () {\r\n $rootScope.pageTitle = \"New Configuration Group Management\";\r\n $scope.configurationGroup = angular.copy($scope.newconfigurationGroup);\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid(); \r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.isNewConfigurationGroup = true;\r\n ToggleGreenToYellow(); \r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n ConfigurationGroupFactory.deleteConfigurationGroup($scope.configurationGroup.Id).success(function (data) {\r\n ConfigurationGroupFactory.getConfigurationGroupList().success(function (data) {\r\n var dataGrid = $('#gridConfigurationGroup').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.configurationGroupList = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex);\r\n }).error(function () {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Configuration Group successfully' });\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var gridcontrol = $('#gridConfigurationGroup')\r\n if(gridcontrol != null) {\r\n var dataGrid = gridcontrol.dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n }\r\n $scope.isFormVisible = false;\r\n $scope.configurationGroupForm.$submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db ConfigurationGroup and set to scope.configurationGroup.\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ConfigurationGroupFactory.getConfigurationGroupByID($scope.configurationGroup.Id).success(function (data) {\r\n $scope.configurationGroup = data;\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid(); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n $scope.configurationGroup = angular.copy($scope.newconfigurationGroup);\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid(); \r\n }\r\n\r\n $scope.configurationGroupForm.$setPristine();\r\n $scope.configurationGroupForm.$submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Configuration Group details were reset' });\r\n };\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.configurationGroupForm.$valid) {\r\n $scope.saveConfigurationGroup();\r\n }\r\n };\r\n\r\n $scope.saveConfigurationGroup = function () {\r\n var pageindex, id;\r\n $scope.closeModelStateErrors();\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ConfigurationGroupFactory.saveConfigurationGroup($scope.configurationGroup).success(function (configurationGroupId) {\r\n ConfigurationGroupFactory.getConfigurationGroupList().success(function (data) {\r\n var dataGrid = $('#gridConfigurationGroup').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n pageindex = dataGrid.pageIndex();\r\n $scope.configurationGroupList = data;\r\n if ($scope.configurationGroup.Id <= 0) {\r\n $scope.cancelForm();\r\n }\r\n $scope.refreshGrid(pageindex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function (data) {\r\n if ($scope.configurationGroup.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Configuration Group successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Configuration Group successfully' });\r\n }\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n // assigning and Unassigning grid items on details panel\r\n $scope.assignVehicles = function () {\r\n var dataGrid = $('#gridUnAssignedVehicles').dxDataGrid('instance');\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var i = 0; var len = selectedRows.length;\r\n for (; i < len; i++) {\r\n var prd = $scope.filter($scope.configurationGroup.AssignedVehicles, selectedRows[i].Id);\r\n $scope.configurationGroup.UnassignedVehicles.splice($scope.configurationGroup.UnassignedVehicles.indexOf(selectedRows[i]), 1);\r\n if (prd == null) {\r\n $scope.configurationGroup.AssignedVehicles.push(selectedRows[i]);\r\n }\r\n }\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n dataGrid.clearSelection();\r\n };\r\n\r\n $scope.unassignVehicles = function () {\r\n var dataGrid = $('#gridAssignedVehicles').dxDataGrid('instance');\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var i = 0; var len = selectedRows.length;\r\n for (; i < len; i++) {\r\n $scope.configurationGroup.AssignedVehicles.splice($scope.configurationGroup.AssignedVehicles.indexOf(selectedRows[i]), 1);\r\n $scope.configurationGroup.UnassignedVehicles.push(selectedRows[i]);\r\n }\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n dataGrid.clearSelection();\r\n };\r\n\r\n $scope.assignDrivers = function () {\r\n var dataGrid = $('#gridUnAssignedDrivers').dxDataGrid('instance');\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var i = 0; var len1 = selectedRows.length;\r\n for (; i < len1; i++) {\r\n var prd = $scope.filter($scope.configurationGroup.AssignedDrivers, selectedRows[i].Id);\r\n $scope.configurationGroup.UnassignedDrivers.splice($scope.configurationGroup.UnassignedDrivers.indexOf(selectedRows[i]), 1);\r\n if (prd == null) {\r\n $scope.configurationGroup.AssignedDrivers.push(selectedRows[i]);\r\n }\r\n }\r\n $scope.refreshAssignedDriversGrid();\r\n $scope.refreshUnAssignedDriversGrid();\r\n dataGrid.clearSelection();\r\n };\r\n\r\n $scope.unassignDrivers = function () {\r\n var dataGrid = $('#gridAssignedDrivers').dxDataGrid('instance');\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var i = 0; var len = selectedRows.length;\r\n for (; i < len; i++) {\r\n $scope.configurationGroup.AssignedDrivers.splice($scope.configurationGroup.AssignedDrivers.indexOf(selectedRows[i]), 1);\r\n $scope.configurationGroup.UnassignedDrivers.push(selectedRows[i]);\r\n }\r\n $scope.refreshAssignedDriversGrid();\r\n $scope.refreshUnAssignedDriversGrid();\r\n dataGrid.clearSelection();\r\n };\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridConfigurationGroup', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridConfigurationGroup', settings.GridMarginHeight);\r\n }\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.filter = function (input, id) {\r\n var i = 0, len = input.length;\r\n for (; i < len; i++) {\r\n if (+input[i].Id == +id) {\r\n return input[i];\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n }]);\r\n","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('CustomerFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getFilteredCustomerList: function (filterOptions) {\r\n return $http.put(settings.ApiURL + settings.CustomerURL + \"/filter\", filterOptions);\r\n },\r\n getCustomerById: function (id, position) {\r\n return $http.get(settings.ApiURL + settings.CustomerURL + \"/\" + id + \"/\" + position);\r\n },\r\n getBillingCustomers: function (filterOptions) {\r\n return $http.put(settings.ApiURL + settings.CustomerURL + \"/billingcustomer\",filterOptions);\r\n },\r\n getNewCustomer: function () {\r\n return $http.get(settings.ApiURL + settings.CustomerURL + \"/newcustomer\");\r\n },\r\n saveCustomer: function (customer, originalId, originalPos) {\r\n return $http.put(settings.ApiURL + settings.CustomerURL + \"/\" + originalId + \"/\" + originalPos, customer);\r\n },\r\n saveCustomerType: function (customerType) {\r\n return $http.put(settings.ApiURL + settings.MasterDataURL + \"/customertypes\", customerType);\r\n },\r\n deleteCustomer: function (id, position) {\r\n return $http.delete(settings.ApiURL + settings.CustomerURL + \"/\" + id + \"/\" + position);\r\n },\r\n getCountryList: function () {\r\n return $http.get(settings.ApiURL + settings.MasterDataURL + \"/countries/0\");\r\n },\r\n getPaymentTermList: function (companyId) {\r\n if (companyId == null) companyId = 0;\r\n return $http.get(settings.ApiURL + settings.PaymentTermsURL + \"/paymentterms/\" + companyId + \"/1\");\r\n },\r\n getSpecialPriceGroupList: function () {\r\n return $http.get(settings.ApiURL + settings.SpecialPriceGroupURL + \"/1\");\r\n },\r\n getCustomerSpecialPriceList: function (id) {\r\n return $http.get(settings.ApiURL + settings.SpecialPricesURL + \"/bycustomer/\" + id);\r\n },\r\n getCustomerSpecialPriceById: function (id) {\r\n return $http.get(settings.ApiURL + settings.SpecialPricesURL + \"/\" + id);\r\n },\r\n getLanguageList: function () {\r\n return $http.get(settings.ApiURL + settings.MasterDataURL + \"/languages/0\");\r\n },\r\n getCustomerTypeList: function () {\r\n return $http.get(settings.ApiURL + settings.MasterDataURL + \"/customertypes/0\");\r\n },\r\n getUnloadPointList: function () {\r\n return $http.get(settings.ApiURL + settings.UnloadPointURL);\r\n },\r\n getProductList: function (groupId) {\r\n return $http.get(settings.ApiURL + settings.ProductURL + \"/withgroupspecialprices/\" + groupId);\r\n },\r\n getProductDropdown: function () {\r\n return $http.get(settings.ApiURL + settings.ProductURL + \"/dropdown/0\");\r\n },\r\n getUnloadPointById: function (id, customerId, position) {\r\n return $http.get(settings.ApiURL + settings.UnloadPointURL + \"/\" + id + \"/\" + customerId + \"/\" + position);\r\n },\r\n getLastDeliveryLocationById: function (customerId, position) {\r\n return $http.get(settings.ApiURL + settings.UnloadPointURL + \"/lastDeliveryLocation/\" + customerId + \"/\" + position);\r\n },\r\n getBillQuantityTypeList: function () {\r\n return $http.get(settings.ApiURL + settings.CustomerURL + \"/GetBillQuantityTypeList\");\r\n },\r\n getAutoEmailOptionsList: function () {\r\n return $http.get(settings.ApiURL + settings.CustomerURL + \"/GetAutoEmailOptionsList\");\r\n },\r\n getSignatureSettingsOptionList: function () {\r\n return $http.get(settings.ApiURL + settings.CustomerURL + \"/SignatureSettingsOptionList\");\r\n },\r\n getProductOptions: function () {\r\n return $http.get(settings.ApiURL + settings.CustomerURL + \"/ProductOptions\");\r\n },\r\n getPrintOptions: function () {\r\n return $http.get(settings.ApiURL + settings.CustomerURL + \"/PrintOptions\");\r\n },\r\n getStrappingChartProfile: function(){\r\n return $http.get(settings.ApiURL + settings.StrappingChartProfilesURL + \"/list\");\r\n },\r\n getDippingType: function(){\r\n return $http.get(settings.ApiURL + settings.UnloadPointURL + \"/getUnloadPointDippingTypes\");\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('CustomerController', ['$q', '$scope', 'CustomerFactory', 'CompanyFactory', '$rootScope', 'settings', 'masterFactory', '$uibModal','ProductFactory',\r\n function ($q, $scope, CustomerFactory, CompanyFactory, $rootScope, settings, masterFactory, $uibModal,ProductFactory) {\r\n $rootScope.pageTitle = \"Customers\";\r\n $scope.customerList = [];\r\n $scope.customer = {};\r\n $scope.billingCustomerList = [];\r\n $scope.CustomerPositionList = [];\r\n $scope.companies = [];\r\n $scope.nonPrintCompanies = [];\r\n $scope.deletedUnloadPoints = [];\r\n $scope.deletedSpecialPriceProducts = [];\r\n $scope.signatureSettingsOptions = [];\r\n $scope.printOptions = [];\r\n $scope.productOptions = [];\r\n\r\n $scope.priceGroupText = \"\";\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.deletMessage = 'Are you sure you want to delete?';\r\n $scope.originalId = 0;\r\n $scope.originalPos = 0;\r\n $scope.popupVisible = false;\r\n $scope.productDropdown = [];\r\n $scope.PageSize = 20;\r\n $scope.TotalCount = null;\r\n $scope.strappingChartProfileDropdown = [];\r\n $scope.lastDeliveryLocation = [];\r\n $scope.dippingTypes = [];\r\n $scope.filterOptions = {\r\n CustomerNo: null, CustomerName: null, CustomerAddress: null,\r\n GridPagerOptions: { PageIndex: 0, PageSize: 20, TotalPages: null }\r\n };\r\n\r\n $scope.popupOptionsUnloadPointGrid = {\r\n width: 350,\r\n height: 150,\r\n fullScreen: false,\r\n shading: true,\r\n showTitle: true,\r\n dragEnabled: false,\r\n closeOnOutsideClick: true,\r\n bindingOptions: {\r\n visible: 'popupVisible',\r\n }\r\n };\r\n $scope.defaultItem = {Id:null, ProfileId:\"Select\"};\r\n $scope.defaultDippingType = {id:null, name:\"Default\"};\r\n\r\n var customerGridDataSource = {\r\n store: new DevExpress.data.CustomStore({\r\n // DataSource Configuration\r\n key: [\"Id\", \"Position\"],\r\n pageSize: $scope.PageSize,\r\n // Data Access Logic\r\n load: function (loadOptions) {\r\n var d = $.Deferred();\r\n var params = {};\r\n\r\n if (loadOptions != undefined) {\r\n $scope.filterOptions.CustomerName = null;\r\n $scope.filterOptions.CustomerAddress = null;\r\n $scope.filterOptions.CustomerNo = null;\r\n if (loadOptions.filter != undefined) { // accessing grid filter values \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\") $scope.filterOptions.CustomerName = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"Address\") $scope.filterOptions.CustomerAddress = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"Number\") $scope.filterOptions.CustomerNo = loadOptions.filter[i][2];\r\n }\r\n }\r\n }\r\n $scope.filterOptions.GridPagerOptions.PageSize = (IsUndefinedOrNull(loadOptions.take) == true) ? $scope.PageSize : loadOptions.take;\r\n $scope.filterOptions.GridPagerOptions.PageIndex = ((IsUndefinedOrNull(loadOptions.take) && IsUndefinedOrNull(loadOptions.skip)) == true) ? 0 : (loadOptions.skip / loadOptions.take);\r\n }\r\n CustomerFactory.getFilteredCustomerList($scope.filterOptions).success(function (data) {\r\n d.resolve(data.CustomerListVM, { totalCount: data.TotalCount });\r\n $scope.TotalCount = data.TotalCount;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n });\r\n return d.promise();\r\n },\r\n byKey: function (key, extra) {\r\n },\r\n update: function (values) {\r\n }\r\n })\r\n };\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex, Key) {\r\n $scope.originalId = 0;\r\n $scope.originalPos = 0;\r\n $scope.error = '';\r\n $('#gridCustomer').dxDataGrid({\r\n columns: [\r\n { caption: 'Customer No', dataField: 'Number', cssClass: 'Number', alignment: 'center', dataType: 'string', width: 100 },\r\n {\r\n caption: 'Customer Name', dataField: 'FullName', cssClass: 'FullName', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Name1)\r\n .append(\"
\")\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n $('')\r\n .text(options.data.Name2)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Customer Address', dataField: 'Address', cssClass: 'Address', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n var addressLine2 = \"\";\r\n if (options.data.PostcodeString != null) addressLine2 = addressLine2 + options.data.PostcodeString + \" \";\r\n if (options.data.City != null) addressLine2 = addressLine2 + options.data.City + \" \";\r\n if (options.data.District != null) addressLine2 = addressLine2 + options.data.District + \" \";\r\n if (options.data.State != null) addressLine2 = addressLine2 + options.data.State;\r\n $('')\r\n .text(options.data.Address)\r\n .append(\"
\")\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n $('')\r\n .text(addressLine2)\r\n .append(\"
\")\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n contentReadyAction: grdReadyAction,\r\n dataSource: customerGridDataSource,\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n noDataText: \"No Customers Found\",\r\n paging: { pageSize: $scope.PageSize, pageIndex: PageIndex },\r\n pager: { visible: true, allowedPageSizes: [10, 20, 30], showPageSizeSelector: true },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'single' },\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $scope.getCustomer(selectedRowsInfo.selectedRowsData[0].Id,selectedRowsInfo.selectedRowsData[0].Position); \r\n }\r\n },\r\n scrolling: { mode: 'standard' },\r\n showBorders: true,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n sorting: { mode: 'none' },\r\n wordWrapEnabled: true\r\n });\r\n\r\n if (Key != null && Key > 0) {\r\n var dataGrid = $('#gridCustomer').dxDataGrid('instance');\r\n (dataGrid as unknown as FacnmDx).selectRows([Key]);\r\n }\r\n };\r\n\r\n $scope.viewBillingCustomerModal = function () {\r\n $uibModal.open({\r\n templateUrl: 'app-legacy/Entities/templates/defaultCustomerModel.html',\r\n controller: 'BillingCustomerController',\r\n size: 'lg',\r\n scope: $scope,\r\n windowTemplateUrl: 'app-legacy/Entities/templates/modal-scrollable-content.html'\r\n });\r\n };\r\n\r\n $scope.viewProductList = function () {\r\n $uibModal.open({\r\n templateUrl: 'app-legacy/Entities/templates/defaultCustomerModel.html',\r\n controller: 'ProductListController',\r\n size: 'lg',\r\n scope: $scope,\r\n windowTemplateUrl: 'app-legacy/Entities/templates/modal-scrollable-content.html'\r\n }).result.then(function () {\r\n $scope.unloadPoint.ProductId = $rootScope.user.ProductId;\r\n $scope.unloadPoint.ProductName = $rootScope.user.ProductName;\r\n $scope.onUnloadPointChange();\r\n }).catch(function () {\r\n });\r\n $scope.unloadPointId = $scope.unloadPoint.Id;\r\n };\r\n\r\n $scope.isCompanyIdInArray = function (companies, id) {\r\n for (var i = 0; i < companies.length; i++) {\r\n if (companies[i].Id == id) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n $scope.refreshUnloadPointGrid = function () {\r\n $scope.isUnloadPointSelected = false;\r\n $scope.deletedUnloadPoints = [];\r\n $('#gridUnloadPoint').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.customer.UnloadPoints,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n columnAutoWidth: true,\r\n height: 230,\r\n selection: { mode: 'single' },\r\n editing: {\r\n editEnabled: false,\r\n insertEnabled: false\r\n },\r\n paging: {\r\n pageSize: 10\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: false\r\n },\r\n groupPanel: {\r\n visible: false\r\n },\r\n columns: [\r\n {\r\n caption: 'Unload Point',\r\n dataField: 'Id',\r\n dataType: 'number',\r\n alignment: 'center'\r\n },\r\n {\r\n caption: 'Tank Number',\r\n dataField: 'TankNumber',\r\n dataType: 'string',\r\n alignment: 'center'\r\n },\r\n {\r\n width: 100,\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('').addClass('dx-link')\r\n .text('Delete')\r\n .on('dxclick', function () {\r\n if ($scope.customer.UnloadPoints.length > 1) {\r\n $(\"#gridUnloadPoint\").dxDataGrid(\"instance\").removeRow(options.rowIndex);\r\n $scope.deletedUnloadPoints.push(options.data);\r\n }\r\n else {\r\n $scope.popupVisible = true;\r\n }\r\n })\r\n .appendTo(container);\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0 && !selectedRowsInfo.selectedRowsData[0].Changed) {\r\n //$('#loadingModal').modal({ backdrop: 'static' });\r\n CustomerFactory.getUnloadPointById(selectedRowsInfo.selectedRowsData[0].Id, $scope.customer.Id, $scope.customer.Position).success(function (data) {\r\n $scope.unloadPoint = data;\r\n $scope.isUnloadPointSelected = true;\r\n $scope.isIdenticalToCustomer = $scope.unloadPoint.Name1 == null;\r\n if(data.CustomerPos != data.LastDeliveryCustomerPos && data.LastDeliveryCustomerPos > 0)\r\n {\r\n CustomerFactory.getLastDeliveryLocationById(data.CustomerId, data.LastDeliveryCustomerPos).success(function (data){\r\n $scope.lastDeliveryLocation = data\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else{\r\n $scope.lastDeliveryLocation = [];\r\n }\r\n if ($scope.unloadPoint.ProductId) {\r\n ProductFactory.getProductDetails($scope.unloadPoint.ProductId).success(function (data) {\r\n $scope.unloadPoint.ProductName = data.ShortProductName;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n $scope.isUnloadPointSelected = false;\r\n }).finally(function () {\r\n //$('#loadingModal').modal('hide');\r\n });\r\n }\r\n else if (selectedRowsInfo.selectedRowsData.length > 0 && selectedRowsInfo.selectedRowsData[0].Changed) {\r\n $scope.unloadPoint = selectedRowsInfo.selectedRowsData[0];\r\n $scope.isUnloadPointSelected = true;\r\n $scope.isIdenticalToCustomer = $scope.unloadPoint.Name1 == null;\r\n $rootScope.user.ProductId = 0;\r\n $rootScope.user.ProductName= '';\r\n }\r\n else {\r\n $scope.unloadPoint = {};\r\n $scope.isUnloadPointSelected = false;\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshDeliveryCustomerGrid = function () {\r\n $('#gridDeliveryCustomer').dxDataGrid({\r\n dataSource: $scope.customer.DeliveryCustomers,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n height: 230,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: 10\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'Number',\r\n dataField: 'Number',\r\n cssClass: 'Number',\r\n dataType: 'string',\r\n alignment: 'center'\r\n },\r\n {\r\n caption: 'Name',\r\n dataField: 'Name1',\r\n cssClass: 'Name1',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('').text(options.data.Name1).appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n var selectedDeliveryCustomer = selectedRowsInfo.selectedRowsData[0];\r\n var dataGrid = $('#gridCustomer').dxDataGrid('instance');\r\n\r\n dataGrid.clearSelection();\r\n (dataGrid as unknown as FacnmDx).selectRows(selectedRowsInfo.selectedRowsData[0]);\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshSpecialPriceGrid = function () {\r\n $('#gridSpecialPrice').dxDataGrid({\r\n dataSource: $scope.customer.SpecialPriceProducts,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n height: 230,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: 10\r\n },\r\n editing: {\r\n editEnabled: false,\r\n insertEnabled: true,\r\n removeEnabled: true\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n columns: [\r\n {\r\n caption: 'Product',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n container.addClass('grid-cell-align-left');\r\n if (options.data.ProductName != undefined && options.data.ProductId != undefined && options.data.Price != undefined) {\r\n var span = document.createElement(\"span\");\r\n var t = document.createTextNode(options.data.ProductName);\r\n span.appendChild(t);\r\n container.get(0).appendChild(span);\r\n }\r\n else {\r\n var div = document.createElement(\"div\");\r\n container.get(0).appendChild(div);\r\n $(div).dxSelectBox({\r\n dataSource: $scope.productList,\r\n valueExpr: 'Id',\r\n displayExpr: 'ProductName',\r\n value: options.value,\r\n valueChangeAction: function (e) {\r\n options.data.ProductName = $scope.filter($scope.productList, e.value).ProductName;\r\n options.data.ProductId = e.value;\r\n var product = $scope.filter($scope.productList, e.value);\r\n var groupPrices = (product != null && product.GroupSpecialPrices != null && product.GroupSpecialPrices.length > 0) ? product.GroupSpecialPrices : null;\r\n if (groupPrices != null) {\r\n\r\n var rows = \"\";\r\n groupPrices.forEach(function (row) {\r\n rows = rows + \"\";\r\n });\r\n rows = rows + \"
> \" + row.MinimumQty + \" \" + product.QuantityUnit + \":\" + row.Price + \"/ \" + product.PricePer + \" \" + product.QuantityUnit + \"
\";\r\n var tag = document.getElementById('newTag');\r\n $(tag).attr('data-content', rows).data('bs.popover');\r\n\r\n $('#imgFlag').css('background-color', '#111111').css('cursor', 'pointer').attr('onClick', 'showGroupPrices( )');\r\n }\r\n else {\r\n $('#imgFlag').css('background-color', '#999999').css('cursor', 'default').attr('onClick', '');\r\n }\r\n }\r\n });\r\n }\r\n }\r\n },\r\n {\r\n width: 100,\r\n caption: 'Special Price',\r\n dataField: 'Price',\r\n dataType: 'number',\r\n alignment: 'center',\r\n showEditorAlways: true\r\n },\r\n {\r\n width: 80,\r\n caption: 'Discount',\r\n dataField: 'Discount',\r\n dataType: 'number',\r\n alignment: 'center',\r\n showEditorAlways: true,\r\n calculateCellValue: function (rowData) {\r\n if (rowData['Discount'] == 0) {\r\n return '';\r\n }\r\n else return rowData['Discount'];\r\n }\r\n },\r\n {\r\n width: 40,\r\n alignment: 'center',\r\n headerCellTemplate: function (container, options) {\r\n container.width(30);\r\n },\r\n cellTemplate: function (container, options) {\r\n container.width(30);\r\n var product = options.data.ProductId != undefined ? $scope.filter($scope.productList, options.data.ProductId) : null;\r\n var groupPrices = (product != null && product.GroupSpecialPrices != null && product.GroupSpecialPrices.length > 0) ? product.GroupSpecialPrices : null;\r\n if (groupPrices != null) {\r\n\r\n var rows = \"
\";\r\n groupPrices.forEach(function (row) {\r\n rows = rows + \"\";\r\n });\r\n rows = rows + \"
\" + row.MinimumQty + \" \" + product.QuantityUnit + \":\" + row.Price + \"/ \" + product.PricePer + \" \" + product.QuantityUnit + \"
\";\r\n\r\n $('
Price group information\" data-html=\"true\" data-toggle=\"popover\" data-trigger=\"hover click\" data-placement=\"bottom\" data-content=\"'\r\n + rows + '\" onClick=\"showGroupPrices(Popover' + options.data.ProductId + ')\" \"> ')\r\n .appendTo(container);\r\n }\r\n else if (options.data != null && options.data.ProductId == undefined) {\r\n $('Price group information\" data-html=\"true\" data-toggle=\"popover\" ' +\r\n ' data-placement=\"left\" data-content=\"\"> ')\r\n .appendTo(container);\r\n }\r\n else {\r\n $('')\r\n .appendTo(container);\r\n }\r\n\r\n }\r\n }\r\n ],\r\n rowInserted: function (e) {\r\n var dataGrid = $('#gridSpecialPrice').dxDataGrid('instance');\r\n var index = $scope.customer.SpecialPriceProducts.length - 1;\r\n if (e.data.Price.toString().indexOf(',') > 0) e.data.Price = e.data.Price.toString().replace(/,/g, '.');\r\n\r\n $scope.customer.SpecialPriceProducts[index].Changed = true;\r\n $scope.customer.SpecialPriceProducts[index].Price = e.data.Price;\r\n $scope.customer.SpecialPriceProducts[index].CustomerId = $scope.customer.Id != undefined ? $scope.customer.Id : 0;\r\n $scope.customer.SpecialPriceProducts[index].CustomerPosition = $scope.customer.Position;\r\n $scope.specialPrice = $scope.customer.SpecialPriceProducts[index];\r\n\r\n dataGrid.refresh();\r\n (dataGrid as unknown as FacnmDx).selectRows($scope.specialPrice);\r\n },\r\n rowRemoved: function (e) {\r\n var index = $scope.customer.SpecialPriceProducts.indexOf(e.data);\r\n e.data.Deleted = true;\r\n e.data.Changed = true;\r\n $scope.deletedSpecialPriceProducts.push(e.data);\r\n }\r\n }).dxDataGrid('instance');\r\n var grd = document.getElementById(\"gridSpecialPrice\");\r\n if (grd.getElementsByClassName(\"dx-datagrid-header-panel\")[0].childNodes.length == 1)\r\n $(' Customer Specific Price ').appendTo(grd.getElementsByClassName(\"dx-datagrid-header-panel\")[0]);\r\n\r\n };\r\n\r\n $scope.getNewCustomer = function () {\r\n CustomerFactory.getNewCustomer().success(function (data) {\r\n $scope.customer = data;\r\n //$scope.customer.Position = -1;\r\n $scope.customer.SpecialPriceProducts = [];\r\n $scope.customer.UnloadPoints = [];\r\n $scope.customer.DeliveryCustomers = [];\r\n $rootScope.user.DefaultCustomerId = data.Id;\r\n $rootScope.user.DefaultCustomerName = data.DefaultCustomerName;\r\n $scope.originalId = 0;\r\n $scope.originalPos = 0;\r\n $scope.isUnloadPointVisible = false;\r\n $scope.refreshUnloadPointGrid();\r\n $scope.refreshSpecialPriceGrid();\r\n $scope.refreshDeliveryCustomerGrid();\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.addNewEntity = function () {\r\n $rootScope.pageTitle = \"New Customer\";\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.getNewCustomer();\r\n\r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $scope.deletMessage = 'Are you sure you want to delete?';\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n $scope.error = '';\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n if ($scope.customer.Position == 1 && $scope.customer.DeliveryCustomers.length > 0 && $scope.deletMessage == 'Are you sure you want to delete?') {\r\n $scope.deletMessage = 'Related delivery customers will also be Deleted !';\r\n }\r\n else {\r\n CustomerFactory.deleteCustomer($scope.customer.Id, $scope.customer.Position).success(function (data) {\r\n var dataGrid = $('#gridCustomer').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.PageSize = dataGrid.pageSize();\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex, null);\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Customer successfully' });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridCustomer').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false;\r\n $scope.customerForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db bankaccount and set to scope.bankaccount.\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n CustomerFactory.getCustomerById($scope.customer.Id, $scope.customer.Position).success(function (data) {\r\n $scope.customer = data;\r\n $rootScope.user.DefaultCustomerId = data.Id;\r\n $rootScope.user.DefaultCustomerName = data.DefaultCustomerName;\r\n $scope.refreshUnloadPointGrid();\r\n $scope.refreshSpecialPriceGrid();\r\n $scope.refreshDeliveryCustomerGrid();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n $scope.error = '';\r\n });\r\n }\r\n else {\r\n $scope.addNewEntity();\r\n }\r\n $scope.customerForm.$setPristine();\r\n $scope.customerForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Customer details were reset' });\r\n };\r\n\r\n $scope.validateEmails = function () {\r\n var emailstr = $scope.customer.ContactEmail.replace(/\\s/g, \"\");\r\n if (emailstr.length > 0) {\r\n var emails = emailstr.split(/,|;/);\r\n var Email_Regex = /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/;\r\n if (emails && emails.length > 0) {\r\n for (var i = 0; i < emails.length; i++) {\r\n if (!Email_Regex.test(emails[i])) {\r\n $scope.customerForm.ContactEmail.$setValidity('email', false);\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n $scope.customerForm.ContactEmail.$setValidity('email', true);\r\n };\r\n\r\n $scope.submitForm = function () {\r\n var companyId = $scope.nonPrintCompanies.filter(a => a.Id == $scope.customer.CompanyId)\r\n if(companyId.length == 0){\r\n $scope.customer.CompanyId = null;\r\n }\r\n $scope.error = '';\r\n if ($scope.customerForm.$valid) {\r\n $scope.saveEntity();\r\n $scope.customerForm.submitted = false;\r\n } else {\r\n $scope.customerForm.submitted = true;\r\n }\r\n };\r\n\r\n $scope.saveEntity = function () {\r\n var id = -1;\r\n $scope.customer.UnloadPoints.forEach(function (unloadPoint) {\r\n if (unloadPoint.CustomerId == null && unloadPoint.CustomerPos == null) {\r\n unloadPoint.CustomerId = $scope.customer.Id;\r\n unloadPoint.CustomerPos = $scope.customer.Position;\r\n unloadPoint.Id = id;\r\n id--;\r\n }\r\n });\r\n $scope.customer.Id = $rootScope.user.DefaultCustomerId;\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n CustomerFactory.saveCustomer($scope.customer, $scope.originalId, $scope.originalPos).success(function (data) {\r\n $scope.closeModelStateErrors();\r\n $scope.modifiedCustomer = '';\r\n $scope.error = '';\r\n $scope.originalId = data;\r\n $scope.originalPos = $scope.customer.Position;\r\n $scope.getCustomer($scope.originalId, $scope.originalPos);\r\n var dataGrid = $('#gridCustomer').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n var keys = dataGrid.getSelectedRowKeys();\r\n $scope.pageSize = dataGrid.pageSize();\r\n if ($scope.customer.Id > 0) {\r\n if ($scope.customer.Id != $scope.originalId || $scope.customer.Position != $scope.originalPos) {\r\n $scope.modifiedCustomer = $scope.customer.Number;\r\n $scope.cancelForm();\r\n }\r\n $scope.refreshGrid(pageIndex, keys);\r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex, keys);\r\n }\r\n if ($scope.customer.Id > 0) {\r\n if ($scope.modifiedCustomer != '') {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Associated Customers (' + $scope.modifiedCustomer + ') successfully ' });\r\n $scope.modifiedCustomer = '';\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Customer successfully' });\r\n }\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Customer successfully' });\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n // New Unload point + icon click function\r\n $scope.addNewUnloadPoint = function () {\r\n var dataGrid = $('#gridUnloadPoint').dxDataGrid('instance');\r\n var len = 0;\r\n var id = 1;\r\n if ($scope.customer.UnloadPoints != null)\r\n len = $scope.customer.UnloadPoints.length;\r\n if (len > 0) {\r\n $scope.customer.UnloadPoints.forEach(function (unloadPoint) {\r\n if (unloadPoint.Id >= id)\r\n id = unloadPoint.Id + 1;\r\n });\r\n }\r\n $scope.unloadPoint = {};\r\n $scope.unloadPoint.Id = id;\r\n $scope.unloadPoint.Deleted = false\r\n $scope.unloadPoint.Changed = true;\r\n $scope.customer.UnloadPoints[len] = $scope.unloadPoint;\r\n\r\n dataGrid.refresh();\r\n (dataGrid as unknown as FacnmDx).selectRows($scope.unloadPoint);\r\n };\r\n\r\n // New Customer type button click function\r\n $scope.addnewCustomerType = function () {\r\n $('#customerTypeModal').modal({ backdrop: 'static' });\r\n CustomerFactory.saveCustomerType($scope.customerType).success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Added new Customer Type' });\r\n //DevExpress.ui.notify(\"Added new Customer Type\", \"success\", settings.ToastDuration);\r\n\r\n CustomerFactory.getCustomerTypeList().success(function (data) {\r\n $scope.customerTypes = data;\r\n $('#customerTypeModal').modal('hide');\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, 'Error on loading Customer Types: ' + data, $scope);\r\n });\r\n }).error(function (data) {\r\n $scope.modelError = data;\r\n }).finally(function () {\r\n\r\n });\r\n };\r\n\r\n $scope.onBillingCustomerChange = function () {\r\n if ($scope.originalId != 0)\r\n $scope.customer.Number = '';\r\n };\r\n\r\n $scope.onCustomerTypeChange = function () {\r\n if ($scope.originalId != 0)\r\n $scope.customer.Number = '';\r\n if ($scope.customer.Position == 0) {\r\n //var index = -1;\r\n //for (var i = 0; i < $scope.billingCustomerList.length; i++) {\r\n // if ($scope.billingCustomerList[i].Id == $scope.customer.Id)\r\n // index = i;\r\n //}\r\n //$scope.billingCustomerList.splice(index, 1);\r\n $scope.customer.Id = $scope.billingCustomerList[0].Id\r\n }\r\n };\r\n\r\n $scope.closeCustomerType = function () {\r\n $scope.customerType = null;\r\n $scope.modelError = '';\r\n $('#customerTypeModal').modal('hide');\r\n };\r\n\r\n $scope.closeModelAlert = function () {\r\n $scope.modelError = '';\r\n };\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridCustomer', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridCustomer', settings.GridMarginHeight);\r\n };\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n\r\n $scope.filter = function (input, id) {\r\n var i = 0, len = input.length;\r\n for (; i < len; i++) {\r\n if (+input[i].Id == +id) {\r\n return input[i];\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n $scope.onCompanyChange = function () {\r\n CustomerFactory.getPaymentTermList($scope.customer.CompanyId).success(function (data) {\r\n $scope.paymentTerms = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, 'Error on loading Payment Terms: ' + data, $scope);\r\n });\r\n };\r\n\r\n $scope.onUnloadPointChange = function () {\r\n var dataGrid = $('#gridUnloadPoint').dxDataGrid('instance');\r\n var selectedKey = dataGrid.getSelectedRowKeys();\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var index = $scope.customer.UnloadPoints.indexOf(selectedRows[0]);\r\n\r\n $scope.unloadPoint.Changed = true;\r\n $scope.customer.UnloadPoints[index] = $scope.unloadPoint;\r\n dataGrid.refresh();\r\n (dataGrid as unknown as FacnmDx).selectRows(selectedKey, true);\r\n };\r\n\r\n $scope.chartProfileDropDown = function(profile){\r\n if(profile.Id==null)\r\n return profile.ProfileId;\r\n else\r\n return profile.ProfileId+' - '+profile.ProfileDescription;\r\n }\r\n \r\n $scope.onPriceGroupChange = function () {\r\n if ($scope.customer.PriceGroupId != null && $scope.customer.PriceGroupId != undefined && $scope.customer.PriceGroupId > 0) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n CustomerFactory.getProductList($scope.customer.PriceGroupId).success(function (data) {\r\n $scope.productList = data;\r\n $scope.refreshSpecialPriceGrid();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, 'Error on loading Products: ' + data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n };\r\n $scope.getCustomer = function(Id,Position) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n CustomerFactory.getCustomerById(Id, Position).success(function (data) {\r\n $scope.error = '';\r\n if (!$scope.isCompanyIdInArray($scope.companies, data.CompanyId)) {\r\n data.CompanyId = null;\r\n $scope.error = \"Invalid Company is detected.\"\r\n }\r\n $rootScope.user.DefaultCustomerId = data.Id;\r\n $rootScope.user.DefaultCustomerName = data.DefaultCustomerName;\r\n $scope.customer = data;\r\n $scope.originalId = $scope.customer.Id;\r\n $scope.originalPos = $scope.customer.Position;\r\n if ($scope.customer.PriceGroupId != null && $scope.customer.PriceGroupId != 0) {\r\n CustomerFactory.getProductList($scope.customer.PriceGroupId).success(function (data) {\r\n $scope.productList = data;\r\n $scope.refreshSpecialPriceGrid();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n else {\r\n $scope.productList = $scope.generalProductList;\r\n $scope.refreshSpecialPriceGrid();\r\n }\r\n\r\n CustomerFactory.getPaymentTermList($scope.customer.CompanyId).success(function (data) {\r\n $scope.paymentTerms = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n $scope.refreshUnloadPointGrid();\r\n $scope.refreshDeliveryCustomerGrid();\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Customers\";\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n\r\n $('#customerTypeModal').on('hidden.bs.modal', function () {\r\n $scope.customerType = {};\r\n $scope.modelError = '';\r\n });\r\n\r\n $('body').on('click', function (e) {\r\n if ($(e.target).parents('[data-toggle=\"popover\"]').length === 0) {\r\n $('[data-toggle=\"popover\"]').popover('hide');\r\n }\r\n });\r\n\r\n function showGroupPrices(popoverid) {\r\n $(popoverid).popover();\r\n }\r\n\r\n // Initialization - this runs on load\r\n var init = function () {\r\n masterFactory.verifyAuthentication();\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n CustomerFactory.getCountryList().success(function (data) {\r\n $scope.countries = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n masterFactory.getCompanies(0).success(function (data) {\r\n $scope.companies = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CustomerFactory.getSpecialPriceGroupList().success(function (data) {\r\n $scope.specialPriceGroups = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CustomerFactory.getLanguageList().success(function (data) {\r\n $scope.languages = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CustomerFactory.getCustomerTypeList().success(function (data) {\r\n $scope.customerTypes = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CustomerFactory.getProductList(0).success(function (data) {\r\n $scope.generalProductList = data;\r\n $scope.productList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CustomerFactory.getProductDropdown(0).success(function (data) {\r\n $scope.productDropdown = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CompanyFactory.getNonPrintCompanyList(0).success(function (data) {\r\n $scope.nonPrintCompanies = data;\r\n }).error(function (data) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CustomerFactory.getBillQuantityTypeList().success(function (data) {\r\n $scope.billQuantityTypeList = data;\r\n }).error(function (data) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CustomerFactory.getAutoEmailOptionsList().success(function (data) {\r\n $scope.autoEmailOptionsList = data;\r\n }).error(function (data) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CustomerFactory.getSignatureSettingsOptionList().success(function (data) {\r\n $scope.signatureSettingsOptions = data.filter(function (s) { return s.name != 'None' });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CustomerFactory.getProductOptions().success(function (data) {\r\n $scope.productOptions = data.filter(function (s) { return s.name != 'None' });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CustomerFactory.getPrintOptions().success(function (data) {\r\n $scope.printOptions = data.filter(function (s) { return s.name != 'None' });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CustomerFactory.getStrappingChartProfile().success(function (data) {\r\n $scope.strappingChartProfileDropdown = data;\r\n $scope.strappingChartProfileDropdown.splice(0,0,$scope.defaultItem);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CustomerFactory.getDippingType().success(function(data){\r\n $scope.dippingTypes = data;\r\n $scope.dippingTypes.splice(0,0,$scope.defaultDippingType);\r\n }).error(function (data, status){\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n ]).then(function () {\r\n $scope.refreshGrid(0, null);\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n init();\r\n\r\n }]);\r\n\r\n app.controller('ProductListController',['$q', '$scope', 'settings', 'masterFactory', '$uibModalInstance', '$rootScope','ProductFactory',\r\n function ($q, $scope, settings, masterFactory, $uibModalInstance, $rootScope, ProductFactory) {\r\n $scope.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 $scope.TotalCount = null;\r\n $scope.ProductGridDataSource = [];\r\n $scope.BillingCustomerName = [];\r\n $scope.TitleName = \"Product\";\r\n\r\n $scope.loadGridDataSource = function () {\r\n var dataSource = {\r\n store: new DevExpress.data.CustomStore({\r\n // DataSource Configuration\r\n key: [\"Id\"],\r\n pageSize: $scope.PageSize,\r\n // Data Access Logic\r\n load: function (loadOptions) {\r\n var d = $.Deferred();\r\n var params = {};\r\n\r\n if (loadOptions != undefined) {\r\n $scope.filterOptions.ProductNumber = null;\r\n $scope.filterOptions.ProductName = null;\r\n $scope.filterOptions.ProductGroup = null;\r\n $scope.filterOptions.QuantityUnit = null;\r\n $scope.filterOptions.ProductTypeId = null;\r\n if (loadOptions.filter != undefined) { // accessing grid filter values \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\") $scope.filterOptions.ProductNumber = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"ShortProductName\") $scope.filterOptions.ProductName = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"ProductCategoryId\") $scope.filterOptions.ProductGroup = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"QuantityUnit\") $scope.filterOptions.QuantityUnit = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"ProductTypeId\") $scope.filterOptions.ProductTypeId = loadOptions.filter[i][2];\r\n }\r\n }\r\n }\r\n $scope.filterOptions.GridPagerOptions.PageSize = (IsUndefinedOrNull(loadOptions.take) == true) ? $scope.PageSize : loadOptions.take;\r\n $scope.filterOptions.GridPagerOptions.PageIndex = ((IsUndefinedOrNull(loadOptions.take) && IsUndefinedOrNull(loadOptions.skip)) == true) ? 0 : (loadOptions.skip / loadOptions.take);\r\n }\r\n ProductFactory.getFilteredProductList($scope.filterOptions).success(function (data) {\r\n d.resolve(data.ProductListVM, { totalCount: data.TotalCount });\r\n $scope.TotalCount = data.TotalCount;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n });\r\n return d.promise();\r\n },\r\n byKey: function (key, extra) {\r\n },\r\n update: function (values) {\r\n }\r\n })\r\n };\r\n return dataSource;\r\n }\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex, Key) {\r\n $('#gridProduct').dxDataGrid({\r\n columns: [\r\n { caption: 'Product Number', dataField: 'ProductNumber', cssClass: 'ProductNumber', dataType: 'string', alignment: 'center', width: 150 },\r\n {\r\n caption: 'Product Name', dataField: 'ShortProductName', cssClass: 'ShortProductName', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.ShortProductName)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n { caption: 'UOM', dataField: 'QuantityUnit', cssClass: 'QuantityUnit', dataType: 'string', alignment: 'center', width: 150 },\r\n {\r\n caption: 'Product Category', dataField: 'ProductCategoryId', cssClass: 'ProductCategoryId', dataType: 'number', alignment: 'center',\r\n lookup: {\r\n dataSource: $scope.ProductCategories,\r\n displayExpr: 'Name',\r\n valueExpr: 'Id'\r\n }\r\n },\r\n {\r\n caption: 'Product Type', dataField: 'ProductTypeId', cssClass: 'ProductTypeId', dataType: 'number', alignment: 'center',\r\n lookup: {\r\n dataSource: $scope.productTypes,\r\n displayExpr: 'Name',\r\n valueExpr: 'Id'\r\n }\r\n }\r\n ],\r\n contentReadyAction: grdReadyAction,\r\n dataSource: $scope.loadGridDataSource(),\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n noDataText: \"No Products Found\",\r\n paging: { pageSize: $scope.PageSize, pageIndex: PageIndex },\r\n pager: { visible: true, allowedPageSizes: [10, 20, 30], showPageSizeSelector: true },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'single' },\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $scope.saveSelection(selectedRowsInfo);\r\n }\r\n },\r\n scrolling: { mode: 'standard' },\r\n showBorders: true,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n sorting: { mode: 'none' }\r\n });\r\n if (Key != null && Key > 0) {\r\n var dataGrid = $('#gridProduct').dxDataGrid('instance');\r\n (dataGrid as unknown as FacnmDx).selectRows([Key]);\r\n }\r\n };\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridProduct', settings.GridMarginHeight);\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n $scope.saveSelection = function (selectedRowsInfo) {\r\n if (!selectedRowsInfo) {\r\n $rootScope.user.ProductId = $scope.TempProductId != null ? $scope.TempProductId : $rootScope.user.ProductId;\r\n $rootScope.user.ProductName = $scope.TempProductName != null ? $scope.TempProductName : $rootScope.user.ProductName;\r\n \r\n $uibModalInstance.close();\r\n }\r\n else {\r\n $scope.TempProductId = selectedRowsInfo.selectedRowsData[0].Id;\r\n $scope.TempProductName = selectedRowsInfo.selectedRowsData[0].ShortProductName;\r\n }\r\n }\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $('body').on('click', function (e) {\r\n if ($(e.target).parents('[data-toggle=\"popover\"]').length === 0) {\r\n $('[data-toggle=\"popover\"]').popover('hide');\r\n }\r\n });\r\n\r\n\r\n // Initialization - this runs on load\r\n var init = function () {\r\n masterFactory.verifyAuthentication();\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n ProductFactory.getProductCategoryList().success(function (data) {\r\n $scope.ProductCategories = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n ProductFactory.getProductTypeDropdown().success(function (data) {\r\n $scope.productTypes = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n ProductFactory.getFilteredProductList($scope.filterOptions).success(function (data) {\r\n $scope.ProductGridDataSource = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n $scope.refreshGrid(0, null);\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n init();\r\n\r\n}]);\r\n\r\n","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('CustomerDataAreaFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getDataAreaList: function (lookup) {\r\n return $http.get(settings.ApiURL + settings.DataAreaURL + \"/list/\" + lookup);\r\n },\r\n getDataAreaByID: function (id) {\r\n return $http.get(settings.ApiURL + settings.DataAreaURL + \"/customertype/\" + id);\r\n },\r\n saveDataArea: function (dataArea) {\r\n return $http.put(settings.ApiURL + settings.DataAreaURL + \"/customertype\", dataArea);\r\n },\r\n deleteDataArea: function (id) {\r\n return $http.delete(settings.ApiURL + settings.DataAreaURL + \"/\" + id);\r\n },\r\n getNewDataArea: function () {\r\n return $http.get(settings.ApiURL + settings.DataAreaURL + \"/newdataarea\");\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('CustomerDataAreaController', function ($q, $scope, CustomerDataAreaFactory, $rootScope, settings, masterFactory) {\r\n $rootScope.pageTitle = \"Data Areas\"; \r\n $scope.dataAreas = [];\r\n $scope.dataArea = {};\r\n $scope.newdataArea = {};\r\n $scope.selectedDataArea = -1;\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.pageSize = 20;\r\n\r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication(); \r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n masterFactory.getCountryList().success(function (data) {\r\n $scope.countries = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, 'Error on loading Countries: ' + data, $scope);\r\n }),\r\n masterFactory.getCustomerTypeList().success(function (data) {\r\n $scope.customerTypes = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, 'Error on loading Customer Types: ' + data, $scope);\r\n }),\r\n CustomerDataAreaFactory.getNewDataArea().success(function (data) {\r\n $scope.newdataArea = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n CustomerDataAreaFactory.getDataAreaList(0).success(function (data) {\r\n $scope.dataAreas = data;\r\n $scope.refreshGrid(0);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n });\r\n\r\n\r\n };\r\n\r\n init(0);\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (pageIndex) {\r\n $('#gridDataArea').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.dataAreas,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n noDataText: \"No Data Areas Found\", \r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: grdReadyAction,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: $scope.pageSize,\r\n pageIndex: pageIndex\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'Data Area No',\r\n dataField: 'Number',\r\n cssClass: 'Number',\r\n dataType: 'string',\r\n alignment: 'center',\r\n width: 150\r\n },\r\n {\r\n caption: 'Data Area Name',\r\n dataField: 'Name',\r\n cssClass: 'Name',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Name)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n $scope.error = \"\";\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n CustomerDataAreaFactory.getDataAreaByID(selectedRowsInfo.selectedRowsData[0].Id).success(function (data) {\r\n $scope.dataArea = data;\r\n $scope.refreshCustomerSettings();\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Data Area\";\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n }\r\n\r\n });\r\n };\r\n\r\n $scope.refreshCustomerSettings = function () {\r\n $('#gridCustomerSettings').dxDataGrid({\r\n dataSource: $scope.dataArea.CustomerTypePostcodes,\r\n columns: [\r\n {\r\n caption: 'Customer Type',\r\n dataField: 'CustomerTypeId',\r\n //validationRules: [{ type: 'required' }],\r\n alignment: 'center',\r\n width: '30%',\r\n lookup: {\r\n dataSource: $scope.customerTypes,\r\n displayExpr: 'Name',\r\n valueExpr: 'Id'\r\n }\r\n },\r\n {\r\n caption: 'Country',\r\n dataField: 'CountryId',\r\n //validationRules: [{ type: 'required' }],\r\n width: '30%',\r\n alignment: 'center',\r\n lookup: {\r\n dataSource: $scope.countries,\r\n displayExpr: 'Name',\r\n valueExpr: 'Id'\r\n }\r\n },\r\n {\r\n caption: 'ZIP Code From',\r\n dataField: 'PostcodeFrom',\r\n //validationRules: [{ type: 'required' }],\r\n dataType: 'number',\r\n width: '20%',\r\n alignment: 'center'\r\n },\r\n {\r\n caption: 'ZIP Code To',\r\n dataField: 'PostcodeTo',\r\n //validationRules: [{ type: 'required' }],\r\n dataType: 'number',\r\n width: '20%',\r\n alignment: 'center'\r\n }\r\n ], \r\n editing: {\r\n editEnabled: true,\r\n insertEnabled: true,\r\n removeEnabled: true\r\n },\r\n filterRow: {\r\n visible: false\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n height: 470,\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n paging: {\r\n pageSize: 30\r\n },\r\n sorting: {\r\n mode: 'none'\r\n },\r\n rowAlternationEnabled: false,\r\n rowInserted: function (rowInfo) {\r\n rowInfo.data.Id = -1;\r\n },\r\n selection: { mode: 'single' },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true\r\n }).dxDataGrid('instance');\r\n\r\n var grd = document.getElementById(\"gridCustomerSettings\");\r\n if (grd.getElementsByClassName(\"dx-datagrid-header-panel\")[0].childNodes.length == 1)\r\n $(' Customer Settings ').appendTo(grd.getElementsByClassName(\"dx-datagrid-header-panel\")[0]);\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.addNewEntity = function () {\r\n $rootScope.pageTitle = \"New Data Area\";\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.dataArea = angular.copy($scope.newdataArea);\r\n $scope.dataArea.CustomerTypePostcodes = []; \r\n $scope.refreshCustomerSettings();\r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n CustomerDataAreaFactory.deleteDataArea($scope.dataArea.Id).success(function (data) {\r\n CustomerDataAreaFactory.getDataAreaList(0).success(function (data) {\r\n var dataGrid = $('#gridDataArea').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.dataAreas = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Data Area successfully' });\r\n });\r\n \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridDataArea').dxDataGrid('instance');\r\n dataGrid.clearSelection(); \r\n $scope.isFormVisible = false; \r\n $scope.customerDataAreaForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db bankaccount and set to scope.bankaccount. \r\n $('#loadingModal').modal({ backdrop: 'static' }); \r\n CustomerDataAreaFactory.getDataAreaByID($scope.dataArea.Id).success(function (data) {\r\n $scope.dataArea = data;\r\n $scope.refreshCustomerSettings();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n angular.copy($scope.newdataArea, $scope.dataArea);\r\n $scope.refreshCustomerSettings();\r\n } \r\n \r\n $scope.customerDataAreaForm.$setPristine();\r\n $scope.customerDataAreaForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Data Area details were reset' }); \r\n };\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.customerDataAreaForm.$valid) {\r\n $scope.saveCustomerDataArea();\r\n $scope.customerDataAreaForm.submitted = false;\r\n } else {\r\n $scope.customerDataAreaForm.submitted = true;\r\n }\r\n };\r\n\r\n $scope.saveCustomerDataArea = function () {\r\n if (IsUndefinedOrNull($scope.dataArea.Id) || $scope.dataArea.Id <= 0) {\r\n $scope.dataArea.Id = -1;\r\n } \r\n CustomerDataAreaFactory.saveDataArea($scope.dataArea).success(function (data) {\r\n CustomerDataAreaFactory.getDataAreaList(0).success(function (data) {\r\n var dataGrid = $('#gridDataArea').dxDataGrid('instance');\r\n var pageindex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.dataAreas = data;\r\n if ($scope.dataArea.Id > 0) {\r\n $scope.refreshGrid(pageindex)\r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex);\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n if ($scope.dataArea.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Data Area successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Data Area successfully' });\r\n }\r\n }); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () { \r\n });\r\n }\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridDataArea', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridDataArea', settings.GridMarginHeight);\r\n }\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n }; \r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.filter = function (input, id) {\r\n var i = 0, len = input.length;\r\n for (; i < len; i++) {\r\n if (+input[i].Id == +id) {\r\n return input[i];\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n\r\n});","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('DataAreaFactory',['$http','settings', function ($http, settings) {\r\n return {\r\n getDataAreaList: function (lookup) {\r\n return $http.get(settings.ApiURL + settings.DataAreaURL + \"/list/\" + lookup);\r\n },\r\n getDataAreaByID: function (id) {\r\n return $http.get(settings.ApiURL + settings.DataAreaURL + \"/productgroup/\" + id);\r\n },\r\n saveDataArea: function (dataArea) {\r\n return $http.put(settings.ApiURL + settings.DataAreaURL + \"/productgroup/\", dataArea);\r\n },\r\n deleteDataArea: function (id) {\r\n return $http.delete(settings.ApiURL + settings.DataAreaURL + \"/\" + id);\r\n },\r\n getProductGroupList: function () {\r\n return $http.get(settings.ApiURL + settings.ProductGroupURL);\r\n },\r\n getNewDataArea: function () {\r\n return $http.get(settings.ApiURL + settings.DataAreaURL + \"/newdataarea\");\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('DataAreaController', ['$q', '$scope', 'DataAreaFactory', '$rootScope', 'settings', 'masterFactory',\r\n function ($q, $scope, DataAreaFactory, $rootScope, settings, masterFactory) {\r\n $rootScope.pageTitle = \"Data Area\"; \r\n $scope.dataAreaList = [];\r\n $scope.dataArea = {};\r\n $scope.dataArea.ProductGroups = [];\r\n $scope.newdataArea = {};\r\n $scope.productGroups = [];\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.isProductGroupGridCollapsed = false;\r\n $scope.pageSize = 20;\r\n\r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication();\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n DataAreaFactory.getProductGroupList().success(function (data) {\r\n $scope.productGroups = data;\r\n $scope.refreshDataAreaProductGroupsGrid();\r\n $scope.refreshAllProductGroupsGrid();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n DataAreaFactory.getNewDataArea().success(function (data) {\r\n $scope.newdataArea = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n DataAreaFactory.getDataAreaList(0).success(function (data) {\r\n $scope.dataAreaList = data;\r\n $scope.refreshGrid(pageIndex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, 'Error on loading Data Areas: ' + data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n })\r\n }); \r\n };\r\n\r\n init(0);\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex) { \r\n $('#gridDataArea').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.dataAreaList,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n noDataText: \"No Product Group Found\", \r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: grdReadyAction,\r\n selection: { mode: 'single' }, \r\n paging: {\r\n pageSize: $scope.pageSize,\r\n pageIndex: PageIndex\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [ \r\n {\r\n caption: 'Data Area No',\r\n dataField: 'Number',\r\n cssClass: 'Number',\r\n dataType: 'string',\r\n alignment: 'center',\r\n width: 150\r\n },\r\n {\r\n caption: 'Data Area Name',\r\n dataField: 'Name',\r\n cssClass: 'Name',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Name)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n DataAreaFactory.getDataAreaByID(selectedRowsInfo.selectedRowsData[0].Id).success(function (data) {\r\n $scope.dataArea = data;\r\n $scope.refreshDataAreaProductGroupsGrid();\r\n $scope.refreshAllProductGroupsGrid();\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Data Area\";\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshDataAreaProductGroupsGrid = function () {\r\n $scope.isProductGroupUnselect = false;\r\n\r\n $('#gridDataAreaProductGroups').dxDataGrid({\r\n dataSource: $scope.dataArea.ProductGroups,\r\n height: 470,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: resetSelectionColumn,\r\n selection: { mode: 'multiple' },\r\n paging: {\r\n pageSize: 10\r\n },\r\n pager: {\r\n showPageSizeSelector: false\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'Product Group No',\r\n dataField: 'Number',\r\n cssClass: 'Number',\r\n dataType: 'string',\r\n alignment: 'center'\r\n },\r\n {\r\n caption: 'Product Group Name',\r\n dataField: 'Name',\r\n cssClass: 'Name',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Name)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n $scope.isProductGroupUnselect = true;\r\n }\r\n else {\r\n $scope.isProductGroupUnselect = false;\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshAllProductGroupsGrid = function () {\r\n $scope.isProductGroupSelect = false;\r\n $scope.isProductGroupSelectNew = false;\r\n\r\n $('#gridAllProductGroups').dxDataGrid({\r\n dataSource: $scope.productGroups,\r\n height: 470,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: resetSelectionColumn,\r\n selection: { mode: 'multiple' },\r\n paging: {\r\n pageSize: 10\r\n },\r\n pager: {\r\n showPageSizeSelector: false\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'Product Group No',\r\n dataField: 'Number',\r\n cssClass: 'Number',\r\n dataType: 'string',\r\n alignment: 'center'\r\n },\r\n {\r\n caption: 'Product Group Name',\r\n dataField: 'Name',\r\n cssClass: 'Name',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Name)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n $scope.isProductGroupSelect = true;\r\n }\r\n else {\r\n $scope.isProductGroupSelect = false;\r\n }\r\n if ($rootScope.pageTitle.indexOf(\"New\") >= 0 && $scope.isProductGroupSelect) {\r\n $scope.isProductGroupSelectNew = true;\r\n }\r\n else {\r\n $scope.isProductGroupSelectNew = false;\r\n }\r\n }\r\n });\r\n };\r\n\r\n //Button click functions\r\n $scope.addNewDataArea = function () {\r\n $rootScope.pageTitle = \"New Data Area\"; \r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.dataArea = angular.copy($scope.newdataArea);\r\n $scope.dataArea.ProductGroups = [];\r\n $scope.refreshAllProductGroupsGrid();\r\n $scope.refreshDataAreaProductGroupsGrid();\r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n DataAreaFactory.deleteDataArea($scope.dataArea.Id).success(function (data) {\r\n DataAreaFactory.getDataAreaList(0).success(function (data) {\r\n var dataGrid = $('#gridDataArea').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.dataAreaList = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Data Area successfully' });\r\n }); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridDataArea').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false;\r\n $scope.dataAreaForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db bankaccount and set to scope.bankaccount. \r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n DataAreaFactory.getDataAreaByID($scope.dataArea.Id).success(function (data) {\r\n $scope.dataArea = data;\r\n $scope.refreshDataAreaProductGroupsGrid();\r\n $scope.refreshAllProductGroupsGrid(); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n angular.copy($scope.newdataArea, $scope.dataArea); \r\n $scope.refreshAllProductGroupsGrid();\r\n $scope.refreshDataAreaProductGroupsGrid();\r\n }\r\n \r\n $scope.dataAreaForm.$setPristine();\r\n $scope.dataAreaForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Data Area details were reset' });\r\n };\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.dataAreaForm.$valid) {\r\n $scope.saveDataArea();\r\n $scope.dataAreaForm.submitted = false;\r\n } else {\r\n $scope.dataAreaForm.submitted = true;\r\n }\r\n };\r\n\r\n $scope.saveDataArea = function () { \r\n $scope.closeModelStateErrors();\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n DataAreaFactory.saveDataArea($scope.dataArea).success(function (data) {\r\n DataAreaFactory.getDataAreaList().success(function (data) {\r\n var dataGrid = $('#gridDataArea').dxDataGrid('instance');\r\n var pageindex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.dataAreaList = data;\r\n if ($scope.dataArea.Id > 0) {\r\n $scope.refreshGrid(pageindex)\r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex);\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function (data) {\r\n if ($scope.dataArea.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Data Area successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Data Area successfully' });\r\n }\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridDataArea', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridDataArea', settings.GridMarginHeight);\r\n }\r\n\r\n $scope.filter = function (input, id) {\r\n var i = 0, len = input.length;\r\n for (; i < len; i++) {\r\n if (+input[i].Id == +id) {\r\n return input[i];\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.productGroupGridExpanded = function () {\r\n var dataGrid1 = $('#gridDataAreaProductGroups').dxDataGrid('instance');\r\n dataGrid1.repaint();\r\n var dataGrid2 = $('#gridAllProductGroups').dxDataGrid('instance');\r\n dataGrid2.repaint();\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n\r\n $scope.selectProductGroups = function () {\r\n var dataGrid = $('#gridAllProductGroups').dxDataGrid('instance');\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var i = 0; var len = selectedRows.length;\r\n for (; i < len; i++) {\r\n var prd = $scope.filter($scope.dataArea.ProductGroups, selectedRows[i].Id);\r\n if (prd == null) {\r\n $scope.dataArea.ProductGroups.push(selectedRows[i]);\r\n }\r\n }\r\n $scope.refreshDataAreaProductGroupsGrid();\r\n $scope.refreshAllProductGroupsGrid();\r\n dataGrid.clearSelection();\r\n };\r\n\r\n $scope.unselectProductGroups = function () {\r\n var dataGrid = $('#gridDataAreaProductGroups').dxDataGrid('instance');\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var i = 0; var len = selectedRows.length;\r\n for (; i < len; i++) {\r\n $scope.dataArea.ProductGroups.splice($scope.dataArea.ProductGroups.indexOf(selectedRows[i]), 1);\r\n }\r\n $scope.refreshDataAreaProductGroupsGrid();\r\n $scope.refreshAllProductGroupsGrid();\r\n dataGrid.clearSelection();\r\n };\r\n\r\n}]);","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n \r\n app.factory('DeviceProductFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getNewDeviceProduct: function () {\r\n return $http.get(settings.ApiURL + settings.DeviceProductURL + \"/newDeviceProduct\");\r\n }, \r\n getDeviceProductDetails: function (artnr, deviceid, productid) {\r\n return $http.get(settings.ApiURL + settings.DeviceProductURL + \"/details/\" + encodeURIComponent(artnr) + \"/\" + deviceid + \"/\" + productid + '?noCache=' + new Date().getTime());\r\n },\r\n saveDeviceProduct: function (DeviceProduct) {\r\n return $http.put(settings.ApiURL + settings.DeviceProductURL, DeviceProduct);\r\n },\r\n deleteDeviceProduct: function (artnr, deviceid, productid) {\r\n return $http.delete(settings.ApiURL + settings.DeviceProductURL + \"/\" + encodeURIComponent(artnr) + \"/\" + deviceid + \"/\" + productid);\r\n },\r\n getDeviceProductList: function () {\r\n return $http.get(settings.ApiURL + settings.DeviceProductURL);\r\n }, \r\n getProductDropdown: function () {\r\n return $http.get(settings.ApiURL + settings.ProductURL + \"/dropdown/0\");\r\n }, \r\n getDeviceDropdown: function () {\r\n return $http.get(settings.ApiURL + settings.DeviceURL + \"/dropdown\");\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('DeviceProductController', ['$q', '$scope', 'DeviceProductFactory', 'CompanyFactory', '$rootScope', 'settings', \"masterFactory\",\r\n function ($q, $scope, DeviceProductFactory, CompanyFactory, $rootScope, settings, masterFactory) {\r\n $rootScope.pageTitle = \"Device Product Mapping\";\r\n $scope.companyDropdown = [];\r\n $scope.dangerousgoodsDropdown = [];\r\n $scope.DeviceProductList = [];\r\n $scope.productDropdown = [];\r\n $scope.deviceDropdown = []; \r\n $scope.DeviceProduct = {};\r\n $scope.newDeviceProduct = {}; \r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.pageSize = 20;\r\n\r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication();\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([ \r\n DeviceProductFactory.getProductDropdown().success(function (data) {\r\n $scope.productDropdown = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }), \r\n DeviceProductFactory.getDeviceDropdown().success(function (data) {\r\n $scope.deviceDropdown = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n DeviceProductFactory.getNewDeviceProduct().success(function (data) {\r\n $scope.newDeviceProduct = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n DeviceProductFactory.getDeviceProductList().success(function (data) {\r\n $scope.DeviceProductList = data;\r\n $scope.refreshGrid(0);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n });\r\n };\r\n\r\n var getDeviceProductDetails = function (artnr, deviceid, productid) {\r\n DeviceProductFactory.getDeviceProductDetails(artnr, deviceid, productid).success(function (data) {\r\n $scope.DeviceProduct = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n init(0);\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex) {\r\n $('#gridDeviceProduct').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.DeviceProductList,\r\n type: 'array',\r\n key: ['DeviceId', 'ProductId', 'ProductNameNumber']\r\n }\r\n },\r\n noDataText: \"No Device Product Mapping Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: grdReadyAction,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: $scope.pageSize,\r\n pageIndex: PageIndex\r\n },\r\n scrolling: {\r\n mode: 'standard'\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [ \r\n {\r\n caption: 'Product Name on Register', dataField: 'ProductNameOnDevice', cssClass: 'ProductNameOnDevice', alignment: 'center',\r\n dataType: 'string',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.ProductNameOnDevice)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Product ID on Register', dataField: 'ProductNameNumber', cssClass: 'ProductNameNumber', alignment: 'center',\r\n dataType: 'string',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.ProductNameNumber)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n { caption: 'Product Unit', dataField: 'UnitOfProduct', cssClass: '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 }, \r\n {\r\n caption: 'Product Number - Name', dataField: 'ProductName', cssClass: 'ProductName', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) { \r\n $('').text(options.data.ProductNumber + \" - \" + options.data.ProductName).append(\"
\").appendTo(container); \r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n getDeviceProductDetails(selectedRowsInfo.selectedRowsData[0].ProductNameNumber,\r\n selectedRowsInfo.selectedRowsData[0].DeviceId,\r\n selectedRowsInfo.selectedRowsData[0].ProductId);\r\n }\r\n else {\r\n $scope.DeviceProduct = angular.copy($scope.newDeviceProduct);\r\n }\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Device Product Mapping\";\r\n }\r\n });\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.addNewDeviceProduct = function () {\r\n $rootScope.pageTitle = \"New Device Product Mapping\"; \r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.DeviceProduct = angular.copy($scope.newDeviceProduct);\r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n DeviceProductFactory.deleteDeviceProduct($scope.DeviceProduct.ProductNameNumber,\r\n $scope.DeviceProduct.DeviceId,\r\n $scope.DeviceProduct.ProductId).success(function (data) {\r\n DeviceProductFactory.getDeviceProductList().success(function (data) {\r\n var dataGrid = $('#gridDeviceProduct').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.DeviceProductList = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Device Product mapping successfully' });\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridDeviceProduct').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false;\r\n $scope.DeviceProductForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { \r\n getDeviceProductDetails($scope.DeviceProduct.ProductNameNumber,\r\n $scope.DeviceProduct.DeviceId,\r\n $scope.DeviceProduct.ProductId);\r\n }\r\n else {\r\n angular.copy($scope.newDeviceProduct, $scope.DeviceProduct);\r\n }\r\n $scope.DeviceProductForm.$setPristine();\r\n $scope.DeviceProductForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Device Product details were reset' });\r\n };\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.DeviceProductForm.$valid) {\r\n $scope.saveDeviceProduct();\r\n $scope.DeviceProductForm.submitted = false;\r\n } else {\r\n $scope.DeviceProductForm.submitted = true;\r\n }\r\n };\r\n\r\n $scope.saveDeviceProduct = function () {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n var pageindex, id;\r\n $scope.closeModelStateErrors();\r\n DeviceProductFactory.saveDeviceProduct($scope.DeviceProduct).success(function (data) {\r\n DeviceProductFactory.getDeviceProductList().success(function (data) {\r\n var dataGrid = $('#gridDeviceProduct').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n pageindex = dataGrid.pageIndex();\r\n $scope.DeviceProductList = data;\r\n if (!$scope.isDeleteVisible) {\r\n $scope.cancelForm();\r\n }\r\n $scope.refreshGrid(pageindex);\r\n }).error(function (data) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function (data) {\r\n if ($scope.isDeleteVisible) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Device Product successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Device Product successfully' });\r\n }\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridDeviceProduct', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridDeviceProduct', settings.GridMarginHeight);\r\n }\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n }]);\r\n","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('DeviceProductGroupFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getDeviceProductGroupList: function () {\r\n return $http.get(settings.ApiURL + settings.DeviceProductGroupURL);\r\n },\r\n getDeviceProductGroupByID: function (id) {\r\n return $http.get(settings.ApiURL + settings.DeviceProductGroupURL + \"/\" + id);\r\n },\r\n getProductDropdown: function () {\r\n return $http.get(settings.ApiURL + settings.ProductURL + \"/dropdown/0\");\r\n },\r\n saveDeviceProductGroup: function (deviceProductGroup) {\r\n return $http.put(settings.ApiURL + settings.DeviceProductGroupURL, deviceProductGroup);\r\n },\r\n deleteDeviceProductGroup: function (id) {\r\n return $http.delete(settings.ApiURL + settings.DeviceProductGroupURL + \"/\" + id);\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('DeviceProductGroupController', ['$q', '$scope', 'DeviceProductGroupFactory', '$rootScope', 'settings', 'masterFactory', '$uibModal',\r\n function ($q, $scope, DeviceProductGroupFactory, $rootScope, settings, masterFactory, $uibModal) {\r\n $rootScope.pageTitle = \"Device Product Group\";\r\n $scope.deviceProductGroupList = [];\r\n $scope.deviceProductGroup = {};\r\n $scope.productDropdown = [];\r\n $scope.newDeviceProductGroup = {};\r\n $scope.error = \"\";\r\n $scope.productGridError = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.isNewDeviceProductGroup = false;\r\n $scope.isAssignedVehicleSelected = false;\r\n $scope.isUnassignedVehicleSelected = false;\r\n $scope.isProductsGridCollapsed = false;\r\n $scope.isVehiclessGridCollapsed = false; \r\n $scope.pageSize = 20;\r\n\r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication();\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n DeviceProductGroupFactory.getProductDropdown().success(function (data) {\r\n $scope.productDropdown = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n DeviceProductGroupFactory.getDeviceProductGroupList().success(function (data) {\r\n $scope.deviceProductGroupList = data;\r\n $scope.refreshGrid(pageIndex, null);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n })\r\n ]).then(function () {\r\n\r\n });\r\n };\r\n\r\n init(0);\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex, Key) {\r\n $('#gridDeviceProductGroup').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.deviceProductGroupList,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n columns: [\r\n { caption: 'Group No', dataField: 'Id', cssClass: 'Id', dataType: 'number', alignment: 'center', width: 150 },\r\n {\r\n caption: 'Group Name', dataField: 'Name', cssClass: 'Name', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Name)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n contentReadyAction: grdReadyAction,\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false, },\r\n noDataText: \"No Device Product Group Found\",\r\n pager: { showPageSizeSelector: true, allowedPageSizes: [10, 20, 30] },\r\n paging: { pageSize: $scope.pageSize, pageIndex: PageIndex },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'single' },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n DeviceProductGroupFactory.getDeviceProductGroupByID(selectedRowsInfo.selectedRowsData[0].Id).success(function (data) {\r\n $scope.deviceProductGroup = angular.copy(data);\r\n $scope.refreshProductsGrid();\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n $scope.isNewdeviceProductGroup = false;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Device Product Group\";\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (Key != null && Key > 0) {\r\n var dataGrid = $('#gridDeviceProductGroup').dxDataGrid('instance');\r\n (dataGrid as unknown as FacnmDx).selectRows([Key]);\r\n }\r\n };\r\n\r\n $scope.refreshProductsGrid = function () {\r\n $('#gridProducts').dxDataGrid({\r\n dataSource: $scope.deviceProductGroup.AssignedProducts,\r\n columns: [\r\n {\r\n caption: 'Product Name on Register', dataField: 'ProductNameOnDevice', validationRules: [{ type: \"required\" }],\r\n dataType: 'string', alignment: 'center', width: '25%'\r\n },\r\n {\r\n caption: 'Product ID on Register', dataField: 'ProductNameNumber', validationRules: [{ type: \"required\" }],\r\n dataType: 'string', width: '25%', alignment: 'center'\r\n },\r\n {\r\n caption: 'Product Unit', dataField: 'UnitOfProduct', validationRules: [{ type: \"required\" }],\r\n dataType: 'string', width: '10%', alignment: 'center'\r\n },\r\n {\r\n caption: 'Product Number - Name', dataField: 'ProductId', validationRules: [{ type: \"required\" }],\r\n dataType: 'number', width: '20%', alignment: 'center',\r\n lookup: {\r\n dataSource: $scope.productDropdown,\r\n displayExpr: 'ProductName',\r\n valueExpr: 'Id'\r\n }\r\n }\r\n ],\r\n editing: { editMode:'cell', editEnabled: true, insertEnabled: true, removeEnabled: true },\r\n filterRow: { visible: false },\r\n groupPanel: { visible: false, },\r\n height: 470,\r\n noDataText: \"No Products Found\",\r\n pager: { showPageSizeSelector: true, allowedPageSizes: [10, 20, 30] },\r\n paging: { pageSize: 30 },\r\n sorting: { mode: 'none' },\r\n rowAlternationEnabled: false,\r\n rowInserted: function (rowInfo) {\r\n rowInfo.data.Id = -1;\r\n },\r\n rowInserting: onProductGridRowInserting,\r\n rowUpdating: onProductGridRowUpdating, \r\n selection: { mode: 'single' },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true\r\n });\r\n\r\n var grd = document.getElementById(\"gridProducts\");\r\n if (grd.getElementsByClassName(\"dx-datagrid-header-panel\")[0].childNodes.length == 1)\r\n $(' Products ').appendTo(grd.getElementsByClassName(\"dx-datagrid-header-panel\")[0]);\r\n };\r\n\r\n function onProductGridRowInserting(e) {\r\n $scope.productGridError = \"\";\r\n if (!IsUndefinedOrNull(e.data)) {\r\n if (IsUndefinedOrNull(e.data.ProductNameOnDevice) || IsUndefinedOrNull(e.data.ProductNameNumber) ||\r\n IsUndefinedOrNull(e.data.UnitOfProduct) || IsUndefinedOrNull(e.data.ProductId)) {\r\n $scope.productGridError = \"Please enter all values for new record.\";\r\n e.cancel = true;\r\n return;\r\n }\r\n else $scope.productGridError = \"\";\r\n }\r\n else {\r\n $scope.productGridError = \"Please enter all values for new record.\";\r\n e.cancel = true;\r\n return;\r\n }\r\n };\r\n\r\n function onProductGridRowUpdating(e) {\r\n $scope.productGridError = \"\";\r\n if (!IsUndefinedOrNull(e)) {\r\n if (IsUndefinedOrNull(e.newData.ProductNameOnDevice) || IsUndefinedOrNull(e.newData.ProductNameNumber) ||\r\n IsUndefinedOrNull(e.newData.UnitOfProduct) || IsUndefinedOrNull(e.newData.ProductId) ||\r\n e.newData.ProductNameOnDevice == \"\" || e.newData.ProductNameNumber == \"\" || \r\n e.newData.UnitOfProduct == \"\" || e.newData.ProductId == \"\") {\r\n $scope.productGridError = \"Please enter all values to update record.\";\r\n e.cancel = true;\r\n return;\r\n }\r\n else $scope.productGridError = \"\";\r\n }\r\n else {\r\n $scope.productGridError = \"Please enter all values to update record.\";\r\n e.cancel = true;\r\n return;\r\n }\r\n }; \r\n\r\n function getProductDropdownDisplayName(ds) {\r\n return ds.ProductName;\r\n };\r\n\r\n $scope.refreshAssignedVehiclesGrid = function () {\r\n $scope.isAssignedVehicleSelected = false;\r\n\r\n $('#gridAssignedVehicles').dxDataGrid({\r\n dataSource: $scope.deviceProductGroup.AssignedVehicles,\r\n columns: [\r\n { caption: 'Vehicle Id', dataField: 'Id', cssClass: 'Id', dataType: 'number', visible: false },\r\n {\r\n caption: 'Device Id - Name', dataField: '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 container.addClass('grid-cell-align-left');\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: 'center', caption: 'License Plate', dataField: 'LicensePlate', cssClass: 'LicensePlate', dataType: 'string',\r\n width: 150,\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.LicensePlate)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n contentReadyAction: resetSelectionColumn,\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false, },\r\n height: 470,\r\n paging: { pageSize: 10 },\r\n pager: { showPageSizeSelector: false },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'multiple' },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n $scope.isAssignedVehicleSelected = true;\r\n }\r\n else {\r\n $scope.isAssignedVehicleSelected = false;\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshUnAssignedVehiclesGrid = function () {\r\n $scope.isUnassignedVehicleSelected = false;\r\n\r\n $('#gridUnAssignedVehicles').dxDataGrid({\r\n dataSource: $scope.deviceProductGroup.UnAssignedVehicles,\r\n columns: [\r\n { caption: 'Vehicle Id', dataField: 'Id', dataType: 'number', cssClass: 'number', visible: false },\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 container.addClass('grid-cell-align-left');\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: 'center', caption: 'License Plate', dataField: 'LicensePlate', cssClass: 'LicensePlate', dataType: 'string',\r\n width: 150,\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.LicensePlate)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n contentReadyAction: resetSelectionColumn,\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n height: 470,\r\n paging: { pageSize: 10 },\r\n pager: { showPageSizeSelector: false },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'multiple' },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n $scope.isUnassignedVehicleSelected = true;\r\n }\r\n else {\r\n $scope.isUnassignedVehicleSelected = false;\r\n }\r\n }\r\n });\r\n };\r\n \r\n //Button click functions\r\n $scope.addNewDeviceProductGroup = function () {\r\n $rootScope.pageTitle = \"New Device Product Group\";\r\n DeviceProductGroupFactory.getDeviceProductGroupByID(0).success(function (data) {\r\n $scope.deviceProductGroup = angular.copy(data);\r\n $scope.newDeviceProductGroup = angular.copy(data); \r\n $scope.refreshProductsGrid();\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.isNewDeviceProductGroup = true;\r\n ToggleGreenToYellow();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n DeviceProductGroupFactory.deleteDeviceProductGroup($scope.deviceProductGroup.Id).success(function (data) {\r\n DeviceProductGroupFactory.getDeviceProductGroupList().success(function (data) {\r\n var dataGrid = $('#gridDeviceProductGroup').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.deviceProductGroupList = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex, null);\r\n }).error(function () {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Device Product Group successfully' });\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridDeviceProductGroup').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false;\r\n $scope.deviceProductGroupForm.$submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.closeProductGridAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db bankaccount and set to scope.bankaccount.\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n DeviceProductGroupFactory.getDeviceProductGroupByID($scope.deviceProductGroup.Id).success(function (data) {\r\n $scope.deviceProductGroup = data;\r\n $scope.refreshProductsGrid();\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n angular.copy($scope.newDeviceProductGroup, $scope.deviceProductGroup);\r\n $scope.refreshProductsGrid();\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n }\r\n\r\n $scope.deviceProductGroupForm.$setPristine();\r\n $scope.deviceProductGroupForm.$submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Device Product Group details were reset' });\r\n };\r\n\r\n $scope.submitForm = function () { \r\n if ($scope.deviceProductGroupForm.$valid) {\r\n if (ValidateFormData()) {\r\n $scope.saveDeviceProductGroup();\r\n $scope.closeAlert();\r\n } \r\n }\r\n };\r\n\r\n function ValidateFormData() {\r\n // 1. There must be atleast one Product line item.\r\n if ($scope.deviceProductGroup.AssignedProducts == null || $scope.deviceProductGroup.AssignedProducts.length == 0) {\r\n $scope.error = \"Please add atleast one product in Products Grid\";\r\n return false;\r\n }\r\n \r\n //2. There must be atleaset one assigned vehicle.\r\n if ($scope.deviceProductGroup.AssignedVehicles == null || $scope.deviceProductGroup.AssignedVehicles.length == 0) {\r\n $scope.error = \"Please add atleast one Vehicle in Vehicles Grid\";\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n $scope.saveDeviceProductGroup = function () {\r\n var pageindex, id;\r\n $scope.closeModelStateErrors();\r\n //$('#loadingModal').modal({ backdrop: 'static' });\r\n DeviceProductGroupFactory.saveDeviceProductGroup($scope.deviceProductGroup).success(function (deviceProductGroupId) {\r\n DeviceProductGroupFactory.getDeviceProductGroupList().success(function (data) {\r\n var dataGrid = $('#gridDeviceProductGroup').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n pageindex = dataGrid.pageIndex();\r\n $scope.deviceProductGroupList = data;\r\n if ($scope.deviceProductGroup.Id > 0) {\r\n $scope.refreshGrid(pageindex, $scope.deviceProductGroup.Id);\r\n $scope.refreshProductsGrid();\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex, null);\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function (data) {\r\n if ($scope.deviceProductGroup.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Device Product Group successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Device Product Group successfully' });\r\n }\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n //$('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n // Selecting and Unselecting grid items on details panel\r\n $scope.assignVehicles = function () {\r\n var dataGrid1 = $('#gridUnAssignedVehicles').dxDataGrid('instance');\r\n var dataGrid2 = $('#gridAssignedVehicles').dxDataGrid('instance');\r\n var selectedRows = dataGrid1.getSelectedRowsData();\r\n var i = 0; var len = selectedRows.length;\r\n for (; i < len; i++) {\r\n var prd = $scope.filter($scope.deviceProductGroup.AssignedVehicles, selectedRows[i].Id);\r\n $scope.deviceProductGroup.UnAssignedVehicles.splice($scope.deviceProductGroup.UnAssignedVehicles.indexOf(selectedRows[i]), 1);\r\n if (prd == null) {\r\n $scope.deviceProductGroup.AssignedVehicles.push(selectedRows[i]);\r\n }\r\n }\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n dataGrid1.clearSelection();\r\n dataGrid1.refresh();\r\n dataGrid2.refresh();\r\n };\r\n\r\n $scope.unassignVehicles = function () {\r\n var dataGrid1 = $('#gridAssignedVehicles').dxDataGrid('instance');\r\n var dataGrid2 = $('#gridUnAssignedVehicles').dxDataGrid('instance');\r\n var selectedRows = dataGrid1.getSelectedRowsData();\r\n var i = 0; var len = selectedRows.length;\r\n for (; i < len; i++) {\r\n var prd = $scope.filter($scope.deviceProductGroup.UnAssignedVehicles, selectedRows[i].Id);\r\n $scope.deviceProductGroup.AssignedVehicles.splice($scope.deviceProductGroup.AssignedVehicles.indexOf(selectedRows[i]), 1);\r\n if (prd == null) {\r\n $scope.deviceProductGroup.UnAssignedVehicles.push(selectedRows[i]);\r\n } \r\n }\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n dataGrid1.clearSelection();\r\n dataGrid2.refresh();\r\n };\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridDeviceProductGroup', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridDeviceProductGroup', settings.GridMarginHeight);\r\n }\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.productsGridExpanded = function () {\r\n var dataGrid1 = $('#gridProducts').dxDataGrid('instance');\r\n dataGrid1.repaint();\r\n };\r\n\r\n $scope.vehiclesGridExpanded = function () {\r\n var dataGrid1 = $('#gridUnAssignedVehicles').dxDataGrid('instance');\r\n dataGrid1.repaint();\r\n var dataGrid2 = $('#gridAssignedVehicles').dxDataGrid('instance');\r\n dataGrid2.repaint();\r\n };\r\n\r\n $scope.filter = function (input, id) {\r\n var i = 0, len = input.length;\r\n for (; i < len; i++) {\r\n if (+input[i].Id == +id) {\r\n return input[i];\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeProductGridAlert = function () {\r\n $scope.productGridError = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n }]);\r\n\r\n\r\n","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('DriverFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getNewDriver: function () {\r\n return $http.get(settings.ApiURL + settings.DriverURL + \"/newdriver\");\r\n },\r\n getDriverDetails: function (id) {\r\n return $http.get(settings.ApiURL + settings.DriverURL + \"/\" + id);\r\n },\r\n saveDriver: function (Driver) {\r\n return $http.put(settings.ApiURL + settings.DriverURL, Driver);\r\n },\r\n deleteDriver: function (id) {\r\n return $http.delete(settings.ApiURL + settings.DriverURL + \"/\" + id);\r\n },\r\n getDriverList: function () {\r\n return $http.get(settings.ApiURL + settings.DriverURL);\r\n },\r\n getLanguages: function () {\r\n return $http.get(settings.ApiURL + settings.MasterDataURL + \"/languages/0\")\r\n },\r\n getDriverRoles: function (id) {\r\n return $http.get(settings.ApiURL + settings.DriverURL + '/roles');\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('DriverController', ['$q', '$scope', 'DriverFactory', '$rootScope', 'settings', 'masterFactory',\r\n function ($q, $scope, DriverFactory, $rootScope, settings, masterFactory) {\r\n $rootScope.pageTitle = \"Driver\";\r\n $scope.ActiveInactiveDriverLookup = [\r\n { Deleted: false, Text: 'Active' },\r\n { Deleted: true, Text: 'InActive' }\r\n ]; \r\n $scope.driver = {};\r\n $scope.driverList = []; \r\n $scope.newDriver = {};\r\n $scope.languages = [];\r\n $scope.error = \"\"; \r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.pageSize = 20;\r\n\r\n // Initialization - this runs on load\r\n var init = function () {\r\n masterFactory.verifyAuthentication();\r\n \r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n DriverFactory.getNewDriver().success(function (data) {\r\n $scope.newDriver = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n DriverFactory.getLanguages().success(function (data) {\r\n $scope.languages = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n DriverFactory.getDriverRoles().success(function (data: any[]) {\r\n $scope.driverRoles = data.filter(r=>r.id != 0);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n ]).then(function () {\r\n DriverFactory.getDriverList().success(function (data) {\r\n $scope.driverList = data;\r\n $scope.refreshGrid(0);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n });\r\n\r\n };\r\n\r\n var getDriverDetails = function (id) {\r\n DriverFactory.getDriverDetails(id).success(function (data) {\r\n $scope.driver = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n init();\r\n\r\n $scope.refreshGrid = function (PageIndex) {\r\n $('#gridDriver').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.driverList,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n noDataText: \"No Drivers Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: grdReadyAction,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: $scope.pageSize,\r\n pageIndex: PageIndex\r\n },\r\n scrolling: {\r\n mode: 'standard'\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'Icon', dataField: 'Deleted', dataType: 'boolean', alignment: 'center', width: '100px',\r\n cellTemplate: function (cellElement, cellInfo) {\r\n if (cellInfo.data.Deleted == true) {\r\n $(\"\")\r\n .attr(\"class\", \"status-icon-closed-by-driver InActive\")\r\n .appendTo(cellElement);\r\n }\r\n else {\r\n $(\"\")\r\n .attr(\"class\", \"status-icon-closed-by-driver Active\")\r\n .appendTo(cellElement);\r\n }\r\n //if (cellInfo.value == true)\r\n // cellElement.addClass(\"icon-closed-by-driver InActive\");\r\n //else cellElement.addClass(\"icon-closed-by-driver Active\");\r\n },\r\n lookup: { dataSource: $scope.ActiveInactiveDriverLookup, valueExpr: 'Deleted', displayExpr: 'Text' }\r\n }, \r\n { caption: 'Driver ID', dataField: 'Id', cssClass: 'Id', dataType: 'number', alignment: 'center' },\r\n { caption: 'Driver No', dataField: 'Number', cssClass: 'Number', dataType: 'string' },\r\n { caption: 'Driver Name', dataField: 'Name', cssClass: 'Name', dataType: 'string' },\r\n { caption: 'Valid Until', dataField: 'ValidDate', cssClass: 'ValidDate', dataType: 'date', format: 'dd/MM/yyyy' }\r\n ],\r\n\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n getDriverDetails(selectedRowsInfo.selectedRowsData[0].Id);\r\n }\r\n else {\r\n $scope.driver = angular.copy($scope.newDriver);\r\n }\r\n\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Driver\"; \r\n }\r\n });\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.addNewEntity = function () {\r\n $rootScope.pageTitle = \"New Driver\";\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.Driver = angular.copy($scope.newDriver);\r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridDriver').dxDataGrid('instance');\r\n dataGrid.clearSelection(); \r\n $scope.isFormVisible = false;\r\n $scope.DriverForm.$submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db driver and set to scope.Driver.\r\n getDriverDetails($scope.driver.Id);\r\n }\r\n else {\r\n angular.copy($scope.newDriver, $scope.driver);\r\n } \r\n $scope.DriverForm.$setPristine();\r\n $scope.DriverForm.$submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Driver details were reset' });\r\n };\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.DriverForm.$valid) { \r\n $scope.saveDriver();\r\n } \r\n };\r\n\r\n $scope.saveDriver = function () {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n var pageindex, id;\r\n $scope.closeModelStateErrors();\r\n DriverFactory.saveDriver($scope.driver).success(function (data) {\r\n DriverFactory.getDriverList().success(function (data) {\r\n var dataGrid = $('#gridDriver').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n pageindex = dataGrid.pageIndex();\r\n $scope.driverList = data;\r\n if ($scope.driver.Id <= 0) {\r\n $scope.cancelForm();\r\n }\r\n $scope.refreshGrid(pageindex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n if ($scope.driver.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Driver successfully' });\r\n }\r\n else { \r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Driver successfully' });\r\n }\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridDriver', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridDriver', settings.GridMarginHeight);\r\n }\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n}]);","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('ExportConfigurationSetFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getConfigurationSetList: function () {\r\n return $http.get(settings.ApiURL + settings.ConfigurationSetURL);\r\n },\r\n getConfigurationSetById: function (id) {\r\n return $http.get(settings.ApiURL + settings.ConfigurationSetURL + \"/\" + id);\r\n },\r\n exportConfigurationSetByid: function (id) {\r\n return $http.get(settings.ApiURL + settings.ConfigurationSetURL + \"/export/\" + id);\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('ExportConfigurationSetController', ['$q', '$scope', '$parse', 'ExportConfigurationSetFactory', '$rootScope', 'settings', 'masterFactory', '$uibModal',\r\n function ($q, $scope, $parse, ExportConfigurationSetFactory, $rootScope, settings, masterFactory, $uibModal) {\r\n $rootScope.pageTitle = \"Export TransPac Configuration\";\r\n $scope.configurationSetList = [];\r\n $scope.ConfigurationSetType = null;\r\n $scope.DBVersion = null;\r\n $scope.CompanyName = null;\r\n $scope.configurationValues = [];\r\n $scope.selectedConfigurationSetId = null; \r\n $scope.error = \"\";\r\n $scope.isFormVisible = false; \r\n\r\n // Initialization - this runs on load\r\n var init = function () {\r\n masterFactory.verifyAuthentication();\r\n $scope.selectedConfigurationSetId = 0;\r\n\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n ExportConfigurationSetFactory.getConfigurationSetList().success(function (data) { \r\n $scope.configurationSetList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n ExportConfigurationSetFactory.getConfigurationSetById(0).success(function (data) {\r\n $scope.ConfigurationSetType = data.ConfigurationSetType;\r\n $scope.DBVersion = data.DBVersion;\r\n $scope.CompanyName = data.CompanyName;\r\n $scope.configurationValues = data.ConfigurationValues;\r\n $scope.isFormVisible = true;\r\n }).error(function (data, status) {\r\n $scope.isFormVisible = false;\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () { \r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n init();\r\n\r\n // On selecting a configuration from left side list\r\n $scope.onSelectedConfigurationSetChange = function (setId) {\r\n $scope.closeAlert(); \r\n $scope.configurationValues = [];\r\n \r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ExportConfigurationSetFactory.getConfigurationSetById(setId).success(function (data) {\r\n $scope.ConfigurationSetType = data.ConfigurationSetType;\r\n $scope.DBVersion = data.DBVersion;\r\n $scope.CompanyName = data.CompanyName;\r\n $scope.configurationValues = data.ConfigurationValues;\r\n $scope.isFormVisible = true; \r\n }).error(function (data, status) {\r\n $scope.isFormVisible = false;\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n \r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.exportConfigurationValues = function (setId) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ExportConfigurationSetFactory.exportConfigurationSetByid(setId).success(function (data, status, headers) {\r\n headers = headers();\r\n\r\n var filename = headers['x-filename'];\r\n if(filename == null) filename = \"ConfigurationSet.json\";\r\n var contentType = headers['content-type'];\r\n if(contentType == null) contentType = \"application/json\";\r\n var linkElement = document.createElement('a');\r\n try {\r\n var jsonString = JSON.stringify(data, null, 2);\r\n var blob = new Blob([jsonString], { type: contentType });\r\n var url = window.URL.createObjectURL(blob);\r\n\r\n linkElement.setAttribute('href', url);\r\n linkElement.setAttribute(\"download\", filename);\r\n\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 } catch (ex) {\r\n console.log(ex);\r\n }\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Export successful.' });\r\n }).error(function (data, status) {\r\n $scope.isFormVisible = false;\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n \r\n // Helping functions and events\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n }; \r\n\r\n $scope.viewComplexConfigValue = function (configurationValue, configTypeToDisplay) {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n templateUrl: 'app-legacy/Entities/templates/complexConfigurationModal_export.html',\r\n controller: 'ComplexConfigurationModalController',\r\n controllerAs: 'modalVm',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n ComplexConfigurationValue: function () {\r\n configurationValue.deviceId = null;\r\n configurationValue.driverId = null;\r\n if (configTypeToDisplay == 'DEFAULT') {\r\n configurationValue.XmlSchema = angular.copy(configurationValue.DefaultXmlSchema);\r\n }\r\n else if (configTypeToDisplay == 'GROUP') {\r\n configurationValue.XmlSchema = angular.copy(configurationValue.GroupXmlSchema);\r\n }\r\n return configurationValue;\r\n }\r\n }\r\n });\r\n };\r\n\r\n }]);\r\n\r\napp.controller('ComplexConfigurationModalController', ['$scope', '$uibModalInstance', 'ComplexConfigurationValue', '$filter', '$uibModal',\r\n function ($scope, $uibModalInstance, ComplexConfigurationValue, $filter, $uibModal) {\r\n var modalVm = this;\r\n\r\n init();\r\n\r\n modalVm.cancel = function () {\r\n $uibModalInstance.close('ok');\r\n };\r\n\r\n modalVm.formSelected = function (index) {\r\n modalVm.ModalHeading = modalVm.ComplexConfigurationValue.Name;\r\n modalVm.IsAddNew = false;\r\n modalVm.MultiFormSettings.selectedFormIndex = index;\r\n };\r\n\r\n function init() {\r\n modalVm.ActiveTab = 0;\r\n modalVm.SortedSelectedList = {};\r\n modalVm.ComplexConfigurationValue = angular.copy(ComplexConfigurationValue);\r\n modalVm.ResetComplexConfigurationValue = angular.copy(ComplexConfigurationValue);\r\n modalVm.ModalHeading = modalVm.ComplexConfigurationValue.Name;\r\n modalVm.IsSingle = modalVm.ComplexConfigurationValue.XmlSchema.isSingle;\r\n if (!modalVm.IsSingle) { // multi form settings\r\n modalVm.MultiFormSettings = {\r\n newForm: angular.copy(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence.splice(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence.length - 1, 1)),\r\n stagingComplexConfig: angular.copy(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence),\r\n selectedFormIndex: 0\r\n };\r\n }\r\n };\r\n }]);","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('FactorFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getFactorList: function () {\r\n return $http.get(settings.ApiURL + settings.FactorURL);\r\n },\r\n getFactorById: function (id, code) {\r\n return $http.get(settings.ApiURL + settings.FactorURL + '/' + id + '/' + code);\r\n },\r\n saveFactor: function (factor) {\r\n return $http.put(settings.ApiURL + settings.FactorURL, factor);\r\n },\r\n deleteFactor: function (id, code) {\r\n return $http.delete(settings.ApiURL + settings.FactorURL + '/' + id + '/' + code);\r\n },\r\n getNewFactor: function () {\r\n return $http.get(settings.ApiURL + settings.FactorURL + \"/newfactor\");\r\n },\r\n getQuantityUnitDropdown: function () {\r\n return $http.get(settings.ApiURL + settings.ProductURL + \"/quantityunit/dropdown\");\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('FactorController', function ($q, $scope, FactorFactory, $rootScope, settings, masterFactory) {\r\n $rootScope.pageTitle = \"Factor\"; \r\n $scope.factors = [];\r\n $scope.factor = {};\r\n $scope.newfactor = {};\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.pageSize = 20;\r\n $scope.factorQuantityUnits = [];\r\n\r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication();\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n FactorFactory.getFactorList().success(function (data) {\r\n $scope.factors = data;\r\n $scope.setFilterLists();\r\n $scope.refreshGrid(pageIndex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n }),\r\n FactorFactory.getNewFactor().success(function (data) {\r\n $scope.newfactor = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n FactorFactory.getQuantityUnitDropdown().success(function (data) {\r\n $scope.factorQuantityUnits = data;\r\n //data.forEach(function (quantityUnit) {\r\n \r\n // if ($scope.factorQuantityUnits.length == 0 || !quantityUnitExits(quantityUnit))\r\n // $scope.factorQuantityUnits.push(quantityUnit);\r\n //});\r\n $scope.refreshGrid(pageIndex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n ]).then(function () {\r\n });\r\n };\r\n \r\n init(0);\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex) { \r\n $('#gridFactor').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.factors,\r\n type: 'array',\r\n key: [\"Id\",\"Code\"]\r\n }\r\n }, \r\n noDataText: \"No Product Factors Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: grdReadyAction,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: $scope.pageSize,\r\n pageIndex: PageIndex\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'Quantity Unit',\r\n dataField: 'QuantityUnit',\r\n cssClass: 'QuantityUnit',\r\n dataType: 'string',\r\n alignment: 'center',\r\n lookup: {\r\n dataSource: $scope.factorQuantityUnits \r\n } \r\n },\r\n {\r\n caption: 'Factor ID',\r\n dataField: 'Id',\r\n cssClass: 'Id',\r\n dataType: 'number',\r\n alignment: 'center',\r\n lookup: {\r\n dataSource: $scope.factorIds,\r\n displayExpr: 'name',\r\n valueExpr: 'value'\r\n }\r\n },\r\n {\r\n caption: 'Factor Code',\r\n dataField: 'Code',\r\n cssClass: 'Code',\r\n dataType: 'number',\r\n alignment: 'center',\r\n lookup: {\r\n dataSource: $scope.factorCodes,\r\n displayExpr: 'name',\r\n valueExpr: 'value'\r\n }\r\n },\r\n {\r\n caption: 'Temperature',\r\n dataField: 'Temperature',\r\n cssClass: 'Temperature',\r\n dataType: 'number',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n var text = options.data.Temperature;\r\n if (options.data.Items.length > 1)\r\n text = '....';\r\n $('').text(text).appendTo(container);\r\n }\r\n },\r\n {\r\n caption: 'Factor',\r\n dataField: 'Value',\r\n cssClass: 'Value',\r\n dataType: 'number',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n var text = options.data.Value;\r\n if (options.data.Items.length > 1)\r\n text = '....';\r\n $('').text(text).appendTo(container);\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n FactorFactory.getFactorById(selectedRowsInfo.selectedRowsData[0].Id, selectedRowsInfo.selectedRowsData[0].Code).success(function (data) {\r\n $scope.factor = data;\r\n $scope.refreshFactorItems();\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Factors\";\r\n $scope.error = \"\";\r\n $scope.newUnit = \"\";\r\n $scope.isNewUnit = false;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshFactorItems = function () {\r\n\r\n $('#gridFactorItems').dxDataGrid({\r\n dataSource: $scope.factor.Items,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n height: 470,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: 30\r\n },\r\n editing: {\r\n editEnabled: false,\r\n insertEnabled: true,\r\n removeEnabled: true\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: false\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'Temperature',\r\n dataField: 'Temperature',\r\n validationRules: [{ type: 'required' }],\r\n alignment: 'center'\r\n },\r\n {\r\n caption: 'Factor',\r\n dataField: 'Value',\r\n validationRules: [{ type: 'required' }],\r\n alignment: 'center'\r\n }\r\n ],\r\n rowInserted: function (e) {\r\n var dataGrid = $('#gridFactorItems').dxDataGrid('instance');\r\n var index = $scope.factor.Items.length - 1;\r\n var flag = false;\r\n if ($scope.factor.Items[index].Temperature == undefined || $scope.factor.Items[index].Value == undefined || $scope.factor.Items[index].Temperature == '' || $scope.factor.Items[index].Value == '') {\r\n $scope.factor.Items.splice(index, 1);\r\n flag = true;\r\n } \r\n\r\n dataGrid.refresh();\r\n if (!flag)\r\n (dataGrid as unknown as FacnmDx).selectRows($scope.factor.Items[index]);\r\n }\r\n }).dxDataGrid('instance');\r\n\r\n var grd = document.getElementById(\"gridFactorItems\");\r\n if (grd.getElementsByClassName(\"dx-datagrid-header-panel\")[0].childNodes.length == 1)\r\n $(' Factor Items ').appendTo(grd.getElementsByClassName(\"dx-datagrid-header-panel\")[0]);\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.addNewEntity = function () {\r\n $scope.error = \"\";\r\n $rootScope.pageTitle = \"New Factor\";\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.factor = angular.copy($scope.newfactor);\r\n $scope.factor.Items = []; \r\n $scope.refreshFactorItems();\r\n ToggleGreenToYellow();\r\n $scope.newUnit = \"\";\r\n $scope.isNewUnit = false;\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n FactorFactory.deleteFactor($scope.factor.Id, $scope.factor.Code).success(function (data) {\r\n FactorFactory.getFactorList().success(function (data) {\r\n var dataGrid = $('#gridFactor').dxDataGrid('instance'); \r\n var pageindex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.factors = data;\r\n $scope.setFilterLists();\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex);\r\n }).error(function () {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Factor successfully' });\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n $scope.error = \"\";\r\n var dataGrid = $('#gridFactor').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.factor = {};\r\n $scope.factor.Items = []; \r\n $scope.isFormVisible = false; \r\n $scope.factorForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.newUnit = \"\";\r\n $scope.isNewUnit = false;\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db bankaccount and set to scope.bankaccount. \r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n FactorFactory.getFactorById($scope.factor.Id, $scope.factor.Code).success(function (data) {\r\n $scope.factor = data; \r\n $scope.refreshFactorItems(); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n }); \r\n }\r\n else {\r\n angular.copy($scope.newfactor, $scope.factor);\r\n $scope.refreshFactorItems();\r\n } \r\n \r\n $scope.factorForm.$setPristine();\r\n $scope.factorForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.newUnit = \"\";\r\n $scope.isNewUnit = false;\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Factor details were reset' }); \r\n };\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.factorForm.$valid) {\r\n $scope.saveFactor();\r\n $scope.factorForm.submitted = false;\r\n } else {\r\n $scope.factorForm.submitted = true;\r\n }\r\n };\r\n\r\n $scope.saveFactor = function () {\r\n $scope.error = \"\"; \r\n var pageindex, id;\r\n $scope.closeModelStateErrors();\r\n if ($scope.factor.Items.length > 0) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n FactorFactory.saveFactor($scope.factor).success(function (data) {\r\n FactorFactory.getFactorList().success(function (data) {\r\n var dataGrid = $('#gridFactor').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n pageindex = dataGrid.pageIndex();\r\n $scope.factors = data;\r\n $scope.setFilterLists();\r\n if ($scope.factor.Id > 0) {\r\n $scope.refreshGrid(pageindex)\r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex);\r\n } \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function (data) {\r\n if ($scope.factor.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Factor successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Factor successfully' });\r\n }\r\n }); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n $scope.error = 'Add minimum one Factor Item!';\r\n } \r\n }\r\n\r\n // Adding and saving new Quantity Unit\r\n $scope.addNewUnit = function () {\r\n $scope.isNewUnit = true;\r\n $scope.newUnit = \"\";\r\n masterFactory.setFocus('focusNewUnit');\r\n };\r\n\r\n $scope.saveNewUnit = function () {\r\n if ($scope.newUnit != \"\") {\r\n var flag = false;\r\n for (var i = 0; i < $scope.factorQuantityUnits.length; i++) {\r\n if ($scope.factorQuantityUnits[i].toLowerCase() == $scope.newUnit.toLowerCase()) {\r\n flag = true;\r\n $scope.newUnit = $scope.factorQuantityUnits[i];\r\n }\r\n }\r\n if (!flag) $scope.factorQuantityUnits.push($scope.newUnit);;\r\n $scope.factor.QuantityUnit = $scope.newUnit;\r\n $scope.isNewUnit = false;\r\n }\r\n else {\r\n masterFactory.setFocus('focusNewUnit');\r\n }\r\n };\r\n\r\n $scope.cancelNewUnit = function () {\r\n $scope.newUnit = \"\";\r\n $scope.isNewUnit = false;\r\n };\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridFactor', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridFactor', settings.GridMarginHeight);\r\n };\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n \r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n\r\n $scope.setFilterLists = function () {\r\n $scope.factorIds = [];\r\n $scope.factorCodes = []; \r\n if ($scope.factors!= undefined && $scope.factors.length > 0) {\r\n $scope.factors.forEach(function (factor) {\r\n $scope.factorCodes.push({ name: factor.Code, value: factor.Code });\r\n $scope.factorIds.push({ name: factor.Id, value: factor.Id });\r\n });\r\n $scope.factors.forEach(function (factor) {\r\n if ($scope.factorQuantityUnits.length == 0 || !quantityUnitExits(factor.QuantityUnit))\r\n $scope.factorQuantityUnits.push(factor.QuantityUnit);\r\n });\r\n } \r\n };\r\n\r\n var quantityUnitExits = function (quantityUnit) {\r\n var flag = false;\r\n $scope.factorQuantityUnits.forEach(function (qUnit) {\r\n if (qUnit == quantityUnit) {\r\n flag = true;\r\n }\r\n });\r\n return flag;\r\n };\r\n\r\n});","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('FleetFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getFleetList: function () {\r\n return $http.get(settings.ApiURL + settings.FleetURL);\r\n },\r\n getFleetByID: function (id) {\r\n return $http.get(settings.ApiURL + settings.FleetURL + \"/\" + id);\r\n },\r\n saveFleet: function (Fleet) {\r\n return $http.put(settings.ApiURL + settings.FleetURL, Fleet);\r\n },\r\n deleteFleet: function (id) {\r\n return $http.delete(settings.ApiURL + settings.FleetURL + \"/\" + id);\r\n }, \r\n getNewFleet: function () {\r\n return $http.get(settings.ApiURL + settings.FleetURL + \"/newfleet\");\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('FleetController', function ($q, $scope, FleetFactory, $rootScope, settings, masterFactory) {\r\n $rootScope.pageTitle = \"Fleet Management\";\r\n $scope.fleetList = [];\r\n $scope.fleet = {}; \r\n $scope.newfleet = {};\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.isNewFleet = false;\r\n $scope.isAssignedVehicleSelected = false;\r\n $scope.isUnassignedVehicleSelected = false;\r\n $scope.isAssignedDriverSelected = false;\r\n $scope.isUnassignedDriverSelected = false;\r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication();\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n FleetFactory.getFleetList().success(function (data) {\r\n $scope.fleetList = data;\r\n $scope.refreshGrid(pageIndex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n })\r\n ]).then(function () {\r\n \r\n });\r\n };\r\n\r\n var getFleetDetails = function (id) {\r\n FleetFactory.getFleetByID(id).success(function (data) {\r\n $scope.fleet = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n init(0);\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex) {\r\n $('#gridFleet').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.fleetList,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n columns: [\r\n { alignment: 'center', caption: 'Fleet ID', dataField: 'Id', cssClass: 'Id', dataType: 'number', },\r\n {\r\n alignment: 'center', caption: 'Fleet 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 container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n { alignment: 'center', caption: 'Vehicles', dataField: 'NumberOfAssignedVehicles', cssClass: 'NumberOfAssignedVehicles', dataType: 'number' },\r\n { alignment: 'center', caption: 'Drivers', dataField: 'NumberOfAssignedDrivers', cssClass: 'NumberOfAssignedDrivers', dataType: 'number' }\r\n ],\r\n contentReadyAction: grdReadyAction,\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n noDataText: \"No Fleets Found\",\r\n pager: { showPageSizeSelector: true, allowedPageSizes: [10, 20, 30] },\r\n paging: { pageSize: $scope.pageSize, pageIndex: PageIndex },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'single' },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $('#loadingModal').modal({ backdrop: 'static' }); \r\n FleetFactory.getFleetByID(selectedRowsInfo.selectedRowsData[0].Id).success(function (data) {\r\n $scope.fleet = data;\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n $scope.refreshAssignedDriversGrid();\r\n $scope.refreshUnAssignedDriversGrid();\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n $scope.isNewFleet = false;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Fleet Management\";\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n $scope.fleet = angular.copy($scope.newfleet);\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshAssignedVehiclesGrid = function () {\r\n $scope.isAssignedVehicleSelected = false;\r\n\r\n $('#gridAssignedVehicles').dxDataGrid({\r\n dataSource: $scope.fleet.AssignedVehicles,\r\n columns: [\r\n { caption: 'Vehicle Id', dataField: 'Id', cssClass: 'Id', dataType: 'number', visible: false }, \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 container.addClass('grid-cell-align-left');\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: 'center', caption: 'License Plate', dataField: 'LicensePlate', cssClass: 'LicensePlate', dataType: 'string',\r\n width: 150,\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.LicensePlate)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ], \r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n height: 470,\r\n paging: { pageSize: 10 },\r\n pager: { showPageSizeSelector: false },\r\n rowAlternationEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selection: { mode: 'multiple' },\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n $scope.isAssignedVehicleSelected = true;\r\n }\r\n else {\r\n $scope.isAssignedVehicleSelected = false;\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshUnAssignedVehiclesGrid = function () {\r\n $scope.isUnassignedVehicleSelected = false; \r\n\r\n $('#gridUnAssignedVehicles').dxDataGrid({\r\n dataSource: $scope.fleet.UnassignedVehicles,\r\n columns: [\r\n { caption: 'Vehicle Id', dataField: 'Id', cssClass: 'Id', dataType: 'number', visible: false },\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 container.addClass('grid-cell-align-left');\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 {\r\n alignment: 'center', caption: 'License Plate', dataField: 'LicensePlate', cssClass: 'LicensePlate', dataType: 'string',\r\n width: 150,\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.LicensePlate)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false, },\r\n height: 470,\r\n paging: { pageSize: 10 },\r\n pager: { showPageSizeSelector: false },\r\n rowAlternationEnabled: false, \r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selection: { mode: 'multiple' },\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n $scope.isUnassignedVehicleSelected = true;\r\n }\r\n else {\r\n $scope.isUnassignedVehicleSelected = false;\r\n } \r\n }\r\n });\r\n };\r\n\r\n $scope.refreshAssignedDriversGrid = function () {\r\n $scope.isAssignedDriverSelected = false;\r\n $('#gridAssignedDrivers').dxDataGrid({\r\n dataSource: $scope.fleet.AssignedDrivers,\r\n columns: [\r\n { alignment: 'center', caption: 'Driver ID', dataField: 'Id', cssClass: 'Id', dataType: 'number' },\r\n { alignment: 'center', caption: 'Driver No', dataField: 'Number', cssClass: 'Number', dataType: 'string' },\r\n {\r\n alignment: 'center', caption: 'Driver 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 container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n ],\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false, },\r\n height: 470,\r\n paging: { pageSize: 10 },\r\n pager: { showPageSizeSelector: false },\r\n rowAlternationEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selection: { mode: 'multiple' },\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n $scope.isAssignedDriverSelected = true;\r\n }\r\n else {\r\n $scope.isAssignedDriverSelected = false;\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshUnAssignedDriversGrid = function () {\r\n $scope.isUnassignedDriverSelected = false; \r\n\r\n $('#gridUnAssignedDrivers').dxDataGrid({\r\n dataSource: $scope.fleet.UnassignedDrivers,\r\n columns: [\r\n { alignment: 'center', caption: 'Driver ID', dataField: 'Id', cssClass: 'Id', dataType: 'number' },\r\n { alignment: 'center', caption: 'Driver No', dataField: 'Number', cssClass: 'Number', dataType: 'string' },\r\n {\r\n alignment: 'center', caption: 'Driver 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 container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n ],\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false, },\r\n height: 470,\r\n paging: { pageSize: 10 },\r\n pager: { showPageSizeSelector: false },\r\n rowAlternationEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selection: { mode: 'multiple' },\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n $scope.isUnassignedDriverSelected = true;\r\n }\r\n else {\r\n $scope.isUnassignedDriverSelected = false;\r\n } \r\n }\r\n });\r\n };\r\n\r\n //Button click functions\r\n $scope.addNewFleet = function () {\r\n $rootScope.pageTitle = \"New Fleet Management\";\r\n FleetFactory.getFleetByID(0).success(function (data) {\r\n $scope.fleet = data;\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n $scope.refreshAssignedDriversGrid();\r\n $scope.refreshUnAssignedDriversGrid();\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.isNewFleet = true;\r\n ToggleGreenToYellow();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n FleetFactory.deleteFleet($scope.fleet.Id).success(function (data) {\r\n FleetFactory.getFleetList().success(function (data) {\r\n var dataGrid = $('#gridFleet').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.fleetList = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex);\r\n }).error(function () {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Fleet successfully' });\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridFleet').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false;\r\n $scope.fleetForm.$submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db fleet and set to scope.fleet.\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n FleetFactory.getFleetByID($scope.fleet.Id).success(function (data) {\r\n $scope.fleet = data;\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n $scope.refreshAssignedDriversGrid();\r\n $scope.refreshUnAssignedDriversGrid();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n angular.copy($scope.newfleet, $scope.fleet);\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n $scope.refreshAssignedDriversGrid();\r\n $scope.refreshUnAssignedDriversGrid();\r\n }\r\n\r\n $scope.fleetForm.$setPristine();\r\n $scope.fleetForm.$submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Fleet details were reset' });\r\n };\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.fleetForm.$valid) {\r\n $scope.saveFleet();\r\n }\r\n };\r\n\r\n $scope.saveFleet = function () {\r\n var pageindex, id;\r\n $scope.closeModelStateErrors();\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n FleetFactory.saveFleet($scope.fleet).success(function (fleetId) {\r\n FleetFactory.getFleetList().success(function (data) {\r\n var dataGrid = $('#gridFleet').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n pageindex = dataGrid.pageIndex();\r\n $scope.fleetList = data;\r\n if ($scope.fleet.Id <= 0) {\r\n $scope.cancelForm(); \r\n } \r\n $scope.refreshGrid(pageindex); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function (data) {\r\n if ($scope.fleet.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Fleet successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Fleet successfully' });\r\n }\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n // assigning and Unassigning grid items on details panel\r\n $scope.assignVehicles = function () {\r\n var dataGrid = $('#gridUnAssignedVehicles').dxDataGrid('instance');\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var i = 0; var len = selectedRows.length;\r\n for (; i < len; i++) {\r\n var prd = $scope.filter($scope.fleet.AssignedVehicles, selectedRows[i].Id);\r\n $scope.fleet.UnassignedVehicles.splice($scope.fleet.UnassignedVehicles.indexOf(selectedRows[i]), 1);\r\n if (prd == null) {\r\n $scope.fleet.AssignedVehicles.push(selectedRows[i]);\r\n }\r\n }\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n dataGrid.clearSelection();\r\n };\r\n\r\n $scope.unassignVehicles = function () {\r\n var dataGrid = $('#gridAssignedVehicles').dxDataGrid('instance');\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var i = 0; var len = selectedRows.length;\r\n for (; i < len; i++) {\r\n $scope.fleet.AssignedVehicles.splice($scope.fleet.AssignedVehicles.indexOf(selectedRows[i]), 1);\r\n $scope.fleet.UnassignedVehicles.push(selectedRows[i]);\r\n }\r\n $scope.refreshAssignedVehiclesGrid();\r\n $scope.refreshUnAssignedVehiclesGrid();\r\n dataGrid.clearSelection();\r\n };\r\n\r\n $scope.assignDrivers = function () {\r\n var dataGrid = $('#gridUnAssignedDrivers').dxDataGrid('instance');\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var i = 0; var len1 = selectedRows.length;\r\n for (; i < len1; i++) {\r\n var prd = $scope.filter($scope.fleet.AssignedDrivers, selectedRows[i].Id);\r\n $scope.fleet.UnassignedDrivers.splice($scope.fleet.UnassignedDrivers.indexOf(selectedRows[i]), 1);\r\n if (prd == null) {\r\n $scope.fleet.AssignedDrivers.push(selectedRows[i]);\r\n }\r\n }\r\n $scope.refreshAssignedDriversGrid();\r\n $scope.refreshUnAssignedDriversGrid();\r\n dataGrid.clearSelection();\r\n };\r\n\r\n $scope.unassignDrivers = function () {\r\n var dataGrid = $('#gridAssignedDrivers').dxDataGrid('instance');\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var i = 0; var len = selectedRows.length;\r\n for (; i < len; i++) {\r\n $scope.fleet.AssignedDrivers.splice($scope.fleet.AssignedDrivers.indexOf(selectedRows[i]), 1);\r\n $scope.fleet.UnassignedDrivers.push(selectedRows[i]);\r\n }\r\n $scope.refreshAssignedDriversGrid();\r\n $scope.refreshUnAssignedDriversGrid();\r\n dataGrid.clearSelection();\r\n };\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridFleet', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridFleet', settings.GridMarginHeight);\r\n };\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.filter = function (input, id) {\r\n var i = 0, len = input.length;\r\n for (; i < len; i++) {\r\n if (+input[i].Id == +id) {\r\n return input[i];\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n});\r\n","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('ImportConfigurationSetFactory', ['$http', 'settings', function ($http, settings) {\r\n return { \r\n uploadConfigurationSet: function (configurationSet) {\r\n return $http.post(settings.ApiURL + settings.ConfigurationSetURL + \"/upload\", configurationSet);\r\n },\r\n importConfigurationSet: function (configurationSet) {\r\n return $http.post(settings.ApiURL + settings.ConfigurationSetURL + \"/import\", configurationSet);\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('ImportConfigurationSetController', ['$scope', '$parse', 'ImportConfigurationSetFactory', '$rootScope', 'settings', 'masterFactory', '$uibModal', 'Upload',\r\n function ($scope, $parse, ImportConfigurationSetFactory, $rootScope, settings, masterFactory, $uibModal, Upload) {\r\n $rootScope.pageTitle = \"Import TransPac Configuration\";\r\n $scope.compareConfigurationSet = null;\r\n $scope.importedConfigurationSet = {};\r\n $scope.importedConfigurationValues = [];\r\n $scope.dbConfigurationSet = []; \r\n $scope.error = \"\";\r\n $scope.isFormVisible = false;\r\n $scope.fileString = null; \r\n $scope.file = null; \r\n $scope.uploaded = false;\r\n $scope.imported = false;\r\n\r\n $scope.$watch('files', function (files) {\r\n $scope.readFile(files, null);\r\n });\r\n\r\n // Initialization - this runs on load\r\n var init = function () {\r\n masterFactory.verifyAuthentication();\r\n };\r\n\r\n init();\r\n\r\n // Button click functions and submit form function\r\n $scope.readFile = function (file, errFiles) { \r\n $scope.fileString = null;\r\n $scope.importedConfigurationSet = [];\r\n $scope.file = null;\r\n $scope.file = file;\r\n // code to read the file. \r\n if (!IsUndefinedOrNull($scope.file)) {\r\n var blob = $scope.file.slice(0, $scope.file.size, 'application/json');\r\n var fr = new FileReader();\r\n // code to get json string from the file. \r\n fr.onload = function (e:any) {\r\n $scope.$apply(function () {\r\n $scope.fileString = e.target.result; \r\n }); \r\n $scope.importedConfigurationSet = JSON.parse($scope.fileString); \r\n };\r\n fr.readAsText(blob);\r\n }\r\n //code to display error when non supported file is selected. \r\n }\r\n\r\n $scope.uploadFile = function () {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ImportConfigurationSetFactory.uploadConfigurationSet($scope.importedConfigurationSet).success(function (data) { \r\n $scope.compareConfigurationSet = data;\r\n $scope.uploaded = true;\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'File upload successful.' });\r\n }).error(function (data, status) {\r\n $scope.isFormVisible = false;\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n $scope.importConfigurations = function () { \r\n // DB version must be same \r\n if ($scope.compareConfigurationSet.CurrentDBVersion != $scope.compareConfigurationSet.ImportedDBVersion) {\r\n $scope.notify.add({ type: 'warning', title: 'Error!', body: 'Cannot Import - Different DB version detected.' });\r\n return;\r\n }\r\n // Imported DB group name required. \r\n else if ($scope.compareConfigurationSet.ConfigurationSetType == 'group' && $scope.compareConfigurationSet.ImportedDBGroupName == '') {\r\n $scope.notify.add({ type: 'warning', title: 'Error!', body: 'Cannot Import - Imported Configs Group name required.' });\r\n return;\r\n }\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ImportConfigurationSetFactory.importConfigurationSet($scope.compareConfigurationSet).success(function (data) {\r\n $scope.imported = true;\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Configurations import successful.' });\r\n }).error(function (data, status) {\r\n $scope.isFormVisible = false;\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n $scope.cancelUpload = function () { \r\n $scope.fileString = null; \r\n $scope.importedConfigurationSet = {};\r\n $scope.compareConfigurationSet = null;\r\n $scope.file = null;\r\n $scope.uploaded = false;\r\n };\r\n\r\n $scope.cancelImport = function () {\r\n $scope.cancelUpload();\r\n };\r\n\r\n $scope.viewComplexConfigValue = function (configurationValue, configTypeToDisplay) {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n templateUrl: 'app-legacy/Entities/templates/complexConfigurationModal_import.html',\r\n controller: 'ComplexConfigurationModalController',\r\n controllerAs: 'modalVm',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n ComplexConfigurationValue: function () {\r\n configurationValue.deviceId = null;\r\n configurationValue.driverId = null;\r\n if (configTypeToDisplay == 'IMPORTED-DB') {\r\n configurationValue.XmlSchema = angular.copy(configurationValue.ImportedDBXmlValue);\r\n }\r\n else if (configTypeToDisplay == 'CURRENT-DB') {\r\n configurationValue.XmlSchema = angular.copy(configurationValue.CurrentDBXmlValue);\r\n }\r\n return configurationValue;\r\n }\r\n }\r\n });\r\n };\r\n\r\n // Helping functions and events\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n }]);\r\n\r\napp.controller('ComplexConfigurationModalController', ['$scope', '$uibModalInstance', 'ComplexConfigurationValue', '$filter', '$uibModal',\r\n function ($scope, $uibModalInstance, ComplexConfigurationValue, $filter, $uibModal) {\r\n var modalVm = this;\r\n modalVm.labelConfig = $scope.getLables(ComplexConfigurationValue.Id);\r\n init();\r\n\r\n modalVm.cancel = function () {\r\n $uibModalInstance.close('ok');\r\n };\r\n\r\n modalVm.formSelected = function (index) {\r\n modalVm.ModalHeading = modalVm.ComplexConfigurationValue.Name;\r\n modalVm.IsAddNew = false;\r\n modalVm.MultiFormSettings.selectedFormIndex = index;\r\n };\r\n\r\n function init() {\r\n modalVm.ActiveTab = 0;\r\n modalVm.SortedSelectedList = {};\r\n modalVm.ComplexConfigurationValue = angular.copy(ComplexConfigurationValue);\r\n modalVm.ResetComplexConfigurationValue = angular.copy(ComplexConfigurationValue);\r\n modalVm.ModalHeading = modalVm.ComplexConfigurationValue.Name;\r\n modalVm.IsSingle = modalVm.ComplexConfigurationValue.XmlSchema.isSingle;\r\n if (!modalVm.IsSingle) { // multi form settings\r\n modalVm.MultiFormSettings = {\r\n newForm: angular.copy(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence.splice(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence.length - 1, 1)),\r\n stagingComplexConfig: angular.copy(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence),\r\n selectedFormIndex: 0\r\n };\r\n }\r\n };\r\n }]);\r\n","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('LoadPointFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getNewLoadPoint: function () {\r\n return $http.get(settings.ApiURL + settings.LoadPointURL + \"/newloadpoint\");\r\n },\r\n getLoadPointList: function () {\r\n return $http.get(settings.ApiURL + settings.LoadPointURL);\r\n }, \r\n getLoadPointDetails: function (id) {\r\n return $http.get(settings.ApiURL + settings.LoadPointURL + \"/\" + id);\r\n },\r\n saveLoadPoint: function (loadPoint) {\r\n return $http.put(settings.ApiURL + settings.LoadPointURL, loadPoint);\r\n }, \r\n getCountryList: function () {\r\n return $http.get(settings.ApiURL + settings.MasterDataURL + \"/countries/0\");\r\n },\r\n deleteLoadPoint: function (id) {\r\n return $http.delete(settings.ApiURL + settings.LoadPointURL + \"/\" + id);\r\n },\r\n getloadLocationGroup: function() {\r\n return $http.get(settings.ApiURL + settings.LoadPointURL + \"/loadlocationgroup\");\r\n },\r\n getProductDropdown: function () {\r\n return $http.get(settings.ApiURL + settings.ProductURL + \"/dropdown/0\");\r\n },\r\n getLoadPointTankById: function (id, loadPointId) {\r\n return $http.get(settings.ApiURL + settings.LoadPointTankUrl + \"/\" + id + \"/\" + loadPointId);\r\n },\r\n };\r\n}]);\r\n\r\napp.controller('LoadPointController', function ($q, $scope, LoadPointFactory, CompanyFactory, $rootScope, settings, masterFactory,$uibModal,ProductFactory) {\r\n\r\n $rootScope.pageTitle = \"Load Point\"; \r\n $scope.loadPoints = [];\r\n $scope.companies = [];\r\n $scope.nonPrintCompanies = [];\r\n $scope.loadPoint = {};\r\n $scope.newloadPoint = {};\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.pageSize = 20;\r\n $scope.loadLocation = [];\r\n $scope.productDropdown = [];\r\n $scope.deletedLoadPointTanks = [];\r\n\r\n $scope.popupOptionsBulkPlantTankGrid = {\r\n width: 350,\r\n height: 150,\r\n fullScreen: false,\r\n shading: true,\r\n showTitle: true,\r\n dragEnabled: false,\r\n closeOnOutsideClick: true,\r\n bindingOptions: {\r\n visible: 'popupVisible',\r\n }\r\n };\r\n $scope.filterOptions = {\r\n ProductNumber: null, ProductName: null, ProductGroup: null,\r\n GridPagerOptions: { PageIndex: 0, PageSize: 20, TotalPages: null }\r\n };\r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication();\r\n \r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n LoadPointFactory.getLoadPointList().success(function (data) {\r\n $scope.loadPoints = data;\r\n $scope.refreshGrid(0); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n }),\r\n LoadPointFactory.getNewLoadPoint().success(function (data) {\r\n $scope.newloadPoint = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n masterFactory.getCompanies(1).success(function (data) {\r\n $scope.companies = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n LoadPointFactory.getCountryList().success(function (data) {\r\n $scope.countries = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CompanyFactory.getNonPrintCompanyList(1).success(function (data) {\r\n $scope.nonPrintCompanies = data;\r\n }).error(function (data) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n LoadPointFactory.getloadLocationGroup().success(function (data) {\r\n $scope.loadLocation = data;\r\n }).error(function (data) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n ProductFactory.getFilteredProductList($scope.filterOptions).success(function (data) {\r\n $scope.productDropdown = data.ProductListVM;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n });\r\n };\r\n\r\n var getLoadPoint = function (id) {\r\n LoadPointFactory.getLoadPointDetails(id).success(function (data) {\r\n $scope.loadPoint = data;\r\n $scope.refreshBulkPlantTankGrid();\r\n $scope.isBulkPlant = $scope.loadPoint.LoadLocationGroup == 1;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n $scope.isBulkPlant = false;\r\n });\r\n };\r\n\r\n // Rendering Grids\r\n $scope.refreshGrid = function (PageIndex) { \r\n $scope.isBulkPlant = false; \r\n $('#gridloadPoint').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.loadPoints,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n }, \r\n noDataText: \"No Load Points Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: grdReadyAction,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: $scope.pageSize,\r\n pageIndex: PageIndex\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'Load Point No',\r\n dataField: 'Number',\r\n cssClass: 'Number',\r\n dataType: 'string',\r\n alignment: 'center',\r\n width: 100\r\n },\r\n {\r\n caption: 'Load Point Name',\r\n dataField: 'Name1',\r\n cssClass: 'Name1',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) { \r\n $('').text(options.data.Name1).append(\"
\").appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n $('').text(options.data.Name2).append(\"
\").appendTo(container);\r\n container.addClass('grid-cell-align-left'); \r\n }\r\n },\r\n {\r\n caption: 'Load Point Address',\r\n dataField: 'Address',\r\n cssClass: 'Address',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n var postcodecity =\"\";\r\n if (options.data.Postcode != null) postcodecity = postcodecity + options.data.Postcode + \" \";\r\n if (options.data.City != null) postcodecity = postcodecity + options.data.City;\r\n $('').text(options.data.Address).append(\"
\").appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n $('').text(postcodecity).append(\"
\").appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n getLoadPoint(selectedRowsInfo.selectedRowsData[0].Id);\r\n }\r\n else {\r\n $scope.loadPoint = angular.copy($scope.newloadPoint);\r\n $scope.isBulkPlant = false;\r\n }\r\n \r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Load Points\";\r\n }\r\n\r\n });\r\n };\r\n\r\n $scope.onLoadLocationGroupChange = function(){\r\n $scope.isBulkPlant = $scope.loadPoint.LoadLocationGroup == 1;\r\n }\r\n\r\n $scope.refreshBulkPlantTankGrid = function () {\r\n $scope.isLoadPointTankSelected = false;\r\n $scope.deletedLoadPointTanks = [];\r\n $('#gridBulkPlantTank').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.loadPoint.LoadPointTanks,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n columnAutoWidth: true,\r\n height: 230,\r\n selection: { mode: 'single' },\r\n editing: {\r\n editEnabled: false,\r\n insertEnabled: false\r\n },\r\n paging: {\r\n pageSize: 10\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: false\r\n },\r\n groupPanel: {\r\n visible: false\r\n },\r\n columns: [\r\n {\r\n caption: 'Tank ID',\r\n dataField: 'TankId',\r\n dataType: 'string',\r\n alignment: 'center',\r\n width: '50%'\r\n },\r\n {\r\n caption: 'Product',\r\n dataField: 'ProductName',\r\n dataType: 'string',\r\n alignment: 'center',\r\n width: '50%'\r\n },\r\n {\r\n width: 100,\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('').addClass('dx-link')\r\n .text('Delete')\r\n .on('dxclick', function () {\r\n if ($scope.loadPoint.LoadPointTanks.length > 1) {\r\n $(\"#gridBulkPlantTank\").dxDataGrid(\"instance\").removeRow(options.rowIndex);\r\n $scope.deletedLoadPointTanks.push(options.data);\r\n }\r\n else {\r\n $scope.popupVisible = true;\r\n }\r\n })\r\n .appendTo(container);\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0 && !selectedRowsInfo.selectedRowsData[0].Changed) {\r\n //$('#loadingModal').modal({ backdrop: 'static' });\r\n LoadPointFactory.getLoadPointTankById(selectedRowsInfo.selectedRowsData[0].Id, $scope.loadPoint.Id).success(function (data) {\r\n $scope.loadPointTank = data;\r\n $scope.isLoadPointTankSelected = true;\r\n ProductFactory.getProductDetails($scope.loadPointTank.ProductId).success(function (data) {\r\n $scope.loadPointTank.ProductName = data.ProductName;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n $scope.isLoadPointTankSelected = false;\r\n }).finally(function () {\r\n //$('#loadingModal').modal('hide');\r\n });\r\n }\r\n else if (selectedRowsInfo.selectedRowsData.length > 0 && selectedRowsInfo.selectedRowsData[0].Changed) {\r\n $scope.loadPointTank = selectedRowsInfo.selectedRowsData[0];\r\n $scope.isLoadPointTankSelected = true;\r\n $rootScope.user.ProductId = 0;\r\n $rootScope.user.ProductName= '';\r\n }\r\n else {\r\n $scope.loadPointTank = {};\r\n $scope.isLoadPointTankSelected = false;\r\n }\r\n }\r\n });\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.addNewEntity = function () {\r\n $rootScope.pageTitle = \"New Load Point\";\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.loadPoint = angular.copy($scope.newloadPoint);\r\n $scope.loadPoint.LoadPointTanks = []; \r\n $scope.refreshBulkPlantTankGrid(); \r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n LoadPointFactory.deleteLoadPoint($scope.loadPoint.Id).success(function (data) {\r\n LoadPointFactory.getLoadPointList().success(function (data) {\r\n var dataGrid = $('#gridloadPoint').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.loadPoints = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Load Point successfully' });\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridloadPoint').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false; \r\n $scope.loadPointForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n }\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { \r\n getLoadPoint($scope.loadPoint.Id);\r\n }\r\n else {\r\n angular.copy($scope.newloadPoint, $scope.loadPoint);\r\n $scope.isBulkPlant = false;\r\n $scope.loadPoint.LoadPointTanks = [];\r\n }\r\n\r\n $scope.loadPointForm.$setPristine();\r\n $scope.loadPointForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Load Point details were reset' });\r\n };\r\n\r\n $scope.submitForm = function () {\r\n $scope.error = '';\r\n if ($scope.loadPointForm.$valid) {\r\n $scope.saveloadPoint();\r\n $scope.loadPointForm.submitted = false;\r\n } else {\r\n $scope.loadPointForm.submitted = true;\r\n }\r\n };\r\n\r\n var scrollToTop = function () {\r\n $('#LoadPointDetailsDiv').scrollTop(0);\r\n }\r\n\r\n $scope.saveloadPoint = function () : void {\r\n var pageindex;\r\n var id = -1;\r\n if($scope.loadPoint.LoadLocationGroup != 1){\r\n $scope.loadPoint.LoadPointTanks.forEach(function (loadPointTank) {\r\n loadPointTank.Deleted = true;\r\n });\r\n }\r\n\r\n $scope.closeModelStateErrors();\r\n if($scope.loadPoint.LoadLocationGroup == 1 && $scope.loadPoint.LoadPointTanks.length == 0)\r\n {\r\n $scope.modelState[$scope.modelState.length] = \"At least one Bulk Tank is required to save the Load Point.\";\r\n scrollToTop();\r\n return;\r\n }\r\n\r\n $scope.loadPoint.LoadPointTanks.forEach(function (loadPointTank) {\r\n if(loadPointTank.TankId == null){\r\n $scope.modelState[$scope.modelState.length] = \"Tank ID is required for bulk plant tank \" + loadPointTank.Id\r\n }\r\n else if(loadPointTank.TankId.length > 50) {\r\n $scope.modelState[$scope.modelState.length] = \"Tank ID has more than 50 characters for bulk plant tank \" + loadPointTank.Id\r\n }\r\n if(loadPointTank.ProductId == null){\r\n $scope.modelState[$scope.modelState.length] = \"Product is required for bulk plant tank \" + loadPointTank.Id\r\n }\r\n if(loadPointTank.Barcode && loadPointTank.Barcode.length > 50) {\r\n $scope.modelState[$scope.modelState.length] = \"Barcode has more than 50 characters for bulk plant tank \" + loadPointTank.Id\r\n }\r\n if($scope.modelState.length > 0)\r\n return;\r\n if (loadPointTank.LoadLocationId == null) {\r\n loadPointTank.LoadLocationId = $scope.loadPoint.Id;\r\n loadPointTank.Id = id;\r\n id--;\r\n }\r\n });\r\n\r\n if($scope.modelState.length > 0) {\r\n scrollToTop();\r\n return;\r\n }\r\n\r\n LoadPointFactory.saveLoadPoint($scope.loadPoint).success(function (loadPointId) {\r\n LoadPointFactory.getLoadPointList($rootScope.accessToken).success(function (data) {\r\n var dataGrid = $('#gridloadPoint').dxDataGrid('instance');\r\n pageindex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.loadPoints = data;\r\n if ($scope.loadPoint.Id > 0) {\r\n $scope.refreshGrid(pageindex)\r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex);\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n scrollToTop();\r\n }).finally(function (data) {\r\n if ($scope.loadPoint.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Load Point successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Load Point successfully' });\r\n }\r\n }); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n scrollToTop();\r\n });\r\n };\r\n\r\n $scope.addNewLoadPointTank = function () {\r\n var dataGrid = $('#gridBulkPlantTank').dxDataGrid('instance');\r\n var len = 0;\r\n var id = 1;\r\n if ($scope.loadPoint.LoadPointTanks != null)\r\n len = $scope.loadPoint.LoadPointTanks.length;\r\n if (len > 0) {\r\n $scope.loadPoint.LoadPointTanks.forEach(function (loadPointTank) {\r\n if (loadPointTank.Id >= id)\r\n id = loadPointTank.Id + 1;\r\n });\r\n }\r\n $scope.loadPointTank = {};\r\n $scope.loadPointTank.Id = id;\r\n $scope.loadPointTank.Deleted = false\r\n $scope.loadPointTank.Changed = true;\r\n $scope.loadPoint.LoadPointTanks[len] = $scope.loadPointTank;\r\n\r\n dataGrid.refresh();\r\n (dataGrid as unknown as FacnmDx).selectRows($scope.loadPointTank);\r\n };\r\n\r\n $scope.onLoadPointTankChange = function () {\r\n var dataGrid = $('#gridBulkPlantTank').dxDataGrid('instance');\r\n var selectedKey = dataGrid.getSelectedRowKeys();\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var index = $scope.loadPoint.LoadPointTanks.indexOf(selectedRows[0]);\r\n\r\n if($scope.loadPointTank.ProductId)\r\n $scope.loadPointTank.ProductName = $scope.productDropdown.filter(function(item){return item.Id===$scope.loadPointTank.ProductId})[0].ProductName;\r\n\r\n $scope.loadPointTank.Changed = true;\r\n $scope.loadPoint.LoadPointTanks[index] = $scope.loadPointTank;\r\n dataGrid.refresh();\r\n (dataGrid as unknown as FacnmDx).selectRows(selectedKey, true);\r\n };\r\n\r\n $scope.viewProductList = function () {\r\n $uibModal.open({\r\n templateUrl: 'app-legacy/Entities/templates/defaultCustomerModel.html',\r\n controller: 'ProductListController',\r\n size: 'lg',\r\n scope: $scope,\r\n windowTemplateUrl: 'app-legacy/Entities/templates/modal-scrollable-content.html'\r\n }).result.then(function () {\r\n $scope.loadPointTank.ProductId = $rootScope.user.ProductId;\r\n $scope.onLoadPointTankChange();\r\n }).catch(function () {\r\n });\r\n };\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridloadPoint', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridloadPoint', settings.GridMarginHeight);\r\n };\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n init(0);\r\n});\r\n","\r\nimport { default as app } from '@legacy/App';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n\r\napp.factory('LoginFactory', ['$http', 'settings', 'masterFactory', function ($http, settings, masterFactory) {\r\n return {\r\n validateUser: function (user) {\r\n return $http.get(settings.ApiURL + settings.MasterDataURL + '/validateuser/' + user.username + '/' + encodeURIComponent(user.password));\r\n },\r\n authenticate: function (user) {\r\n\r\n var config = {\r\n method: 'POST',\r\n url: environment.endpoint.server + '/token',\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n },\r\n data: 'grant_type=password&username=' + user.username + '&password=' + encodeURIComponent(user.password) + '&company=' + user.company,\r\n };\r\n var setHttpAuthHeader = function (bearerToken) {\r\n sessionStorage.setItem(\"Bearer\", bearerToken);\r\n return $http.defaults.headers.common.Authorization = 'Bearer ' + bearerToken;\r\n };\r\n\r\n return $http(config)\r\n .success(function (data) {\r\n setHttpAuthHeader(data.access_token);\r\n })\r\n .error(function (data) {\r\n return data;\r\n });\r\n }\r\n }\r\n}]);\r\n\r\napp.controller('LoginController', function ($scope, $state, LoginFactory, $rootScope, settings, masterFactory) {\r\n // Initialization - this runs on load\r\n var init = function () {\r\n $rootScope.pageTitle = \"Login\";\r\n $scope.error = \"\";\r\n $scope.isFormVisible = false;\r\n $scope.user = {\r\n username: '',\r\n password: ''\r\n };\r\n\r\n // Notify the user to upgrade the browser to HTML5 enable browser.\r\n if (typeof (Storage) == \"undefined\") {\r\n alert(\"Your browser does not support HTML5. Try upgrading.\");\r\n }\r\n };\r\n\r\n init();\r\n\r\n $scope.cancelForm = function () {\r\n $scope.loginForm.submitted = false;\r\n }\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.loginForm.$valid) {\r\n $scope.submitLogin();\r\n $scope.loginForm.submitted = false;\r\n } else {\r\n $scope.loginForm.submitted = true;\r\n }\r\n };\r\n\r\n $scope.submitLogin = function () {\r\n $scope.closeAlert();\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n LoginFactory.authenticate($scope.user).success(function (data) {\r\n $rootScope.user.isAuthenticated = true;\r\n masterFactory.getUserLoginInfo();\r\n masterFactory.RefreshDbIcon();\r\n masterFactory.getModulesStatus();\r\n $state.go('home');\r\n }).error(function (data) {\r\n if (data)\r\n $scope.error = data.error_description;\r\n else {\r\n $scope.error = 'network error';\r\n }\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n // Helping functions and events\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n});","\r\nimport {default as app} from '@legacy/App';\r\n\r\napp.service('NotifyService', ['$rootScope', function ($rootScope) {\r\n\r\n var queue = [];\r\n\r\n return {\r\n queue: queue,\r\n add: function (item) {\r\n queue.push(item);\r\n setTimeout(function () {\r\n // remove the alert after 2000 ms\r\n $('.alerts .alert').eq(0).remove();\r\n queue.shift();\r\n }, 5000);\r\n },\r\n pop: function () {\r\n return this.queue.pop();\r\n }\r\n };\r\n}]);\r\n\r\napp.service('ModalNotifyService', ['$rootScope', function ($rootScope) {\r\n\r\n var queue = [];\r\n\r\n return {\r\n queue: queue,\r\n add: function (item) {\r\n queue.push(item);\r\n setTimeout(function () {\r\n // remove the alert after 2000 ms\r\n $('.modalAlert.alerts .alert').eq(0).remove();\r\n queue.shift();\r\n }, 5000);\r\n },\r\n pop: function () {\r\n return this.queue.pop();\r\n }\r\n };\r\n}]);","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('PaymentTermFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getPaymentTermList: function (companyId) {\r\n return $http.get(settings.ApiURL + settings.PaymentTermsURL + \"/paymentterms/\" + companyId);\r\n },\r\n getNewPaymentTerm: function () {\r\n return $http.get(settings.ApiURL + settings.PaymentTermsURL + \"/newpaymentterm\");\r\n },\r\n getPaymentTermDetails: function (companyId, paymentTermId) {\r\n return $http.get(settings.ApiURL + settings.PaymentTermsURL + '/' + companyId + '/' + paymentTermId);\r\n },\r\n getPaymentTermOptionList: function () {\r\n return $http.get(settings.ApiURL + settings.PaymentTermsURL + \"/paymenttermoption\");\r\n },\r\n getCompanyList: function() {\r\n return $http.get(settings.ApiURL + settings.CompanyURL + \"/dropdown/0\")\r\n },\r\n savePaymentTerm: function (paymentTerm, originalId) {\r\n return $http.put(settings.ApiURL + settings.PaymentTermsURL + '/' + originalId, paymentTerm);\r\n },\r\n deletePaymentTerm: function (companyId, paymentTermId) {\r\n return $http.delete(settings.ApiURL + settings.PaymentTermsURL + '/' + companyId + '/' + paymentTermId);\r\n } \r\n };\r\n}]);\r\n\r\napp.controller('PaymentTermController', ['$q', '$scope', 'PaymentTermFactory', '$rootScope', 'settings', 'masterFactory',\r\n function ($q, $scope, PaymentTermFactory, $rootScope, settings, masterFactory) {\r\n $rootScope.pageTitle = \"Payment Term\";\r\n $scope.paymentTerms = [];\r\n $scope.companies = [];\r\n $scope.paymentTerm = {};\r\n $scope.newpaymentTerm = {};\r\n $scope.paymentTermOptions = [];\r\n $scope.selectedCompany = -1;\r\n $scope.selectedPaymentTerm = -1;\r\n $scope.isNew = false;\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.pageSize = 20;\r\n\r\n // Initialization - this runs on load\r\n var init = function () {\r\n masterFactory.verifyAuthentication();\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n\r\n $q.all([\r\n PaymentTermFactory.getCompanyList().success(function (response) {\r\n $scope.companies = response;\r\n $scope.selectedCompany = $scope.companies[0].Id;\r\n if ($scope.selectedCompany != null && $scope.selectedCompany != undefined && $scope.selectedCompany > 0) {\r\n PaymentTermFactory.getPaymentTermList($scope.selectedCompany).success(function (data) {\r\n $scope.paymentTerms = data;\r\n $scope.refreshGrid(0, null);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n else {\r\n $scope.paymentTerms = [];\r\n } \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n PaymentTermFactory.getNewPaymentTerm().success(function (data) {\r\n $scope.newpaymentTerm = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n PaymentTermFactory.getPaymentTermOptionList().success(function (data) {\r\n $scope.paymentTermOptions = data;\r\n }).error(function (data,status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n\r\n };\r\n\r\n var getPaymentTermDetails = function (companyId, Id) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n PaymentTermFactory.getPaymentTermDetails(companyId, Id).success(function (data) {\r\n $scope.paymentTerm = data; \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n init();\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex, Key) { \r\n $('#gridPaymentTerm').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.paymentTerms,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n }, \r\n noDataText: \"No Payment Terms Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: grdReadyAction,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: $scope.pageSize,\r\n pageIndex: PageIndex\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'ID',\r\n dataField: 'Id',\r\n cssClass: 'Id',\r\n dataType: 'number',\r\n alignment: 'center',\r\n width: 100,\r\n cellTemplate: function (container, options) {\r\n $('').text(options.data.Id).appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Payment Term',\r\n dataField: 'Name',\r\n cssClass: 'Name',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('').text(options.data.Name).appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n getPaymentTermDetails($scope.selectedCompany, selectedRowsInfo.selectedRowsData[0].Id);\r\n $scope.originalId = selectedRowsInfo.selectedRowsData[0].Id;\r\n }\r\n else $scope.paymentTerm = angular.copy($scope.newpaymentTerm);\r\n\r\n $scope.error = \"\";\r\n $scope.isNew = false;\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Payment Terms\"; \r\n }\r\n\r\n });\r\n\r\n if (Key != null && Key > 0) {\r\n var dataGrid = $('#gridPaymentTerm').dxDataGrid('instance');\r\n (dataGrid as unknown as FacnmDx).selectRows([Key]);\r\n } \r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.addNewEntity = function () {\r\n $rootScope.pageTitle = \"New Payment Term\";\r\n $scope.originalId = -1;\r\n $scope.error = \"\";\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.isNew = true;\r\n $scope.paymentTerm = angular.copy($scope.newpaymentTerm);\r\n $scope.paymentTerm.CompanyId = $scope.selectedCompany;\r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n PaymentTermFactory.deletePaymentTerm($scope.paymentTerm.CompanyId, $scope.paymentTerm.Id).success(function (data) {\r\n PaymentTermFactory.getPaymentTermList($scope.selectedCompany).success(function (data) {\r\n var dataGrid = $('#gridPaymentTerm').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n dataGrid.clearSelection();\r\n $scope.paymentTerms = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex, null); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Payment Term successfully' });\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n }; \r\n\r\n $scope.cancelForm = function () { \r\n var dataGrid = $('#gridPaymentTerm').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false;\r\n $scope.paymentTermForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) { \r\n var dataGrid = $('#gridPaymentTerm').dxDataGrid('instance');\r\n var selectedRow = dataGrid.getSelectedRowsData()[0];\r\n if (type == 'update' && selectedRow != null) { // get db payment term and set to scope.payment term.\r\n getPaymentTermDetails($scope.selectedCompany, selectedRow.Id);\r\n $rootScope.pageTitle = \"Payment Terms\"; \r\n }\r\n else {\r\n $scope.paymentTerm = angular.copy($scope.newpaymentTerm);\r\n $scope.paymentTerm.CompanyId = $scope.selectedCompany; \r\n $rootScope.pageTitle = \"New Payment Term\";\r\n }\r\n $scope.paymentTermForm.$setPristine();\r\n $scope.paymentTermForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Payment Term details were reset' });\r\n };\r\n\r\n $scope.submitForm = function () {\r\n $scope.error = \"\";\r\n if ($scope.paymentTermForm.$valid) {\r\n $scope.savePaymentTerm();\r\n $scope.paymentTermForm.submitted = false;\r\n } else {\r\n $scope.paymentTermForm.submitted = true;\r\n }\r\n };\r\n\r\n $scope.savePaymentTerm = function () {\r\n var pageindex;\r\n $scope.closeModelStateErrors();\r\n if ($scope.originalId == undefined || $scope.originalId == null)\r\n $scope.originalId = $scope.paymentTerm.Id;\r\n PaymentTermFactory.savePaymentTerm($scope.paymentTerm, $scope.originalId).success(function (data) {\r\n if (!IsUndefinedOrNull(data)) {\r\n $scope.selectedPaymentTerm = data.Id; \r\n PaymentTermFactory.getPaymentTermList($scope.selectedCompany).success(function (data) { \r\n var dataGrid = $('#gridPaymentTerm').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n pageindex = dataGrid.pageIndex();\r\n $scope.paymentTerms = data;\r\n if ($scope.paymentTerm.Id > 0) {\r\n $scope.refreshGrid(pageindex, $scope.paymentTerm.Id)\r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex, null);\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n if ($scope.paymentTerm.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Payment Term successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Payment Term successfully' });\r\n }\r\n });\r\n } \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridPaymentTerm', settings.GridMarginHeight + 42);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridPaymentTerm', settings.GridMarginHeight + 42);\r\n };\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n\r\n $scope.filter = function (input, id) {\r\n var i = 0, len = input.length;\r\n for (; i < len; i++) {\r\n if (+input[i].Id == +id) {\r\n return input[i];\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n $scope.onCompanyChange = function () {\r\n if ($scope.selectedCompany != null && $scope.selectedCompany != undefined && $scope.selectedCompany > 0) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n PaymentTermFactory.getPaymentTermList($scope.selectedCompany).success(function (response) {\r\n $scope.paymentTerms = response;\r\n $scope.paymentTerm = {};\r\n $scope.isFormVisible = false;\r\n $scope.refreshGrid();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n $scope.paymentTerms = [];\r\n }\r\n };\r\n}]);","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('PriceGroupFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getNewPriceGroup: function () {\r\n return $http.get(settings.ApiURL + settings.PriceGroupURL + \"/products/newpricegroup\");\r\n },\r\n getPriceGroupList: function () {\r\n return $http.get(settings.ApiURL + settings.PriceGroupURL + '/products');\r\n },\r\n getProducts: function () {\r\n return $http.get(settings.ApiURL + settings.ProductURL + '/dropdown/1');\r\n },\r\n getProductDetails: function (id) {\r\n return $http.get(settings.ApiURL + settings.ProductURL + '/' + id);\r\n },\r\n getSystemPreferences: function () {\r\n return $http.get(settings.ApiURL + settings.ConfigurationURL + '/systempreferences');\r\n }, \r\n getPriceGroupById: function (id) {\r\n return $http.get(settings.ApiURL + settings.PriceGroupURL + '/products/' + id);\r\n },\r\n savePriceGroup: function (priceGroup) {\r\n return $http.put(settings.ApiURL + settings.PriceGroupURL + '/products', priceGroup);\r\n },\r\n deletePriceGroup: function (id) {\r\n return $http.delete(settings.ApiURL + settings.PriceGroupURL + '/products/' + id);\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('PriceGroupController', function ($q, $scope, PriceGroupFactory, $rootScope, settings, masterFactory, $filter) {\r\n $rootScope.pageTitle = \"Price Group\"; \r\n $scope.priceGroups = [];\r\n $scope.priceGroup = {};\r\n $scope.newpriceGroup = {};\r\n $scope.products = [];\r\n $scope.moneySign = '';\r\n $scope.selectedPriceGroup = -1\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.pageSize = 20;\r\n\r\n // Initialization - this runs on load\r\n var init = function () {\r\n masterFactory.verifyAuthentication();\r\n \r\n\r\n $q.all([\r\n PriceGroupFactory.getSystemPreferences().success(function (data) {\r\n $scope.moneySign = data.CurrencyString;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n $('#loadingModal').modal({ backdrop: 'static' }),\r\n PriceGroupFactory.getPriceGroupList().success(function (data) {\r\n $scope.priceGroups = data;\r\n PriceGroupFactory.getProducts().success(function (data) {\r\n $scope.products = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n $scope.refreshGrid(0);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n }),\r\n PriceGroupFactory.getNewPriceGroup().success(function (data) {\r\n $scope.newpriceGroup = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n });\r\n\r\n \r\n \r\n };\r\n\r\n init();\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex) {\r\n $('#gridPriceGroup').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.priceGroups,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n noDataText: \"No Price Groups Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: grdReadyAction,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: $scope.pageSize,\r\n pageIndex: PageIndex\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'Price Group ID',\r\n dataField: 'Id',\r\n cssClass: 'Id',\r\n dataType: 'number',\r\n alignment: 'center'\r\n },\r\n {\r\n caption: 'Products in the Group',\r\n dataField: 'NumberOfProducts',\r\n cssClass: 'NumberOfProducts',\r\n dataType: 'number',\r\n alignment: 'center'\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n PriceGroupFactory.getPriceGroupById(selectedRowsInfo.selectedRowsData[0].Id).success(function (data) {\r\n $scope.priceGroup = data;\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Price Groups\";\r\n $scope.refreshPriceGroupProducts();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n }\r\n\r\n });\r\n };\r\n\r\n $scope.refreshPriceGroupProducts = function () {\r\n\r\n $('#gridPriceGroupProducts').dxDataGrid({\r\n dataSource: $scope.priceGroup.Products,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n height: 470,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: 30\r\n },\r\n editing: {\r\n editEnabled: false,\r\n insertEnabled: true,\r\n removeEnabled: true\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: false\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'Product',\r\n dataField: 'ProductId', \r\n validationRules: [{ type: 'required' }],\r\n alignment: 'center',\r\n width: '40%',\r\n lookup: {\r\n dataSource: $scope.products,\r\n displayExpr: 'ProductName', \r\n valueExpr: 'Id'\r\n } \r\n },\r\n {\r\n caption: 'Quantity',\r\n dataField: 'MinimumQty',\r\n dataType: 'number',\r\n validationRules: [{ type: 'required' }],\r\n width: '15%',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n var text = '> ' + (IsUndefinedOrNull(options.data.MinimumQty) ? '' : options.data.MinimumQty) + ' '\r\n + (IsUndefinedOrNull(options.data.QuantityUnit) ? '' : options.data.QuantityUnit);\r\n $('').text(text).appendTo(container);\r\n }\r\n },\r\n {\r\n caption: 'Price',\r\n dataField: 'Price',\r\n dataType: 'number',\r\n validationRules: [{ type: 'required' }],\r\n width: '15%',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n var text = options.data.Price + ' '\r\n + (IsUndefinedOrNull($scope.moneySign) ? '' : $scope.moneySign) + '/'\r\n + ((IsUndefinedOrNull(options.data.PricePer) || (options.data.PricePer == 1)) ? '' : options.data.PricePer) + ' '\r\n + (IsUndefinedOrNull(options.data.QuantityUnit) ? '' : options.data.QuantityUnit);\r\n\r\n $('').text(text).appendTo(container);\r\n },\r\n },\r\n {\r\n caption: 'From',\r\n dataField: 'FromDate', \r\n dataType: 'date',\r\n format: 'dd/MM/yyyy',\r\n width: '15%',\r\n alignment: 'center'\r\n },\r\n {\r\n caption: 'Until',\r\n dataField: 'ToDate', \r\n dataType: 'date',\r\n format: 'dd/MM/yyyy',\r\n width: '15%',\r\n alignment: 'center'\r\n }\r\n ],\r\n rowInserted: function (rowInfo) {\r\n var obj = rowInfo;\r\n PriceGroupFactory.getProductDetails(rowInfo.data.ProductId).success(function (data) { \r\n var filteredProducts = $filter('filter')($scope.priceGroup.Products, { ProductId: data.Id });\r\n for (var i = 0; i < filteredProducts.length; i++) {\r\n if (filteredProducts[i].ProductId == data.Id && IsUndefinedOrNull(filteredProducts[i].QuantityUnit)) { \r\n filteredProducts[i].QuantityUnit = data.QuantityUnit;\r\n }\r\n if (filteredProducts[i].ProductId == data.Id && IsUndefinedOrNull(filteredProducts[i].PricePer)) {\r\n filteredProducts[i].PricePer = data.PricePer;\r\n }\r\n }\r\n $scope.refreshPriceGroupProducts(); \r\n \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }) \r\n }\r\n }).dxDataGrid('instance');\r\n\r\n var grd = document.getElementById(\"gridPriceGroupProducts\");\r\n if (grd.getElementsByClassName(\"dx-datagrid-header-panel\")[0].childNodes.length == 1)\r\n $(' Price Group Products ').appendTo(grd.getElementsByClassName(\"dx-datagrid-header-panel\")[0]);\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.addNewEntity = function () {\r\n $rootScope.pageTitle = \"New Price Group\"; \r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.priceGroup = angular.copy($scope.newpriceGroup);\r\n $scope.refreshPriceGroupProducts();\r\n $scope.refreshPriceGroupProducts();\r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n PriceGroupFactory.deletePriceGroup($scope.priceGroup.Id).success(function (data) {\r\n PriceGroupFactory.getPriceGroupList($rootScope.accessToken).success(function (data) {\r\n var dataGrid = $('#gridPriceGroup').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.priceGroups = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Price Group successfully' });\r\n }); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridPriceGroup').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.priceGroup = {};\r\n $scope.priceGroup.Products = []; \r\n $scope.isFormVisible = false; \r\n $scope.priceGroupForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db bankaccount and set to scope.bankaccount.\r\n PriceGroupFactory.getPriceGroupById($scope.priceGroup.Id).success(function (data) {\r\n $scope.priceGroup = data;\r\n $scope.refreshPriceGroupProducts();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n else {\r\n angular.copy($scope.newpriceGroup, $scope.priceGroup);\r\n $scope.refreshPriceGroupProducts();\r\n }\r\n $scope.priceGroupForm.$setPristine();\r\n $scope.priceGroupForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Price Group details were reset' }); \r\n };\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.priceGroupForm.$valid) {\r\n $scope.savePriceGroup();\r\n $scope.priceGroupForm.submitted = false;\r\n } else {\r\n $scope.priceGroupForm.submitted = true;\r\n }\r\n };\r\n\r\n $scope.savePriceGroup = function () {\r\n if (IsUndefinedOrNull($scope.priceGroup.Id) || $scope.priceGroup.Id <= 0) {\r\n $scope.priceGroup.Id = -1;\r\n }\r\n if ($scope.priceGroup.Products.length > 0) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n PriceGroupFactory.savePriceGroup($scope.priceGroup).success(function (data) {\r\n PriceGroupFactory.getPriceGroupList($rootScope.accessToken).success(function (data) {\r\n var dataGrid = $('#gridPriceGroup').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.priceGroups = data;\r\n if ($scope.priceGroup.Id > 0) {\r\n $scope.refreshGrid(pageIndex)\r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex);\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n if ($scope.priceGroup.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Price Group successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Price Group successfully' });\r\n } \r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n $scope.error = 'Add minimum one Product!';\r\n }\r\n }\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridPriceGroup', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridPriceGroup', settings.GridMarginHeight);\r\n };\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.filter = function (input, id) {\r\n var i = 0, len = input.length;\r\n for (; i < len; i++) {\r\n if (+input[i].Id == +id) {\r\n return input[i];\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n\r\n //var quantityUnitExits = function (quantityUnit) {\r\n // var flag = false;\r\n // $scope.factorQuantityUnits.forEach(function (qUnit) {\r\n // if (qUnit.name == quantityUnit) {\r\n // flag = true;\r\n // }\r\n // });\r\n // return flag;\r\n //};\r\n\r\n});","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('ProductFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getNewProduct: function () {\r\n return $http.get(settings.ApiURL + settings.ProductURL + \"/newproduct\");\r\n },\r\n getProductDetails: function (id) {\r\n return $http.get(settings.ApiURL + settings.ProductURL + \"/\" + id);\r\n },\r\n saveProduct: function (product) {\r\n return $http.put(settings.ApiURL + settings.ProductURL, product);\r\n },\r\n saveProductType: function (productType) {\r\n return $http.put(settings.ApiURL + settings.ProductURL + \"/producttypes\", productType);\r\n },\r\n deleteProduct: function (id) {\r\n return $http.delete(settings.ApiURL + settings.ProductURL + \"/\" + id);\r\n },\r\n getFilteredProductList: function (filterOptions) {\r\n return $http.put(settings.ApiURL + settings.ProductURL + \"/filter\", filterOptions);\r\n },\r\n getProductCategoryList: function () {\r\n return $http.get(settings.ApiURL + settings.ProductCategoriesURL);\r\n },\r\n saveProductCategory: function (productCategories) {\r\n return $http.put(settings.ApiURL + settings.ProductCategoriesURL, productCategories);\r\n },\r\n deleteProductCategory: function (id) {\r\n return $http.delete(settings.ApiURL + settings.ProductCategoriesURL + \"/\" + id);\r\n },\r\n isProductCategoryDeletable: function (id) {\r\n return $http.get(settings.ApiURL + settings.ProductCategoriesURL + \"/deletable/\" + id);\r\n },\r\n getProductCategoryShapes: function () {\r\n return $http.get(settings.ApiURL + settings.ProductCategoriesURL + \"/shapes\");\r\n },\r\n getProductDropdown: function () {\r\n return $http.get(settings.ApiURL + settings.ProductURL + \"/dropdown/1\");\r\n },\r\n getSalesTaxDropdown: function () {\r\n return $http.get(settings.ApiURL + settings.ProductURL + \"/salestax/dropdown\");\r\n },\r\n getQuantityUnitDropdown: function () {\r\n return $http.get(settings.ApiURL + settings.ProductURL + \"/quantityunit/dropdown\");\r\n },\r\n getPriceChangeableDropdown: function () {\r\n return $http.get(settings.ApiURL + settings.ProductURL + \"/pricechangeable/dropdown\");\r\n },\r\n getProductTypeDropdown: function () {\r\n return $http.get(settings.ApiURL + settings.ProductURL + \"/producttype/dropdown\");\r\n },\r\n getDangerousGoodsDropdown: function () {\r\n return $http.get(settings.ApiURL + settings.ProductURL + \"/dangerousgoods/dropdown\");\r\n },\r\n saveNewUnit: function (newUnit) {\r\n return $http.put(settings.ApiURL + settings.ProductURL + \"/quantityunit/dropdown\", newUnit);\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('ProductController', ['$q', '$scope', 'ProductFactory', 'CompanyFactory', '$uibModal', '$rootScope', 'settings', \"masterFactory\",\r\n function ($q, $scope, ProductFactory, CompanyFactory, $uibModal, $rootScope, settings, masterFactory) {\r\n $rootScope.pageTitle = \"Product\";\r\n $scope.companyDropdown = [];\r\n $scope.nonPrintCompanies = [];\r\n $scope.dangerousgoodsDropdown = [];\r\n $scope.productList = [];\r\n $scope.productDropdown = [];\r\n $scope.producttypeDropdown = [];\r\n $scope.salestaxDropdown = [];\r\n $scope.submitted = false;\r\n $scope.quantityunitDropdown = [];\r\n $scope.pricechangeableDropdown = [];\r\n $scope.product = {};\r\n $scope.newproduct = {};\r\n $scope.ProductCategories = [];\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.PageSize = 20;\r\n $scope.TotalCount = null;\r\n $scope.filterOptions = {\r\n ProductNumber: null, ProductName: null, ProductGroup: null,\r\n GridPagerOptions: { PageIndex: 0, PageSize: 20, TotalPages: null }\r\n };\r\n\r\n var getProductDetails = function (id) {\r\n ProductFactory.getProductDetails(id).success(function (data) {\r\n $scope.product = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n var productGridDataSource = {\r\n store: new DevExpress.data.CustomStore({\r\n // DataSource Configuration\r\n key: [\"Id\"],\r\n pageSize: $scope.PageSize,\r\n // Data Access Logic\r\n load: function (loadOptions) {\r\n var d = $.Deferred();\r\n var params = {};\r\n\r\n if (loadOptions != undefined) {\r\n $scope.filterOptions.ProductNumber = null;\r\n $scope.filterOptions.ProductName = null;\r\n $scope.filterOptions.ProductGroup = null;\r\n if (loadOptions.filter != undefined) { // accessing grid filter values \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\") $scope.filterOptions.ProductNumber = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"ShortProductName\") $scope.filterOptions.ProductName = loadOptions.filter[i][2];\r\n else if (loadOptions.filter[i][0] == \"ProductCategoryId\") $scope.filterOptions.ProductGroup = loadOptions.filter[i][2];\r\n }\r\n }\r\n }\r\n $scope.filterOptions.GridPagerOptions.PageSize = (IsUndefinedOrNull(loadOptions.take) == true) ? $scope.PageSize : loadOptions.take;\r\n $scope.filterOptions.GridPagerOptions.PageIndex = ((IsUndefinedOrNull(loadOptions.take) && IsUndefinedOrNull(loadOptions.skip)) == true) ? 0 : (loadOptions.skip / loadOptions.take);\r\n }\r\n ProductFactory.getFilteredProductList($scope.filterOptions).success(function (data) {\r\n d.resolve(data.ProductListVM, { totalCount: data.TotalCount });\r\n $scope.TotalCount = data.TotalCount;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n });\r\n return d.promise();\r\n },\r\n byKey: function (key, extra) {\r\n },\r\n update: function (values) {\r\n }\r\n })\r\n };\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex) {\r\n $('#gridProduct').dxDataGrid({\r\n columns: [\r\n { caption: 'Product Number', dataField: 'ProductNumber', cssClass: 'ProductNumber', dataType: 'string', alignment: 'center', width: 150 },\r\n {\r\n caption: 'Product Name', dataField: 'ShortProductName', cssClass: 'ShortProductName', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.ShortProductName)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Product Category', dataField: 'ProductCategoryId', cssClass: 'ProductCategoryId', dataType: 'number', alignment: 'center',\r\n lookup: {\r\n dataSource: $scope.ProductCategories,\r\n displayExpr: 'Name',\r\n valueExpr: 'Id'\r\n }\r\n }\r\n ],\r\n contentReadyAction: grdReadyAction,\r\n dataSource: productGridDataSource,\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n noDataText: \"No Products Found\",\r\n paging: { pageSize: $scope.PageSize, pageIndex: PageIndex },\r\n pager: { visible: true, allowedPageSizes: [10, 20, 30], showPageSizeSelector: true },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'single' },\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n getProductDetails(selectedRowsInfo.selectedRowsData[0].Id);\r\n }\r\n else {\r\n $scope.product = angular.copy($scope.newproduct);\r\n }\r\n\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Product\";\r\n $scope.newUnit = \"\";\r\n $scope.isNewUnit = false;\r\n },\r\n scrolling: { mode: 'standard' },\r\n showBorders: true,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n sorting: { mode: 'none' }\r\n });\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.addNewProduct = function () {\r\n $rootScope.pageTitle = \"New Product\";\r\n $scope.newUnit = \"\";\r\n $scope.isNewUnit = false;\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.product = angular.copy($scope.newproduct);\r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n ProductFactory.deleteProduct($scope.product.Id).success(function (data) {\r\n var dataGrid = $('#gridProduct').dxDataGrid('instance');\r\n dataGrid.refresh();\r\n $scope.cancelForm();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Product successfully' });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridProduct').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false;\r\n $scope.productForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db bankaccount and set to scope.bankaccount.\r\n getProductDetails($scope.product.Id);\r\n }\r\n else {\r\n angular.copy($scope.newproduct, $scope.product);\r\n }\r\n\r\n $scope.newUnit = \"\";\r\n $scope.isNewUnit = false;\r\n $scope.productForm.$setPristine();\r\n $scope.productForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Product details were reset' });\r\n };\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.productForm.$valid) {\r\n $scope.saveProduct();\r\n $scope.productForm.submitted = false;\r\n } else {\r\n $scope.productForm.submitted = true;\r\n }\r\n };\r\n\r\n $scope.saveProduct = function () {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $scope.closeModelStateErrors();\r\n ProductFactory.saveProduct($scope.product).success(function (data) {\r\n var dataGrid = $('#gridProduct').dxDataGrid('instance');\r\n //$scope.pageSize = dataGrid.pageSize();\r\n var pageindex = dataGrid.pageIndex();\r\n var keys = dataGrid.getSelectedRowKeys();\r\n if ($scope.product.Id <= 0) {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex, null);\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Product successfully' });\r\n }\r\n else {\r\n $scope.refreshGrid(pageindex, keys);\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Product successfully' });\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n // Adding and saving new Quantity Unit\r\n $scope.addNewUnit = function () {\r\n $scope.isNewUnit = true;\r\n $scope.newUnit = \"\";\r\n masterFactory.setFocus('focusNewUnit');\r\n };\r\n\r\n $scope.saveNewUnit = function () {\r\n if ($scope.newUnit != \"\") {\r\n var flag = false;\r\n for (var i = 0; i < $scope.quantityunitDropdown.length; i++) {\r\n if ($scope.quantityunitDropdown[i].toLowerCase() == $scope.newUnit.toLowerCase()) {\r\n flag = true;\r\n $scope.newUnit = $scope.quantityunitDropdown[i];\r\n }\r\n }\r\n if (!flag) $scope.quantityunitDropdown.push($scope.newUnit);\r\n $scope.product.QuantityUnit = $scope.newUnit;\r\n $scope.isNewUnit = false;\r\n }\r\n else {\r\n masterFactory.setFocus('focusNewUnit');\r\n }\r\n };\r\n\r\n $scope.cancelNewUnit = function () {\r\n $scope.newUnit = \"\";\r\n $scope.isNewUnit = false;\r\n };\r\n\r\n // New Product type button click function\r\n\r\n $('#productTypeModal').on('hidden.bs.modal', function () {\r\n $scope.productType = {};\r\n $scope.modelError = '';\r\n });\r\n\r\n $scope.addnewProductType = function () {\r\n $('#productTypeModal').modal({ backdrop: 'static' });\r\n ProductFactory.saveProductType($scope.productType).success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Added new Product Type' });\r\n ProductFactory.getProductTypeDropdown().success(function (data) {\r\n $scope.producttypeDropdown = data;\r\n $('#productTypeModal').modal('hide');\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, 'Error loading Product Types: ' + data, $scope);\r\n });\r\n }).error(function (data) {\r\n $scope.modelError = data;\r\n }).finally(function () {\r\n\r\n });\r\n };\r\n\r\n $scope.closeProductType = function () {\r\n $scope.productType = null;\r\n $scope.modelError = '';\r\n $('#productTypeModal').modal('hide');\r\n };\r\n\r\n\r\n $scope.viewProductCategoriesModal = function () {\r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'app-legacy/Entities/templates/productCategoriesModal.html',\r\n controller: 'ProductCategoriesModalController',\r\n controllerAs: 'modalVm',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n\r\n modalInstance.result.then(function (message) {\r\n if (message == 'ok') {\r\n ProductFactory.getProductCategoryList().success(function (data) {\r\n $scope.ProductCategories = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Saved Product Categories successfully' });\r\n }\r\n\r\n }, function () {\r\n\r\n });\r\n };\r\n\r\n\r\n $scope.closeModelAlert = function () {\r\n $scope.modelError = '';\r\n };\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridProduct', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridProduct', settings.GridMarginHeight);\r\n }\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.filter = function (input, id) {\r\n var i = 0, len = input.length;\r\n for (; i < len; i++) {\r\n if (+input[i].Id == +id) {\r\n return input[i];\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n $scope.setProductWeightDefaultValue = function (IsEmptyArticle) {\r\n if (IsEmptyArticle == true && $scope.product.ProductWeight != 0)\r\n $scope.product.ProductWeight = 0;\r\n };\r\n\r\n // Initialization - this runs on load\r\n var init = function () {\r\n masterFactory.verifyAuthentication();\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n ProductFactory.getProductCategoryList().success(function (data) {\r\n $scope.ProductCategories = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CompanyFactory.getCompanyDropDown(1).success(function (data) {\r\n $scope.companyDropdown = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CompanyFactory.getNonPrintCompanyList(1).success(function (data) {\r\n $scope.nonPrintCompanies = data;\r\n }).error(function (data) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n ProductFactory.getProductDropdown().success(function (data) {\r\n $scope.productDropdown = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n ProductFactory.getSalesTaxDropdown().success(function (data) {\r\n $scope.salestaxDropdown = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n ProductFactory.getQuantityUnitDropdown().success(function (data) {\r\n $scope.quantityunitDropdown = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n ProductFactory.getPriceChangeableDropdown().success(function (data) {\r\n $scope.pricechangeableDropdown = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n ProductFactory.getProductTypeDropdown().success(function (data) {\r\n $scope.producttypeDropdown = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n ProductFactory.getDangerousGoodsDropdown().success(function (data) {\r\n $scope.dangerousgoodsDropdown = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n ProductFactory.getNewProduct().success(function (data) {\r\n $scope.newproduct = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n $scope.refreshGrid(0, null);\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n init();\r\n\r\n }]);\r\n\r\napp.controller('ProductCategoriesModalController', ['$scope', '$q', 'ProductFactory', '$uibModalInstance', '$uibModal', 'masterFactory',\r\n function ($scope, $q, ProductFactory, $uibModalInstance, $uibModal, masterFactory) {\r\n var modalVm = this;\r\n\r\n init();\r\n\r\n modalVm.addNewProductCategory = function () {\r\n\r\n var newidcount = -1;\r\n for (var i = 0; i <= modalVm.ProductCategoryList.length - 1; i++) {\r\n if (modalVm.ProductCategoryList[i].Id <= 0) newidcount--;\r\n }\r\n modalVm.NewProductCategory = { Id: newidcount, Name: '', Shape: 0, SetupTime: 0, PumpTime: 0 };\r\n modalVm.ProductCategoryList.push(modalVm.NewProductCategory);\r\n };\r\n\r\n modalVm.saveProductCategory = function () {\r\n\r\n if ($scope.productCategoriesForm.$valid) {\r\n $scope.productCategoriesForm.$submitted = false;\r\n ProductFactory.saveProductCategory(modalVm.ProductCategoryList).success(function (data) {\r\n\r\n $uibModalInstance.close('ok');\r\n\r\n ProductFactory.getProductCategoryList().success(function (data) {\r\n $scope.ProductCategories = data;\r\n\r\n var dataGrid = $('#gridProduct').dxDataGrid('instance');\r\n $scope.refreshGrid(dataGrid.pageIndex(), null);\r\n });\r\n \r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n });\r\n }\r\n };\r\n\r\n\r\n modalVm.deleteProductCategory = function (item, index) {\r\n\r\n if (item.Id < 0) {\r\n modalVm.ProductCategoryList.splice(index, 1);\r\n }\r\n else {\r\n ProductFactory.isProductCategoryDeletable(item.Id).success(function (data) {\r\n if (data == true) {\r\n ProductFactory.deleteProductCategory(item.Id).success(function (data) {\r\n modalVm.ProductCategoryList.splice(index, 1);\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n });\r\n }\r\n else {\r\n modalVm.ProductCategoryToDelete = { item: item, index: index };\r\n modalVm.OpenDialog_ConfirmDeleteProductCategory();\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n });\r\n }\r\n };\r\n\r\n\r\n modalVm.OpenDialog_ConfirmDeleteProductCategory = function () {\r\n\r\n var dialog_confirmDeleteProductCategory = $uibModal.open({\r\n templateUrl: 'app-legacy/Entities/templates/productCategories_DeleteConfirmationModal.html',\r\n controller: 'ProductCategory_DeleteConfirmationController',\r\n controllerAs: 'modalVm',\r\n size: 'md'\r\n });\r\n\r\n dialog_confirmDeleteProductCategory.result.then(function (confirmDeleteProductCategory) {\r\n if (confirmDeleteProductCategory) {\r\n\r\n ProductFactory.deleteProductCategory(modalVm.ProductCategoryToDelete.item.Id).success(function (data) {\r\n modalVm.ProductCategoryList.splice(modalVm.ProductCategoryToDelete.index, 1);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n });\r\n }\r\n });\r\n };\r\n\r\n\r\n modalVm.selectProductCategory = function (index) {\r\n modalVm.selectedProductCategoryId = index;\r\n modalVm.currentProductCategory = modalVm.ProductCategoryList[index];\r\n };\r\n\r\n modalVm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n \r\n ProductFactory.getProductCategoryList().success(function (data) {\r\n $scope.ProductCategories = data;\r\n var dataGrid = $('#gridProduct').dxDataGrid('instance');\r\n $scope.refreshGrid(dataGrid.pageIndex(), null);\r\n });\r\n };\r\n\r\n modalVm.closeAlert = function () {\r\n modalVm.error = \"\";\r\n };\r\n\r\n modalVm.closeModelStateErrors = function () {\r\n modalVm.modelState = [];\r\n };\r\n\r\n function init() {\r\n\r\n modalVm.error = \"\";\r\n modalVm.modelState = [];\r\n modalVm.ProductCategoryList = [];\r\n modalVm.ProductCategoryToDelete = { item: null, index: null };\r\n\r\n $q.all([\r\n\r\n ProductFactory.getProductCategoryList().success(function (data) {\r\n modalVm.ProductCategoryList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n }),\r\n\r\n ProductFactory.getProductCategoryShapes().success(function (data) {\r\n modalVm.ProductCategoryShapes = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n })\r\n\r\n ]).then(function () {\r\n\r\n modalVm.selectProductCategory(0);\r\n });\r\n };\r\n }]);\r\n\r\n\r\napp.controller('ProductCategory_DeleteConfirmationController', ['$scope', '$uibModalInstance', '$uibModal',\r\n function ($scope, $uibModalInstance, $uibModal) {\r\n var modalVm = this;\r\n\r\n modalVm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n modalVm.confirmDeleteProductCategory = function () {\r\n $uibModalInstance.close(true);\r\n };\r\n }]);\r\n","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('ProductGroupFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getProductGroupList: function () {\r\n return $http.get(settings.ApiURL + settings.ProductGroupURL);\r\n },\r\n getProductGroupByID: function (id) {\r\n return $http.get(settings.ApiURL + settings.ProductGroupURL + \"/\" + id);\r\n },\r\n saveProductGroup: function (productGroup) {\r\n return $http.put(settings.ApiURL + settings.ProductGroupURL, productGroup);\r\n },\r\n deleteProductGroup: function (id) {\r\n return $http.delete(settings.ApiURL + settings.ProductGroupURL + \"/\" + id);\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('ProductGroupController', ['$q', '$scope', 'ProductGroupFactory', '$rootScope', 'settings', 'masterFactory','$uibModal',\r\n function ($q, $scope, ProductGroupFactory, $rootScope, settings, masterFactory, $uibModal) {\r\n $rootScope.pageTitle = \"Product Group\"; \r\n $scope.productGroupList = [];\r\n $scope.productGroup = {};\r\n $scope.newproductGroup = {}; \r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.isNewProductGroup = false;\r\n $scope.isAssignedProductSelected = false;\r\n $scope.isUnassignedProductSelected = false;\r\n $scope.isAssignedDataAreaSelected = false;\r\n $scope.isUnassignedDataAreaSelected = false;\r\n $scope.isProductsGridCollapsed = false;\r\n $scope.isDataAreasGridCollapsed = false;\r\n $scope.pageSize = 20;\r\n\r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication();\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n ProductGroupFactory.getProductGroupList().success(function (data) {\r\n $scope.productGroupList = data;\r\n $scope.refreshGrid(pageIndex, null);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n })\r\n ]).then(function () {\r\n \r\n });\r\n }; \r\n\r\n init(0);\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex, Key) { \r\n $('#gridProductGroup').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.productGroupList,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n columns: [\r\n { caption: 'Product Group No', dataField: 'Number', cssClass: 'Number', dataType: 'string', alignment: 'center', width: 150 },\r\n {\r\n caption: 'Product Group Name', dataField: 'Name', cssClass: 'Name', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Name)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n contentReadyAction: grdReadyAction,\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false, },\r\n noDataText: \"No Product Group Found\",\r\n pager: { showPageSizeSelector: true, allowedPageSizes: [10, 20, 30] },\r\n paging: { pageSize: $scope.pageSize, pageIndex: PageIndex },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'single' },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ProductGroupFactory.getProductGroupByID(selectedRowsInfo.selectedRowsData[0].Id).success(function (data) {\r\n $scope.productGroup = data;\r\n $scope.refreshAssignedProductsGrid();\r\n $scope.refreshUnAssignedProductsGrid();\r\n $scope.refreshAssignedDataAreasGrid();\r\n $scope.refreshUnAssignedDataAreasGrid();\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n $scope.isNewProductGroup = false;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Product Groups\";\r\n // code to display dialog saying related products are being added to the existing products\r\n if ($scope.productGroup.RelatedProducts != null && $scope.productGroup.RelatedProducts.length > 0) {\r\n $scope.viewRelatedProductModal();\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (Key != null && Key > 0) {\r\n var dataGrid = $('#gridProductGroup').dxDataGrid('instance');\r\n (dataGrid as unknown as FacnmDx).selectRows([Key]);\r\n }\r\n };\r\n\r\n $scope.refreshAssignedProductsGrid = function () {\r\n $scope.isAssignedProductSelected = false;\r\n\r\n $('#gridAssignedProducts').dxDataGrid({\r\n dataSource: $scope.productGroup.AssignedProducts,\r\n columns: [\r\n { caption: 'Product Number', dataField: 'ProductNumber', cssClass: 'ProductNumber', dataType: 'string', alignment: 'center' },\r\n { caption: 'Product Name', dataField: 'ShortProductName', cssClass: 'ShortProductName', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.ShortProductName)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n contentReadyAction: resetSelectionColumn,\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false, },\r\n height: 470,\r\n paging: { pageSize: 10 },\r\n pager: { showPageSizeSelector: false },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'multiple' },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n $scope.isAssignedProductSelected = true;\r\n }\r\n else {\r\n $scope.isAssignedProductSelected = false;\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshUnAssignedProductsGrid = function () {\r\n $scope.isUnassignedProductSelected = false; \r\n\r\n $('#gridUnAssignedProducts').dxDataGrid({\r\n dataSource: $scope.productGroup.UnassignedProducts,\r\n columns: [\r\n { caption: 'Product Number', dataField: 'ProductNumber', cssClass: 'ProductNumber', dataType: 'string', alignment: 'center' },\r\n {\r\n caption: 'Product Name', dataField: 'ShortProductName', cssClass: 'ShortProductName', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.ShortProductName)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n contentReadyAction: resetSelectionColumn,\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n height: 470,\r\n paging: { pageSize: 10 },\r\n pager: { showPageSizeSelector: false },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'multiple' },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n $scope.isUnassignedProductSelected = true;\r\n }\r\n else {\r\n $scope.isUnassignedProductSelected = false;\r\n } \r\n }\r\n });\r\n };\r\n\r\n $scope.refreshAssignedDataAreasGrid = function () {\r\n $scope.isAssignedDataAreaSelected = false;\r\n\r\n $('#gridAssignedDataAreas').dxDataGrid({\r\n dataSource: $scope.productGroup.AssignedDataAreas,\r\n columns: [\r\n { caption: 'Data Area No', dataField: 'Number', cssClass: 'Number', dataType: 'string', alignment: 'center' },\r\n {\r\n caption: 'Data Area Name', dataField: 'Name', cssClass: 'Name', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Name)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n contentReadyAction: resetSelectionColumn,\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n height: 470,\r\n paging: { pageSize: 10 },\r\n pager: { showPageSizeSelector: false },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'multiple' },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n $scope.isAssignedDataAreaSelected = true;\r\n }\r\n else {\r\n $scope.isAssignedDataAreaSelected = false;\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshUnAssignedDataAreasGrid = function () {\r\n $scope.isUnassignedDataAreaSelected = false; \r\n\r\n $('#gridUnAssignedDataAreas').dxDataGrid({\r\n dataSource: $scope.productGroup.UnassignedDataAreas,\r\n columns: [\r\n { caption: 'Data Area No', dataField: 'Number', cssClass: 'Number', dataType: 'string', alignment: 'center' },\r\n {\r\n caption: 'Data Area Name', dataField: 'Name', cssClass: 'Name', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Name)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n contentReadyAction: resetSelectionColumn,\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n height: 470,\r\n paging: { pageSize: 10 },\r\n pager: { showPageSizeSelector: false },\r\n rowAlternationEnabled: false,\r\n selection: { mode: 'multiple' },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData.length > 0) {\r\n $scope.isUnassignedDataAreaSelected = true;\r\n }\r\n else {\r\n $scope.isUnassignedDataAreaSelected = false;\r\n }\r\n }\r\n });\r\n };\r\n\r\n //Button click functions\r\n $scope.addNewProductGroup = function () {\r\n $rootScope.pageTitle = \"New Product Group\";\r\n ProductGroupFactory.getProductGroupByID(0).success(function (data) {\r\n $scope.productGroup = data;\r\n $scope.refreshAssignedProductsGrid();\r\n $scope.refreshUnAssignedProductsGrid();\r\n $scope.refreshAssignedDataAreasGrid();\r\n $scope.refreshUnAssignedDataAreasGrid();\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.isNewProductGroup = true;\r\n ToggleGreenToYellow();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n ProductGroupFactory.deleteProductGroup($scope.productGroup.Id).success(function (data) {\r\n ProductGroupFactory.getProductGroupList().success(function (data) {\r\n var dataGrid = $('#gridProductGroup').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.productGroupList = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex, null);\r\n }).error(function () {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Product Group successfully' });\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridProductGroup').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false;\r\n $scope.productGroupForm.$submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) { \r\n if (type == 'update') { // get db bankaccount and set to scope.bankaccount.\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ProductGroupFactory.getProductGroupByID($scope.productGroup.Id).success(function (data) {\r\n $scope.productGroup = data;\r\n $scope.refreshAssignedProductsGrid();\r\n $scope.refreshUnAssignedProductsGrid();\r\n $scope.refreshAssignedDataAreasGrid();\r\n $scope.refreshUnAssignedDataAreasGrid();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n angular.copy($scope.newproductGroup, $scope.productGroup);\r\n $scope.refreshAssignedProductsGrid();\r\n $scope.refreshUnAssignedProductsGrid();\r\n $scope.refreshAssignedDataAreasGrid();\r\n $scope.refreshUnAssignedDataAreasGrid();\r\n }\r\n \r\n $scope.productGroupForm.$setPristine();\r\n $scope.productGroupForm.$submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Product Group details were reset' });\r\n };\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.productGroupForm.$valid) {\r\n $scope.saveProductGroup();\r\n } \r\n };\r\n\r\n $scope.saveProductGroup = function () {\r\n var pageindex, id;\r\n $scope.closeModelStateErrors();\r\n //$('#loadingModal').modal({ backdrop: 'static' });\r\n ProductGroupFactory.saveProductGroup($scope.productGroup).success(function (productGroupId) {\r\n ProductGroupFactory.getProductGroupList().success(function (data) {\r\n var dataGrid = $('#gridProductGroup').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n pageindex = dataGrid.pageIndex();\r\n $scope.productGroupList = data;\r\n if ($scope.productGroup.Id > 0) {\r\n $scope.refreshGrid(pageindex, $scope.productGroup.Id);\r\n $scope.refreshAssignedProductsGrid();\r\n $scope.refreshUnAssignedProductsGrid();\r\n $scope.refreshAssignedDataAreasGrid();\r\n $scope.refreshUnAssignedDataAreasGrid();\r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex, null);\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function (data) {\r\n if ($scope.productGroup.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Product Group successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Product Group successfully' });\r\n }\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n //$('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n // Selecting and Unselecting grid items on details panel\r\n $scope.assignProducts = function () {\r\n var dataGrid = $('#gridUnAssignedProducts').dxDataGrid('instance');\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var i = 0; var len = selectedRows.length;\r\n for (; i < len; i++) {\r\n var prd = $scope.filter($scope.productGroup.AssignedProducts, selectedRows[i].Id);\r\n $scope.productGroup.UnassignedProducts.splice($scope.productGroup.UnassignedProducts.indexOf(selectedRows[i]), 1);\r\n if (prd == null) {\r\n $scope.productGroup.AssignedProducts.push(selectedRows[i]);\r\n }\r\n }\r\n $scope.refreshAssignedProductsGrid();\r\n $scope.refreshUnAssignedProductsGrid();\r\n dataGrid.clearSelection();\r\n };\r\n\r\n $scope.unassignProducts = function () {\r\n var dataGrid = $('#gridAssignedProducts').dxDataGrid('instance');\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var i = 0; var len = selectedRows.length;\r\n for (; i < len; i++) {\r\n $scope.productGroup.AssignedProducts.splice($scope.productGroup.AssignedProducts.indexOf(selectedRows[i]), 1);\r\n $scope.productGroup.UnassignedProducts.push(selectedRows[i]);\r\n }\r\n $scope.refreshAssignedProductsGrid();\r\n $scope.refreshUnAssignedProductsGrid();\r\n dataGrid.clearSelection();\r\n };\r\n\r\n $scope.assignDataAreas = function () {\r\n var dataGrid = $('#gridUnAssignedDataAreas').dxDataGrid('instance');\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var i = 0; var len1 = selectedRows.length;\r\n for (; i < len1; i++) {\r\n var da = $scope.filter($scope.productGroup.AssignedDataAreas, selectedRows[i].Id);\r\n $scope.productGroup.UnassignedDataAreas.splice($scope.productGroup.UnassignedDataAreas.indexOf(selectedRows[i]), 1);\r\n if (da == null) {\r\n $scope.productGroup.AssignedDataAreas.push(selectedRows[i]);\r\n }\r\n }\r\n $scope.refreshAssignedDataAreasGrid();\r\n $scope.refreshUnAssignedDataAreasGrid();\r\n dataGrid.clearSelection();\r\n };\r\n\r\n $scope.unassignDataAreas = function () {\r\n var dataGrid = $('#gridAssignedDataAreas').dxDataGrid('instance');\r\n var selectedRows = dataGrid.getSelectedRowsData();\r\n var i = 0; var len = selectedRows.length;\r\n for (; i < len; i++) {\r\n $scope.productGroup.AssignedDataAreas.splice($scope.productGroup.AssignedDataAreas.indexOf(selectedRows[i]), 1);\r\n $scope.productGroup.UnassignedDataAreas.push(selectedRows[i]);\r\n }\r\n $scope.refreshAssignedDataAreasGrid();\r\n $scope.refreshUnAssignedDataAreasGrid();\r\n dataGrid.clearSelection();\r\n };\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridProductGroup', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridProductGroup', settings.GridMarginHeight);\r\n };\r\n\r\n collapsibleHeaderClickEvent($scope); \r\n\r\n $scope.productsGridExpanded = function () {\r\n var dataGrid1 = $('#gridUnAssignedProducts').dxDataGrid('instance');\r\n dataGrid1.repaint();\r\n var dataGrid2 = $('#gridAssignedProducts').dxDataGrid('instance');\r\n dataGrid2.repaint();\r\n };\r\n\r\n $scope.dataAreaGridExpanded = function () {\r\n var dataGrid1 = $('#gridUnAssignedDataAreas').dxDataGrid('instance');\r\n dataGrid1.repaint();\r\n var dataGrid2 = $('#gridAssignedDataAreas').dxDataGrid('instance');\r\n dataGrid2.repaint();\r\n };\r\n\r\n $scope.filter = function (input, id) {\r\n var i = 0, len = input.length;\r\n for (; i < len; i++) {\r\n if (+input[i].Id == +id) {\r\n return input[i];\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n\r\n $scope.viewRelatedProductModal = function () {\r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'app-legacy/Entities/templates/RelatedProductModal.html',\r\n controller: 'RelatedProductModalController',\r\n controllerAs: 'modalVm',\r\n size: 'md',\r\n scope: $scope,\r\n resolve: {\r\n RelatedProducts: function() {\r\n return $scope.productGroup.RelatedProducts;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (RelatedProducts) {\r\n if ($scope.productGroup.RelatedProducts != null && $scope.productGroup.RelatedProducts.length > 0) {\r\n $scope.saveProductGroup();\r\n } \r\n }, function () {\r\n if ($scope.productGroup.RelatedProducts != null && $scope.productGroup.RelatedProducts.length > 0) {\r\n $scope.saveProductGroup();\r\n }\r\n });\r\n };\r\n\r\n}]);\r\n\r\napp.controller('RelatedProductModalController', ['$scope', 'ProductGroupFactory', '$uibModalInstance', '$uibModal', 'RelatedProducts',\r\n function ($scope, ProductGroupFactory, $uibModalInstance, $uibModal, RelatedProducts) {\r\n var modalVm = this;\r\n\r\n init();\r\n\r\n modalVm.Ok = function () {\r\n $uibModalInstance.close(modalVm.RelatedProducts);\r\n };\r\n \r\n function init() {\r\n modalVm.RelatedProducts = RelatedProducts; \r\n };\r\n }]);\r\n","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('SafetyCheckFactory', ['$http', 'settings', function ($http, settings) { \r\n var safetyCheckUrl = settings.ApiURL + settings.SafetyCheckURL;\r\n var deviceUrl = settings.ApiURL + settings.DeviceURL;\r\n var masterDataUrl = settings.ApiURL + settings.MasterDataURL;\r\n var productUrl = settings.ApiURL + settings.ProductURL;\r\n var vehicleUrl = settings.ApiURL + settings.VehicleURL;\r\n return { \r\n getSafetyCheckGroup: function () {\r\n return $http.get(safetyCheckUrl + \"/safetycheckgroup\");\r\n },\r\n getSafetyCheckForLogin: function (companyid, vehicletypeid, dataareaid, vehicleid) {\r\n return $http.get(safetyCheckUrl + \"/safetycheckforlogin/\" + companyid + \"/\" + vehicletypeid + \"/\" + dataareaid + \"/\" + vehicleid);\r\n },\r\n getNewSafetyCheckForLogin: function (companyid, vehicletypeid, dataareaid, vehicleid) {\r\n return $http.get(safetyCheckUrl + \"/newsafetycheck/login/\" + companyid + \"/\" + vehicletypeid + \"/\" + dataareaid + \"/\" + vehicleid)\r\n },\r\n getSafetyCheckForLogout: function (companyid, vehicletypeid, dataareaid, vehicleid) {\r\n return $http.get(safetyCheckUrl + \"/safetycheckforlogout/\" + companyid + \"/\" + vehicletypeid + \"/\" + dataareaid + \"/\" + vehicleid);\r\n },\r\n getNewSafetyCheckForLogout: function (companyid, vehicletypeid, dataareaid, vehicleid) {\r\n return $http.get(safetyCheckUrl + \"/newsafetycheck/logout/\" + companyid + \"/\" + vehicletypeid + \"/\" + dataareaid + \"/\" + vehicleid)\r\n },\r\n getSafetyCheckForCustomer: function (companyid, customertypeid) {\r\n return $http.get(safetyCheckUrl + \"/safetycheckforcustomer/\" + companyid + \"/\" + customertypeid);\r\n },\r\n getNewSafetyCheckForCustomer: function (companyid, customertypeid) {\r\n return $http.get(safetyCheckUrl + \"/newsafetycheck/customer/\" + companyid + \"/\" + customertypeid);\r\n },\r\n getSafetyCheckForProduct: function (companyid, producttypeid) {\r\n return $http.get(safetyCheckUrl + \"/safetycheckforproduct/\" + companyid + \"/\" + producttypeid);\r\n },\r\n getSafetyCheckForLoadingProduct: function (companyid, producttypeid) {\r\n return $http.get(safetyCheckUrl + \"/safetycheckforloadingproduct/\" + companyid + \"/\" + producttypeid);\r\n },\r\n getNewSafetyCheckForProduct: function (companyid, producttypeid) {\r\n return $http.get(safetyCheckUrl + \"/newsafetycheck/product/\" + companyid + \"/\" + producttypeid);\r\n },\r\n getSafetyCheckForOthers: function (companyid, grouptypeid) {\r\n return $http.get(safetyCheckUrl + \"/safetycheckforothers/\" + companyid + \"/\" + grouptypeid);\r\n },\r\n getNewSafetyCheckForOthers: function (companyid, grouptypeid) {\r\n return $http.get(safetyCheckUrl + \"/newsafetycheck/others/\" + companyid + \"/\" + grouptypeid);\r\n },\r\n getSafetyCheckForVehicleInspection: function (companyid, vehicletypeid) {\r\n return $http.get(safetyCheckUrl + \"/safetycheckforvehicleinspection/\" + companyid + \"/\" + vehicletypeid);\r\n },\r\n getNewSafetyCheckForVehicleInspection: function (companyid, vehicletypeid) {\r\n return $http.get(safetyCheckUrl + \"/newsafetycheck/vehicleinspection/\" + companyid + \"/\" + vehicletypeid)\r\n },\r\n getVehicleType: function () {\r\n return $http.get(vehicleUrl + \"/vehicletypes/0\");\r\n },\r\n getDevices: function (companyId) {\r\n return $http.get(deviceUrl + \"/\" + companyId);\r\n },\r\n getCustomerType: function () {\r\n return $http.get(masterDataUrl + \"/customertypes/0\");\r\n },\r\n getProductTypes: function () {\r\n return $http.get(productUrl + \"/producttype/dropdown\");\r\n },\r\n getSafetyGlobalMandatoryStates: function () {\r\n return $http.get(safetyCheckUrl + \"/globalmandatorystates\");\r\n },\r\n getSafetyMandatoryStates: function () {\r\n return $http.get(safetyCheckUrl + \"/mandatorystates\");\r\n },\r\n saveSafetyCheckForLogin: function (safetycheck) {\r\n return $http.put(safetyCheckUrl + \"/savesafetycheckforlogin\", safetycheck)\r\n },\r\n saveSafetyCheckForLogout: function (safetycheck) {\r\n return $http.put(safetyCheckUrl + \"/savesafetycheckforlogout\", safetycheck)\r\n },\r\n saveSafetyCheckForCustomer: function (safetycheck) {\r\n return $http.put(safetyCheckUrl + \"/savesafetycheckforcustomer\", safetycheck)\r\n },\r\n saveSafetyCheckForProduct: function (safetycheck) {\r\n return $http.put(safetyCheckUrl + \"/savesafetycheckforproduct\", safetycheck)\r\n },\r\n saveSafetyCheckForLoadingProduct: function (safetycheck) {\r\n return $http.put(safetyCheckUrl + \"/savesafetycheckforloadingproduct\", safetycheck)\r\n },\r\n saveSafetyCheckForOthers: function (safetycheck) {\r\n return $http.put(safetyCheckUrl + \"/savesafetycheckforothers\", safetycheck)\r\n },\r\n saveSafetyCheckForVehicleInspection: function (safetycheck) {\r\n return $http.put(safetyCheckUrl + \"/savesafetycheckforvehicleinspection\", safetycheck)\r\n },\r\n deleteSafetyCheck: function (companyid, textid, safetygroupid) {\r\n return $http.delete(safetyCheckUrl + \"/deletesafetycheck/\" + companyid + \"/\" + textid + \"/\" + safetygroupid);\r\n },\r\n };\r\n}]);\r\n\r\napp.controller('SafetyCheckController', ['$q', '$scope', 'SafetyCheckFactory', 'DataAreaFactory', 'CompanyFactory', '$rootScope', '$state', 'settings', '$filter', 'masterFactory',\r\n function ($q, $scope, SafetyCheckFactory, DataAreaFactory, CompanyFactory, $rootScope, $state, settings, $filter, masterFactory) {\r\n $rootScope.pageTitle = \"Safety Checks\";\r\n $scope.safetyCheckCompanies = [];\r\n $scope.safetyCheckTextGroups = [];\r\n $scope.vehicleTypes = [];\r\n $scope.dataAreas = [];\r\n $scope.customerTypes = [];\r\n $scope.productTypes = [];\r\n $scope.devices = [];\r\n $scope.filteredDevices = null;\r\n $scope.selectedDevice = {};\r\n $scope.safetyChecks = null;\r\n $scope.safetyCheck = {};\r\n $scope.resetsafetyCheck = {};\r\n $scope.globalMandatoryStates = [];\r\n $scope.mandatoryStates = [];\r\n $scope.error = \"\";\r\n $scope.isSafetyCheckLogoutFormVisible = false;\r\n $scope.isSafetyCheckLoginFormVisible = false;\r\n $scope.isSafetyCheckCustomerFormVisible = false;\r\n $scope.isSafetyCheckProductFormVisible = false;\r\n $scope.isSafetyCheckOthersFormVisible = false;\r\n $scope.isSafetyCheckVehicleInspectionFormVisible = false;\r\n $scope.isAddNewTextVisible = false;\r\n $scope.isRowSelected = false;\r\n $scope.submitted = false;\r\n $scope.formHeader = {};\r\n $scope.formTopMargin = \"\";\r\n var mandatoryGlobalImg = \"Content/Images/Icons/mandatory-global-24-black.png\";\r\n var notvisibleImg = \"Content/Images/Icons/notvisible-24-black.png\";\r\n var optionalImg = \"Content/Images/Icons/optional-24-yellow.png\";\r\n var mandatoryImg = \"Content/Images/Icons/mandatory-24-red.png\";\r\n var disabledImg = \"Content/Images/Icons/disabled-24-grey.png\";\r\n\r\n\r\n // Initialization - this runs on load\r\n var init = function () {\r\n masterFactory.verifyAuthentication();\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([ \r\n CompanyFactory.getCompanyDropDown(0).success(function (data) {\r\n $scope.safetyCheckCompanies = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n SafetyCheckFactory.getSafetyCheckGroup().success(function (data) {\r\n $scope.safetyCheckTextGroups = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n SafetyCheckFactory.getSafetyGlobalMandatoryStates().success(function (data) {\r\n $scope.globalMandatoryStates = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n SafetyCheckFactory.getSafetyMandatoryStates().success(function (data) {\r\n $scope.mandatoryStates = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n init();\r\n\r\n // Grid renderers\r\n $scope.refreshDeviceGrid = function (pageIndex, datasource) {\r\n $('#gridDevices').dxDataGrid({\r\n dataSource: datasource,\r\n noDataText: \"No Devices Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n height: '250px',\r\n selection: { mode: 'single' },\r\n sorting: { mode: 'single' },\r\n paging: { pagesize: 5 },\r\n scrolling: { mode: 'standard' }, \r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n columns: [\r\n {\r\n caption: 'Device Id - Name', dataField: 'Id', cssClass: 'Id', dataType: 'string', alignment: 'center', width: '60%',\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.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: 'License plate', dataField: 'LicensePlate', cssClass: 'LicensePlate', dataType: 'string', alignment: 'center', width: '40%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.LicensePlate)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) { \r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $scope.selectedDevice = selectedRowsInfo.selectedRowsData[0];\r\n //$scope.safetyCheck.VehicleTypeId = $scope.selectedDevice.VehicleTypeId;\r\n //$scope.safetyCheck.DataAreaId = $scope.selectedDevice.DataAreaId;\r\n $scope.safetyCheck.VehicleId = $scope.selectedDevice.VehicleId;\r\n $scope.getSafetyChecks();\r\n }\r\n else {\r\n $scope.safetyCheck.VehicleId = null;\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshSafetyCheckLoginGrid = function (pageIndex) {\r\n $('#gridSafetyCheckLogin').dxDataGrid({ \r\n dataSource: {\r\n store: {\r\n data: $scope.safetyChecks,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n noDataText: \"No Login Safety Check Texts Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n height: '500px',\r\n selection: { mode: 'single' }, \r\n scrolling: { mode: 'standard' },\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n columns: [\r\n {\r\n caption: 'ID', dataField: 'Id', cssClass: 'Id', dataType: 'number', alignment: 'center', width: '10%'\r\n },\r\n {\r\n caption: 'Text', dataField: 'Text', cssClass: 'Text', dataType: 'string', alignment: 'center', width: '40%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Text)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Mandatory', dataField: 'MandatoryGlobalImage', cssClass: 'MandatoryGlobalImage', dataType: 'string', alignment: 'center', allowFiltering: false,\r\n allowSorting: false, width: '10%', \r\n cellTemplate: function (container, options) { \r\n $('') \r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n } \r\n },\r\n {\r\n caption: 'Fleet', dataField: 'MandatoryForFleetImage', cssClass: 'MandatoryForFleetImage', dataType: 'string', alignment: 'center', allowFiltering: false,\r\n allowSorting: false, width: '10%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n },\r\n {\r\n caption: 'Vehicle type', dataField: 'MandatoryForVehicleTypeImage', cssClass: 'MandatoryForVehicleTypeImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '10%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n },\r\n {\r\n caption: 'Data area', dataField: 'MandatoryForDataAreaImage', cssClass: 'MandatoryForDataAreaImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '10%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n },\r\n {\r\n caption: 'Device', dataField: 'MandatoryForVehicleImage', cssClass: 'MandatoryForVehicleImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '10%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $scope.safetyCheck.selectedSafetyCheckLogin = angular.copy(selectedRowsInfo.selectedRowsData[0]);\r\n $scope.resetsafetyCheck = angular.copy(selectedRowsInfo.selectedRowsData[0]);\r\n $scope.safetyCheck.selectedSafetyCheckLogin.VehicleTypeId = (IsUndefinedOrNull($scope.safetyCheck.VehicleTypeId) == true) ? null : $scope.safetyCheck.VehicleTypeId;\r\n $scope.safetyCheck.selectedSafetyCheckLogin.DataAreaId = (IsUndefinedOrNull($scope.safetyCheck.DataAreaId) == true) ? null : $scope.safetyCheck.DataAreaId;\r\n $scope.safetyCheck.selectedSafetyCheckLogin.VehicleId = (IsUndefinedOrNull($scope.safetyCheck.VehicleId) == true) ? null : $scope.safetyCheck.VehicleId;\r\n $scope.isSafetyCheckLoginFormVisible = true;\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n $scope.isAddNewTextVisible = false;\r\n $scope.isRowSelected = true;\r\n $scope.formHeader = \"Login - Safety Check Text\";\r\n ToggleYellowToGreen();\r\n }\r\n else {\r\n $scope.safetyCheck.selectedSafetyCheckLogin = null;\r\n $scope.resetsafetyCheck = null;\r\n $scope.isSafetyCheckLoginFormVisible = false;\r\n $scope.isFormVisible = false;\r\n $scope.isDeleteVisible = false;\r\n $scope.isAddNewTextVisible = true;\r\n $scope.isRowSelected = false;\r\n }\r\n },\r\n rowPrepared: function (rowElement, rowInfo) {\r\n if (rowInfo.data.MandatoryForFleet == 0 && rowInfo.data.MandatoryForVehicleType == 0\r\n && rowInfo.data.MandatoryForDataArea == 0 && rowInfo.data.MandatoryForVehicle == 0) {\r\n rowElement.find('td').each(function () {\r\n if ($(this)[0].cellIndex != 2)\r\n $(this).css('opacity', '0.4');\r\n });\r\n }\r\n $('#gridSafetyCheckLogin td').each(function () {\r\n if ($(this)[0].cellIndex == 4 && $scope.safetyCheck.VehicleTypeId == undefined)\r\n $(this).css('opacity', '0.4');\r\n if ($(this)[0].cellIndex == 5 && $scope.safetyCheck.DataAreaId == undefined)\r\n $(this).css('opacity', '0.4');\r\n if ($(this)[0].cellIndex == 6 && $scope.safetyCheck.VehicleId == undefined)\r\n $(this).css('opacity', '0.4');\r\n });\r\n rowElement.find('td').each(function () {\r\n if ($(this)[0].cellIndex == 4 && $scope.safetyCheck.VehicleTypeId == undefined)\r\n $(this).css('opacity', '0.4');\r\n if ($(this)[0].cellIndex == 5 && $scope.safetyCheck.DataAreaId == undefined)\r\n $(this).css('opacity', '0.4');\r\n if ($(this)[0].cellIndex == 6 && $scope.safetyCheck.VehicleId == undefined)\r\n $(this).css('opacity', '0.4');\r\n });\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshSafetyCheckLogoutGrid = function (pageIndex) {\r\n $('#gridSafetyCheckLogout').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.safetyChecks,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n noDataText: \"No Logout Safety Check Texts Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n height: '500px',\r\n selection: { mode: 'single' },\r\n scrolling: { mode: 'standard' },\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n columns: [\r\n {\r\n caption: 'ID', dataField: 'Id', cssClass: 'Id', dataType: 'number', alignment: 'center', width: '10%'\r\n },\r\n {\r\n caption: 'Text', dataField: 'Text', cssClass: 'Text', dataType: 'string', alignment: 'center', width: '40%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Text)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Mandatory', dataField: 'MandatoryGlobalImage', cssClass: 'MandatoryGlobalImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '10%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n },\r\n {\r\n caption: 'Fleet', dataField: 'MandatoryForFleetImage', cssClass: 'MandatoryForFleetImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '10%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n },\r\n {\r\n caption: 'Vehicle type', dataField: 'MandatoryForVehicleTypeImage', cssClass: 'MandatoryForVehicleTypeImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '10%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n },\r\n {\r\n caption: 'Data area', dataField: 'MandatoryForDataAreaImage', cssClass: 'MandatoryForDataAreaImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '10%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n },\r\n {\r\n caption: 'Device', dataField: 'MandatoryForVehicleImage', cssClass: 'MandatoryForVehicleImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '10%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $scope.safetyCheck.selectedSafetyCheckLogout = angular.copy(selectedRowsInfo.selectedRowsData[0]);\r\n $scope.resetsafetyCheck = angular.copy(selectedRowsInfo.selectedRowsData[0]);\r\n $scope.safetyCheck.selectedSafetyCheckLogout.VehicleTypeId = (IsUndefinedOrNull($scope.safetyCheck.VehicleTypeId) == true) ? null : $scope.safetyCheck.VehicleTypeId;\r\n $scope.safetyCheck.selectedSafetyCheckLogout.DataAreaId = (IsUndefinedOrNull($scope.safetyCheck.DataAreaId) == true) ? null : $scope.safetyCheck.DataAreaId;\r\n $scope.safetyCheck.selectedSafetyCheckLogout.VehicleId = (IsUndefinedOrNull($scope.safetyCheck.VehicleId) == true) ? null : $scope.safetyCheck.VehicleId;\r\n $scope.isSafetyCheckLogoutFormVisible = true;\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n $scope.isAddNewTextVisible = false;\r\n $scope.isRowSelected = true;\r\n $scope.formHeader = \"Logout - Safety Check Text\";\r\n ToggleYellowToGreen();\r\n }\r\n else {\r\n $scope.safetyCheck.selectedSafetyCheckLogout = null;\r\n $scope.resetsafetyCheck = null;\r\n $scope.isSafetyCheckLogoutFormVisible = false;\r\n $scope.isFormVisible = false;\r\n $scope.isDeleteVisible = false;\r\n $scope.isAddNewTextVisible = true;\r\n $scope.isRowSelected = false;\r\n }\r\n },\r\n rowPrepared: function (rowElement, rowInfo) {\r\n if (rowInfo.data.MandatoryForFleet == 0 && rowInfo.data.MandatoryForVehicleType == 0\r\n && rowInfo.data.MandatoryForDataArea == 0 && rowInfo.data.MandatoryForVehicle == 0) {\r\n rowElement.find('td').each(function () {\r\n if ($(this)[0].cellIndex != 2)\r\n $(this).css('opacity', '0.4');\r\n });\r\n }\r\n $('#gridSafetyCheckLogout td').each(function () {\r\n if ($(this)[0].cellIndex == 4 && $scope.safetyCheck.VehicleTypeId == undefined)\r\n $(this).css('opacity', '0.4');\r\n if ($(this)[0].cellIndex == 5 && $scope.safetyCheck.DataAreaId == undefined)\r\n $(this).css('opacity', '0.4');\r\n if ($(this)[0].cellIndex == 6 && $scope.safetyCheck.VehicleId == undefined)\r\n $(this).css('opacity', '0.4');\r\n });\r\n rowElement.find('td').each(function () {\r\n if ($(this)[0].cellIndex == 4 && $scope.safetyCheck.VehicleTypeId == undefined)\r\n $(this).css('opacity', '0.4');\r\n if ($(this)[0].cellIndex == 5 && $scope.safetyCheck.DataAreaId == undefined)\r\n $(this).css('opacity', '0.4');\r\n if ($(this)[0].cellIndex == 6 && $scope.safetyCheck.VehicleId == undefined)\r\n $(this).css('opacity', '0.4');\r\n });\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshSafetyCheckVehicleInspectionGrid = function (pageIndex) {\r\n $('#gridSafetyCheckVehicleInspection').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.safetyChecks,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n noDataText: \"No Vehicle Inspection Safety Check Texts Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n height: '500px',\r\n selection: { mode: 'single' },\r\n scrolling: { mode: 'standard' },\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n columns: [\r\n {\r\n caption: 'ID', dataField: 'Id', cssClass: 'Id', dataType: 'number', alignment: 'center', width: '10%'\r\n },\r\n {\r\n caption: 'Text', dataField: 'Text', cssClass: 'Text', dataType: 'string', alignment: 'center', width: '40%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Text)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Mandatory', dataField: 'MandatoryGlobalImage', cssClass: 'MandatoryGlobalImage', dataType: 'string', alignment: 'center', allowFiltering: false,\r\n allowSorting: false, width: '10%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n },\r\n {\r\n caption: 'Vehicle type', dataField: 'MandatoryForVehicleTypeImage', cssClass: 'MandatoryForVehicleTypeImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '10%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection = angular.copy(selectedRowsInfo.selectedRowsData[0]);\r\n $scope.resetsafetyCheck = angular.copy(selectedRowsInfo.selectedRowsData[0]);\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection.VehicleTypeId = (IsUndefinedOrNull($scope.safetyCheck.VehicleTypeId) == true) ? null : $scope.safetyCheck.VehicleTypeId;\r\n $scope.isSafetyCheckVehicleInspectionFormVisible = true;\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n $scope.isAddNewTextVisible = false;\r\n $scope.isRowSelected = true;\r\n $scope.formHeader = \"Login - Safety Check Text\";\r\n ToggleYellowToGreen();\r\n }\r\n else {\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection = null;\r\n $scope.resetsafetyCheck = null;\r\n $scope.isSafetyCheckVehicleInspectionFormVisible = false;\r\n $scope.isFormVisible = false;\r\n $scope.isDeleteVisible = false;\r\n $scope.isAddNewTextVisible = true;\r\n $scope.isRowSelected = false;\r\n }\r\n },\r\n rowPrepared: function (rowElement, rowInfo) {\r\n if (rowInfo.data.MandatoryForVehicleType == 0) {\r\n rowElement.find('td').each(function () {\r\n if ($(this)[0].cellIndex != 2)\r\n $(this).css('opacity', '0.4');\r\n });\r\n }\r\n $('#gridSafetyCheckVehicleInspection td').each(function () {\r\n if ($(this)[0].cellIndex == 3 && $scope.safetyCheck.VehicleTypeId == undefined)\r\n $(this).css('opacity', '0.4');\r\n });\r\n rowElement.find('td').each(function () {\r\n if ($(this)[0].cellIndex == 3 && $scope.safetyCheck.VehicleTypeId == undefined)\r\n $(this).css('opacity', '0.4');\r\n });\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshSafetyCheckCustomerGrid = function (pageIndex) {\r\n $('#gridSafetyCheckCustomer').dxDataGrid({ \r\n dataSource: {\r\n store: {\r\n data: $scope.safetyChecks,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n noDataText: \"No Customer Safety Check Texts Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n height: '500px',\r\n selection: { mode: 'single' },\r\n scrolling: { mode: 'standard' },\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n columns: [\r\n {\r\n caption: 'ID', dataField: 'Id', cssClass: 'Id', dataType: 'number', alignment: 'center', width: '10%'\r\n },\r\n {\r\n caption: 'Text', dataField: 'Text', cssClass: 'Text', dataType: 'string', alignment: 'center', width: '50%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Text)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Mandatory', dataField: 'MandatoryGlobalImage', cssClass: 'MandatoryGlobalImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '20%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n \r\n },\r\n {\r\n caption: 'Customer type', dataField: 'MandatoryForCustomerTypeImage', cssClass: 'MandatoryForCustomerTypeImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '20%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $scope.safetyCheck.selectedSafetyCheckCustomer = angular.copy(selectedRowsInfo.selectedRowsData[0]);\r\n $scope.resetsafetyCheck = angular.copy(selectedRowsInfo.selectedRowsData[0]);\r\n $scope.safetyCheck.selectedSafetyCheckCustomer.CustomerTypeId = (IsUndefinedOrNull($scope.safetyCheck.CustomerTypeId) == true) ? null : $scope.safetyCheck.CustomerTypeId; \r\n $scope.isSafetyCheckCustomerFormVisible = true;\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n $scope.isAddNewTextVisible = false;\r\n $scope.isRowSelected = true;\r\n $scope.formHeader = \"Customer - Safety Check Text\";\r\n ToggleYellowToGreen();\r\n }\r\n else {\r\n $scope.safetyCheck.selectedSafetyCheckCustomer = null;\r\n $scope.resetsafetyCheck = null;\r\n $scope.isSafetyCheckCustomerFormVisible = false;\r\n $scope.isFormVisible = false;\r\n $scope.isDeleteVisible = false;\r\n $scope.isAddNewTextVisible = true;\r\n $scope.isRowSelected = false;\r\n }\r\n },\r\n rowPrepared: function (rowElement, rowInfo) {\r\n if (rowInfo.data.MandatoryForCustomerType == 0) {\r\n rowElement.find('td').each(function () {\r\n if ($(this)[0].cellIndex != 2)\r\n $(this).css('opacity', '0.4');\r\n })\r\n }\r\n $('#gridSafetyCheckCustomer td').each(function () {\r\n if ($(this)[0].cellIndex == 3 && $scope.safetyCheck.CustomerTypeId == undefined)\r\n $(this).css('opacity', '0.4');\r\n });\r\n rowElement.find('td').each(function () {\r\n if ($(this)[0].cellIndex == 3 && $scope.safetyCheck.CustomerTypeId == undefined)\r\n $(this).css('opacity', '0.4');\r\n });\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshSafetyCheckProductGrid = function (pageIndex) {\r\n $('#gridSafetyCheckProduct').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.safetyChecks,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n noDataText: \"No Product Safety Check Texts Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n height: '500px',\r\n selection: { mode: 'single' },\r\n scrolling: { mode: 'standard' },\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n columns: [\r\n {\r\n caption: 'ID', dataField: 'Id', cssClass: 'Id', dataType: 'number', alignment: 'center', width: '10%'\r\n },\r\n {\r\n caption: 'Text', dataField: 'Text', cssClass: 'Text', dataType: 'string', alignment: 'center', width: '50%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Text)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Mandatory', dataField: 'MandatoryGlobalImage', cssClass: 'MandatoryGlobalImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '20%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n },\r\n {\r\n caption: 'Product type', dataField: 'MandatoryForProductTypeImage', cssClass: 'MandatoryForProductTypeImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '20%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $scope.safetyCheck.selectedSafetyCheckProduct = angular.copy(selectedRowsInfo.selectedRowsData[0]);\r\n $scope.resetsafetyCheck = angular.copy(selectedRowsInfo.selectedRowsData[0]);\r\n $scope.safetyCheck.selectedSafetyCheckProduct.ProductTypeId = (IsUndefinedOrNull($scope.safetyCheck.ProductTypeId) == true) ? null : $scope.safetyCheck.ProductTypeId;\r\n $scope.isSafetyCheckProductFormVisible = true;\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n $scope.isAddNewTextVisible = false;\r\n $scope.isRowSelected = true;\r\n $scope.formHeader = \"Product - Safety Check Text\";\r\n ToggleYellowToGreen();\r\n }\r\n else {\r\n $scope.safetyCheck.selectedSafetyCheckProduct = null;\r\n $scope.resetsafetyCheck = null;\r\n $scope.isSafetyCheckProductFormVisible = false;\r\n $scope.isFormVisible = false;\r\n $scope.isDeleteVisible = false;\r\n $scope.isAddNewTextVisible = true;\r\n $scope.isRowSelected = false;\r\n }\r\n },\r\n rowPrepared: function (rowElement, rowInfo) {\r\n if (rowInfo.data.MandatoryForProductType == 0) {\r\n rowElement.find('td').each(function () {\r\n if ($(this)[0].cellIndex != 2)\r\n $(this).css('opacity', '0.4');\r\n })\r\n }\r\n $('#gridSafetyCheckProduct td').each(function () {\r\n if ($(this)[0].cellIndex == 3 && $scope.safetyCheck.ProductTypeId == undefined)\r\n $(this).css('opacity', '0.4');\r\n });\r\n rowElement.find('td').each(function () {\r\n if ($(this)[0].cellIndex == 3 && $scope.safetyCheck.ProductTypeId == undefined)\r\n $(this).css('opacity', '0.4');\r\n });\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshSafetyCheckOthersGrid = function (pageIndex) {\r\n $('#gridSafetyCheckOthers').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.safetyChecks,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n noDataText: \"No Safety Check Texts Found for the Group\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n height: '500px',\r\n selection: { mode: 'single' },\r\n scrolling: { mode: 'standard' },\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false },\r\n columns: [\r\n {\r\n caption: 'ID', dataField: 'Id', cssClass: 'Id', dataType: 'number', alignment: 'center', width: '10%'\r\n },\r\n {\r\n caption: 'Text', dataField: 'Text', cssClass: 'Text', dataType: 'string', alignment: 'center', width: '50%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.Text)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Mandatory', dataField: 'MandatoryGlobalImage', cssClass: 'MandatoryGlobalImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '20%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n },\r\n {\r\n caption: 'Fleet', dataField: 'MandatoryForOthersImage', cssClass: 'MandatoryForOthersImage', dataType: 'string', alignment: 'center',\r\n allowFiltering: false, allowSorting: false, width: '20%',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .attr('src', 'assets/' + options.value)\r\n .appendTo(container);\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $scope.safetyCheck.selectedSafetyCheckOthers = angular.copy(selectedRowsInfo.selectedRowsData[0]);\r\n $scope.resetsafetyCheck = angular.copy(selectedRowsInfo.selectedRowsData[0]);\r\n $scope.isSafetyCheckOthersFormVisible = true;\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n $scope.isAddNewTextVisible = false;\r\n $scope.isRowSelected = true;\r\n $scope.formHeader = \"Safety Check Text\";\r\n ToggleYellowToGreen();\r\n }\r\n else {\r\n $scope.resetsafetyCheck = null;\r\n $scope.isSafetyCheckOthersFormVisible = false;\r\n $scope.isFormVisible = false;\r\n $scope.isDeleteVisible = false;\r\n $scope.isAddNewTextVisible = true;\r\n $scope.isRowSelected = false;\r\n }\r\n },\r\n rowPrepared: function (rowElement, rowInfo) {\r\n if (rowInfo.data.MandatoryForOthers == 0) {\r\n rowElement.find('td').each(function () {\r\n if ($(this)[0].cellIndex != 2)\r\n $(this).css('opacity', '0.4');\r\n })\r\n }\r\n }\r\n });\r\n };\r\n\r\n // On Selection change events\r\n $scope.companyChanged = function () {\r\n if ($scope.safetyCheck.SafetyCheckGroupId != null && $scope.safetyCheck.SafetyCheckGroupId == 1) {\r\n SafetyCheckFactory.getDevices($scope.safetyCheck.SafetyCheckCompanyId).success(function (data) {\r\n $scope.devices = data;\r\n $scope.refreshDeviceGrid(0, $scope.devices);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n else {\r\n $scope.getSafetyChecks();\r\n }\r\n };\r\n\r\n $scope.safetyCheckGroupChanged = function (groupId) {\r\n $scope.isAddNewTextVisible = true;\r\n $scope.isSafetyCheckLoginFormVisible = false;\r\n $scope.isSafetyCheckLogoutFormVisible = false;\r\n $scope.isSafetyCheckCustomerFormVisible = false;\r\n $scope.isSafetyCheckProductFormVisible = false;\r\n $scope.isSafetyCheckOthersFormVisible = false;\r\n $scope.isSafetyCheckVehicleInspectionFormVisible = false;\r\n $scope.isFormVisible = false;\r\n $scope.isRowSelected = false;\r\n $scope.safetyCheck.selectedSafetyCheckLogin = null;\r\n $scope.safetyCheck.selectedSafetyCheckLogout = null;\r\n $scope.safetyCheck.selectedSafetyCheckCustomer = null;\r\n $scope.safetyCheck.selectedSafetyCheckProduct = null;\r\n $scope.safetyCheck.selectedSafetyCheckOthers = null;\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection = null;\r\n\r\n try {\r\n $('#gridDevices').dxDataGrid('instance').clearSelection();\r\n }\r\n catch (error) { }\r\n\r\n if (groupId == 1 || groupId == 11 || groupId == 12) { // get vehicle types and data area\r\n $scope.safetyCheck.VehicleTypeId = null;\r\n $scope.safetyCheck.DataAreaId = null;\r\n $scope.safetyCheck.VehicleId = null;\r\n $scope.safetyCheck.ProductTypeId = null;\r\n $scope.safetyCheck.CustomerTypeId = null;\r\n\r\n if ($scope.vehicleTypes != null) {\r\n SafetyCheckFactory.getVehicleType().success(function (data) {\r\n $scope.vehicleTypes = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n if ($scope.dataAreas != null) {\r\n DataAreaFactory.getDataAreaList(1).success(function (data) {\r\n $scope.dataAreas = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n SafetyCheckFactory.getDevices($scope.safetyCheck.SafetyCheckCompanyId).success(function (data) {\r\n $scope.devices = data;\r\n $scope.refreshDeviceGrid(0,$scope.devices);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n $scope.formTopMargin = {'position':'relative', 'top':'310px'};\r\n } \r\n else if (groupId == 2) { // get customertypes\r\n $scope.safetyCheck.VehicleTypeId = null;\r\n $scope.safetyCheck.DataAreaId = null;\r\n $scope.safetyCheck.VehicleId = null;\r\n $scope.safetyCheck.ProductTypeId = null;\r\n \r\n if ($scope.customerTypes != null) {\r\n SafetyCheckFactory.getCustomerType().success(function (data) {\r\n $scope.customerTypes = $filter('filter')(data, function (item) {\r\n return item.Id != 1;\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n $scope.formTopMargin = { 'position': 'relative', 'top': '207px' };\r\n }\r\n else if (groupId == 5 || groupId == 13) { // get producttypes\r\n $scope.safetyCheck.VehicleTypeId = null;\r\n $scope.safetyCheck.DataAreaId = null;\r\n $scope.safetyCheck.VehicleId = null;\r\n $scope.safetyCheck.CustomerTypeId = null;\r\n\r\n if ($scope.productTypes != null) {\r\n SafetyCheckFactory.getProductTypes().success(function (data) {\r\n $scope.productTypes = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n $scope.formTopMargin = { 'position': 'relative', 'top': '207px' };\r\n }\r\n else if (groupId == 7 || groupId == 8 || groupId == 9 || groupId == 10) { // others\r\n $scope.safetyCheck.VehicleTypeId = null;\r\n $scope.safetyCheck.DataAreaId = null;\r\n $scope.safetyCheck.VehicleId = null;\r\n $scope.safetyCheck.CustomerTypeId = null;\r\n $scope.safetyCheck.ProductTypeId = null;\r\n\r\n $scope.formTopMargin = { 'position': 'relative', 'top': '158px' };\r\n }\r\n $scope.getSafetyChecks();\r\n };\r\n\r\n $scope.vehicleTypeDataAreaChanged = function () { \r\n if ($scope.safetyCheck.VehicleTypeId != null) {\r\n if ($scope.safetyCheck.DataAreaId != null && $scope.safetyCheck.DataAreaId != 0) {\r\n $scope.filteredDevices = $filter('filter')($scope.devices, { VehicleTypeId: $scope.safetyCheck.VehicleTypeId, DataAreaId: $scope.safetyCheck.DataAreaId });\r\n }\r\n else {\r\n $scope.filteredDevices = $filter('filter')($scope.devices, { VehicleTypeId: $scope.safetyCheck.VehicleTypeId });\r\n }\r\n $scope.refreshDeviceGrid(0, $scope.filteredDevices);\r\n }\r\n $scope.getSafetyChecks();\r\n };\r\n\r\n $scope.customerTypeChanged = function () {\r\n $scope.getSafetyChecks();\r\n };\r\n\r\n $scope.productTypeChanged = function () {\r\n $scope.getSafetyChecks();\r\n };\r\n\r\n $scope.getSafetyChecks = function () {\r\n var companyid = $scope.safetyCheck.SafetyCheckCompanyId;\r\n var vehicletypeid = $scope.safetyCheck.VehicleTypeId;\r\n var dataareaid = $scope.safetyCheck.DataAreaId;\r\n var vehicleid = $scope.safetyCheck.VehicleId;\r\n var dataGrid;\r\n \r\n if ($scope.safetyCheck.SafetyCheckGroupId == 1) {\r\n SafetyCheckFactory.getSafetyCheckForLogin(companyid, vehicletypeid, dataareaid, vehicleid).success(function (data) {\r\n $scope.safetyChecks = data; \r\n if ($scope.isRowSelected) {\r\n // code to get id of the row selected. \r\n dataGrid = $('#gridSafetyCheckLogin').dxDataGrid('instance');\r\n var selectedRow = dataGrid.getSelectedRowsData();\r\n $scope.refreshSafetyCheckLoginGrid(0); \r\n // code to reselect the record after refreshing the grid. \r\n (dataGrid as unknown as FacnmDx).selectRows([selectedRow[0].Id], false);\r\n }\r\n else {\r\n $scope.refreshSafetyCheckLoginGrid(0);\r\n } \r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }); \r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 11) {\r\n SafetyCheckFactory.getSafetyCheckForLogout(companyid, vehicletypeid, dataareaid, vehicleid).success(function (data) {\r\n $scope.safetyChecks = data;\r\n if ($scope.isRowSelected) {\r\n // code to get id of the row selected. \r\n dataGrid = $('#gridSafetyCheckLogout').dxDataGrid('instance');\r\n var selectedRow = dataGrid.getSelectedRowsData();\r\n $scope.refreshSafetyCheckLogoutGrid(0);\r\n // code to reselect the record after refreshing the grid. \r\n (dataGrid as unknown as FacnmDx).selectRows([selectedRow[0].Id], false);\r\n }\r\n else {\r\n $scope.refreshSafetyCheckLogoutGrid(0);\r\n }\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 12) {\r\n SafetyCheckFactory.getSafetyCheckForVehicleInspection(companyid, vehicletypeid).success(function (data) {\r\n $scope.safetyChecks = data;\r\n if ($scope.isRowSelected) {\r\n // code to get id of the row selected. \r\n dataGrid = $('#gridSafetyCheckVehicleInspection').dxDataGrid('instance');\r\n var selectedRow = dataGrid.getSelectedRowsData();\r\n $scope.refreshSafetyCheckVehicleInspectionGrid(0);\r\n // code to reselect the record after refreshing the grid. \r\n (dataGrid as unknown as FacnmDx).selectRows([selectedRow[0].Id], false);\r\n }\r\n else {\r\n $scope.refreshSafetyCheckVehicleInspectionGrid(0);\r\n }\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 2) {\r\n var customertypeid = $scope.safetyCheck.CustomerTypeId;\r\n SafetyCheckFactory.getSafetyCheckForCustomer($scope.safetyCheck.SafetyCheckCompanyId, customertypeid).success(function (data) {\r\n $scope.safetyChecks = data;\r\n if ($scope.isRowSelected) {\r\n // code to get id of the row selected. \r\n dataGrid = $('#gridSafetyCheckCustomer').dxDataGrid('instance');\r\n var selectedRow = dataGrid.getSelectedRowsData();\r\n $scope.refreshSafetyCheckCustomerGrid(0);\r\n // code to reselect the record after refreshing the grid. \r\n (dataGrid as unknown as FacnmDx).selectRows([selectedRow[0].Id], false);\r\n }\r\n else {\r\n $scope.refreshSafetyCheckCustomerGrid(0);\r\n } \r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 5) {\r\n var producttypeid = $scope.safetyCheck.ProductTypeId;\r\n SafetyCheckFactory.getSafetyCheckForProduct($scope.safetyCheck.SafetyCheckCompanyId, producttypeid).success(function (data) {\r\n $scope.safetyChecks = data;\r\n if ($scope.isRowSelected) {\r\n // code to get id of the row selected. \r\n dataGrid = $('#gridSafetyCheckProduct').dxDataGrid('instance');\r\n var selectedRow = dataGrid.getSelectedRowsData();\r\n $scope.refreshSafetyCheckProductGrid(0);\r\n // code to reselect the record after refreshing the grid. \r\n (dataGrid as unknown as FacnmDx).selectRows([selectedRow[0].Id], false);\r\n }\r\n else {\r\n $scope.refreshSafetyCheckProductGrid(0);\r\n }\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 13) {\r\n var producttypeid = $scope.safetyCheck.ProductTypeId;\r\n SafetyCheckFactory.getSafetyCheckForLoadingProduct($scope.safetyCheck.SafetyCheckCompanyId, producttypeid).success(function (data) {\r\n $scope.safetyChecks = data;\r\n if ($scope.isRowSelected) {\r\n // code to get id of the row selected. \r\n dataGrid = $('#gridSafetyCheckProduct').dxDataGrid('instance');\r\n var selectedRow = dataGrid.getSelectedRowsData();\r\n $scope.refreshSafetyCheckProductGrid(0);\r\n // code to reselect the record after refreshing the grid. \r\n (dataGrid as unknown as FacnmDx).selectRows([selectedRow[0].Id], false);\r\n }\r\n else {\r\n $scope.refreshSafetyCheckProductGrid(0);\r\n }\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 7 || $scope.safetyCheck.SafetyCheckGroupId == 8\r\n || $scope.safetyCheck.SafetyCheckGroupId == 9 || $scope.safetyCheck.SafetyCheckGroupId == 10) {\r\n SafetyCheckFactory.getSafetyCheckForOthers($scope.safetyCheck.SafetyCheckCompanyId, $scope.safetyCheck.SafetyCheckGroupId).success(function (data) {\r\n $scope.safetyChecks = data;\r\n if ($scope.isRowSelected) {\r\n // code to get id of the row selected. \r\n dataGrid = $('#gridSafetyCheckOthers').dxDataGrid('instance');\r\n var selectedRow = dataGrid.getSelectedRowsData();\r\n $scope.refreshSafetyCheckOthersGrid(0);\r\n // code to reselect the record after refreshing the grid. \r\n (dataGrid as unknown as FacnmDx).selectRows([selectedRow[0].Id], false);\r\n }\r\n else {\r\n $scope.refreshSafetyCheckOthersGrid(0);\r\n }\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.submitForm = function () {\r\n if ($scope.safetyCheck.SafetyCheckGroupId == 1) {\r\n if ($scope.safetyCheckTextForm.$valid) {\r\n SafetyCheckFactory.saveSafetyCheckForLogin($scope.safetyCheck.selectedSafetyCheckLogin)\r\n .success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Safety check details for login successfully' }); \r\n $scope.cancelForm();\r\n $scope.getSafetyChecks();\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n $scope.safetyCheckTextForm.submitted = false;\r\n } else {\r\n $scope.safetyCheckTextForm.submitted = true;\r\n }\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 11) {\r\n if ($scope.safetyCheckTextForm.$valid) {\r\n SafetyCheckFactory.saveSafetyCheckForLogout($scope.safetyCheck.selectedSafetyCheckLogout)\r\n .success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Safety check details for logout successfully' });\r\n $scope.cancelForm();\r\n $scope.getSafetyChecks();\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n $scope.safetyCheckTextForm.submitted = false;\r\n } else {\r\n $scope.safetyCheckTextForm.submitted = true;\r\n }\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 12) {\r\n if ($scope.safetyCheckTextForm.$valid) {\r\n SafetyCheckFactory.saveSafetyCheckForVehicleInspection($scope.safetyCheck.selectedSafetyCheckVehicleInspection)\r\n .success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Safety check details for vehicle inspection successfully' });\r\n $scope.cancelForm();\r\n $scope.getSafetyChecks();\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n $scope.safetyCheckTextForm.submitted = false;\r\n } else {\r\n $scope.safetyCheckTextForm.submitted = true;\r\n }\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 2) {\r\n if ($scope.safetyCheckTextForm.$valid) {\r\n SafetyCheckFactory.saveSafetyCheckForCustomer($scope.safetyCheck.selectedSafetyCheckCustomer)\r\n .success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Safety check details for customer successfully' }); \r\n $scope.cancelForm();\r\n $scope.getSafetyChecks();\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n $scope.safetyCheckTextForm.submitted = false;\r\n } else {\r\n $scope.safetyCheckTextForm.submitted = true;\r\n }\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 5) {\r\n if ($scope.safetyCheckTextForm.$valid) {\r\n SafetyCheckFactory.saveSafetyCheckForProduct($scope.safetyCheck.selectedSafetyCheckProduct)\r\n .success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Safety check details for product successfully' }); \r\n $scope.cancelForm();\r\n $scope.getSafetyChecks();\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n $scope.safetyCheckTextForm.submitted = false;\r\n } else {\r\n $scope.safetyCheckTextForm.submitted = true;\r\n }\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 13) {\r\n if ($scope.safetyCheckTextForm.$valid) {\r\n SafetyCheckFactory.saveSafetyCheckForLoadingProduct($scope.safetyCheck.selectedSafetyCheckProduct)\r\n .success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Safety check details for loading product successfully' }); \r\n $scope.cancelForm();\r\n $scope.getSafetyChecks();\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n $scope.safetyCheckTextForm.submitted = false;\r\n } else {\r\n $scope.safetyCheckTextForm.submitted = true;\r\n }\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 7 || $scope.safetyCheck.SafetyCheckGroupId == 8\r\n || $scope.safetyCheck.SafetyCheckGroupId == 9 || $scope.safetyCheck.SafetyCheckGroupId == 10) {\r\n if ($scope.safetyCheckTextForm.$valid) {\r\n SafetyCheckFactory.saveSafetyCheckForOthers($scope.safetyCheck.selectedSafetyCheckOthers)\r\n .success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Safety check details successfully' });\r\n $scope.cancelForm();\r\n $scope.getSafetyChecks();\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n $scope.safetyCheckTextForm.submitted = false;\r\n } else {\r\n $scope.safetyCheckTextForm.submitted = true;\r\n }\r\n }\r\n };\r\n\r\n $scope.addNewSafetyCheck = function () { \r\n var companyid = $scope.safetyCheck.SafetyCheckCompanyId;\r\n if ($scope.safetyCheck.SafetyCheckGroupId == 1) {\r\n $scope.formHeader = \"Login - Safety Check Text\";\r\n var vehicletypeid = $scope.safetyCheck.VehicleTypeId;\r\n var dataareaid = $scope.safetyCheck.DataAreaId;\r\n var vehicleid = $scope.safetyCheck.VehicleId;\r\n SafetyCheckFactory.getNewSafetyCheckForLogin(companyid, vehicletypeid, dataareaid, vehicleid).success(function (data) {\r\n $scope.safetyCheck.selectedSafetyCheckLogin = data;\r\n $scope.resetsafetyCheck = angular.copy(data);\r\n $scope.refreshSafetyCheckLoginGrid(0);\r\n $scope.isSafetyCheckLoginFormVisible = true; \r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 11) {\r\n $scope.formHeader = \"Logout - Safety Check Text\";\r\n var vehicletypeid = $scope.safetyCheck.VehicleTypeId;\r\n var dataareaid = $scope.safetyCheck.DataAreaId;\r\n var vehicleid = $scope.safetyCheck.VehicleId;\r\n SafetyCheckFactory.getNewSafetyCheckForLogout(companyid, vehicletypeid, dataareaid, vehicleid).success(function (data) {\r\n $scope.safetyCheck.selectedSafetyCheckLogout = data;\r\n $scope.resetsafetyCheck = angular.copy(data);\r\n $scope.refreshSafetyCheckLogoutGrid(0);\r\n $scope.isSafetyCheckLogoutFormVisible = true;\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 12) {\r\n $scope.formHeader = \"Vehicle Inspection - Safety Check Text\";\r\n var vehicletypeid = $scope.safetyCheck.VehicleTypeId;\r\n var vehicleid = $scope.safetyCheck.VehicleId;\r\n SafetyCheckFactory.getNewSafetyCheckForVehicleInspection(companyid, vehicletypeid).success(function (data) {\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection = data;\r\n $scope.resetsafetyCheck = angular.copy(data);\r\n $scope.refreshSafetyCheckVehicleInspectionGrid(0);\r\n $scope.isSafetyCheckVehicleInspectionFormVisible = true;\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 2) {\r\n $scope.formHeader = \"Customer - Safety Check Text\";\r\n var companyid = $scope.safetyCheck.SafetyCheckCompanyId;\r\n var customertypeid = $scope.safetyCheck.CustomerTypeId;\r\n SafetyCheckFactory.getNewSafetyCheckForCustomer(companyid, customertypeid).success(function (data) {\r\n $scope.safetyCheck.selectedSafetyCheckCustomer = data;\r\n $scope.resetsafetyCheck = angular.copy(data);\r\n $scope.refreshSafetyCheckCustomerGrid(0);\r\n $scope.isSafetyCheckCustomerFormVisible = true;\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 5 || $scope.safetyCheck.SafetyCheckGroupId == 13) {\r\n $scope.formHeader = \"Product - Safety Check Text\";\r\n var companyid = $scope.safetyCheck.SafetyCheckCompanyId;\r\n var productypeid = $scope.safetyCheck.ProductTypeId;\r\n SafetyCheckFactory.getNewSafetyCheckForProduct(companyid, productypeid).success(function (data) {\r\n $scope.safetyCheck.selectedSafetyCheckProduct = data;\r\n $scope.resetsafetyCheck = angular.copy(data);\r\n $scope.refreshSafetyCheckProductGrid(0);\r\n $scope.isSafetyCheckProductFormVisible = true;\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 7 || $scope.safetyCheck.SafetyCheckGroupId == 8\r\n || $scope.safetyCheck.SafetyCheckGroupId == 9 || $scope.safetyCheck.SafetyCheckGroupId == 10) {\r\n $scope.formHeader = \"Others - Safety Check Text\";\r\n var companyid = $scope.safetyCheck.SafetyCheckCompanyId;\r\n var safetyGroupId = $scope.safetyCheck.SafetyCheckGroupId;\r\n SafetyCheckFactory.getNewSafetyCheckForOthers(companyid, safetyGroupId).success(function (data) {\r\n $scope.safetyCheck.selectedSafetyCheckOthers = data;\r\n $scope.resetsafetyCheck = angular.copy(data);\r\n $scope.refreshSafetyCheckOthersGrid(0);\r\n $scope.isSafetyCheckOthersFormVisible = true;\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n $scope.isAddNewTextVisible = false;\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.reset = function () {\r\n if ($scope.safetyCheck.SafetyCheckGroupId == 1) {\r\n $scope.safetyCheck.selectedSafetyCheckLogin = angular.copy($scope.resetsafetyCheck);\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Reset Safety check details for login successfully' });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 11) {\r\n $scope.safetyCheck.selectedSafetyCheckLogout = angular.copy($scope.resetsafetyCheck);\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Reset Safety check details for logout successfully' });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 12) {\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection = angular.copy($scope.resetsafetyCheck);\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Reset Safety check details for vehicle inspection successfully' });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 2) {\r\n $scope.safetyCheck.selectedSafetyCheckCustomer = angular.copy($scope.resetsafetyCheck);\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Reset Safety check details for customer successfully' });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 5 || $scope.safetyCheck.SafetyCheckGroupId == 13) {\r\n $scope.safetyCheck.selectedSafetyCheckProduct = angular.copy($scope.resetsafetyCheck);\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Reset Safety check details for product successfully' });\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 7 || $scope.safetyCheck.SafetyCheckGroupId == 8\r\n || $scope.safetyCheck.SafetyCheckGroupId == 9 || $scope.safetyCheck.SafetyCheckGroupId == 10) {\r\n $scope.safetyCheck.selectedSafetyCheckOthers = angular.copy($scope.resetsafetyCheck);\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Reset Safety check details successfully' });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n $scope.isAddNewTextVisible = true;\r\n $scope.isFormVisible = false;\r\n $scope.isDeleteVisible = false;\r\n $scope.isRowSelected = false;\r\n if ($scope.safetyCheck.SafetyCheckGroupId == 1) {\r\n $scope.isSafetyCheckLoginFormVisible = false;\r\n $scope.safetyCheck.selectedSafetyCheckLogin = null;\r\n var dataGrid = $('#gridSafetyCheckLogin').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 11) {\r\n $scope.isSafetyCheckLogoutFormVisible = false;\r\n $scope.safetyCheck.selectedSafetyCheckLogout = null;\r\n var dataGrid = $('#gridSafetyCheckLogout').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 12) {\r\n $scope.isSafetyCheckVehicleInspectionFormVisible = false;\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection = null;\r\n var dataGrid = $('#gridSafetyCheckVehicleInspection').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 2) {\r\n $scope.isSafetyCheckCustomerFormVisible = false;\r\n $scope.safetyCheck.selectedSafetyCheckCustomer = null;\r\n var dataGrid = $('#gridSafetyCheckCustomer').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 5 || $scope.safetyCheck.SafetyCheckGroupId == 13) {\r\n $scope.isSafetyCheckProductFormVisible = false;\r\n $scope.safetyCheck.selectedSafetyCheckProduct = null;\r\n var dataGrid = $('#gridSafetyCheckProduct').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 7 || $scope.safetyCheck.SafetyCheckGroupId == 8\r\n || $scope.safetyCheck.SafetyCheckGroupId == 9 || $scope.safetyCheck.SafetyCheckGroupId == 10) {\r\n $scope.isSafetyCheckOthersFormVisible = false;\r\n $scope.safetyCheck.selectedSafetyCheckOthers = null;\r\n var dataGrid = $('#gridSafetyCheckOthers').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n }\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n $scope.isAddNewTextVisible = true;\r\n $scope.isFormVisible = false;\r\n $scope.isDeleteVisible = false;\r\n $scope.isRowSelected = false;\r\n if ($scope.safetyCheck.SafetyCheckGroupId == 1) {\r\n var companyid = $scope.safetyCheck.selectedSafetyCheckLogin.CompanyId;\r\n var textid = $scope.safetyCheck.selectedSafetyCheckLogin.Id;\r\n SafetyCheckFactory.deleteSafetyCheck(companyid, textid, $scope.safetyCheck.SafetyCheckGroupId)\r\n .success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Safety check details for login successfully' }); \r\n $scope.getSafetyChecks();\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n $scope.isSafetyCheckLoginFormVisible = false;\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 11) {\r\n var companyid = $scope.safetyCheck.selectedSafetyCheckLogout.CompanyId;\r\n var textid = $scope.safetyCheck.selectedSafetyCheckLogout.Id;\r\n SafetyCheckFactory.deleteSafetyCheck(companyid, textid, $scope.safetyCheck.SafetyCheckGroupId)\r\n .success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Safety check details for logout successfully' });\r\n $scope.getSafetyChecks();\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n $scope.isSafetyCheckLogoutFormVisible = false;\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 12) {\r\n var companyid = $scope.safetyCheck.selectedSafetyCheckVehicleInspection.CompanyId;\r\n var textid = $scope.safetyCheck.selectedSafetyCheckVehicleInspection.Id;\r\n SafetyCheckFactory.deleteSafetyCheck(companyid, textid, $scope.safetyCheck.SafetyCheckGroupId)\r\n .success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Safety check details for vehicle inspection successfully' });\r\n $scope.getSafetyChecks();\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n $scope.isSafetyCheckVehicleInspectionFormVisible = false;\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 2) {\r\n var companyid = $scope.safetyCheck.selectedSafetyCheckCustomer.CompanyId;\r\n var textid = $scope.safetyCheck.selectedSafetyCheckCustomer.Id;\r\n SafetyCheckFactory.deleteSafetyCheck(companyid, textid, $scope.safetyCheck.SafetyCheckGroupId)\r\n .success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Safety check details for customer successfully' }); \r\n $scope.getSafetyChecks();\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n $scope.isSafetyCheckCustomerFormVisible = false;\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 5 || $scope.safetyCheck.SafetyCheckGroupId == 13) {\r\n var companyid = $scope.safetyCheck.selectedSafetyCheckProduct.CompanyId;\r\n var textid = $scope.safetyCheck.selectedSafetyCheckProduct.Id;\r\n SafetyCheckFactory.deleteSafetyCheck(companyid, textid, $scope.safetyCheck.SafetyCheckGroupId)\r\n .success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Safety check details for product successfully' }); \r\n $scope.getSafetyChecks();\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n $scope.isSafetyCheckProductFormVisible = false;\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 7 || $scope.safetyCheck.SafetyCheckGroupId == 8\r\n || $scope.safetyCheck.SafetyCheckGroupId == 9 || $scope.safetyCheck.SafetyCheckGroupId == 10) {\r\n var companyid = $scope.safetyCheck.selectedSafetyCheckOthers.CompanyId;\r\n var textid = $scope.safetyCheck.selectedSafetyCheckOthers.Id;\r\n SafetyCheckFactory.deleteSafetyCheck(companyid, textid, $scope.safetyCheck.SafetyCheckGroupId)\r\n .success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Safety check details successfully' });\r\n $scope.getSafetyChecks();\r\n })\r\n .error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n $scope.isSafetyCheckOthersFormVisible = false;\r\n }\r\n }\r\n \r\n };\r\n\r\n $scope.resetFilterOptions = function () {\r\n $scope.isFormVisible = false;\r\n $scope.isDeleteVisible = false;\r\n $scope.isAddNewTextVisible = false;\r\n $scope.isRowSelected = false;\r\n $scope.isSafetyCheckLoginFormVisible = false;\r\n $scope.isSafetyCheckLogoutFormVisible = false;\r\n $scope.isSafetyCheckCustomerFormVisible = false;\r\n $scope.isSafetyCheckProductFormVisible = false;\r\n $scope.isSafetyCheckVehicleInspectionFormVisible = false;\r\n\r\n\r\n $scope.safetyCheck.SafetyCheckCompanyId = null;\r\n $scope.safetyCheck.SafetyCheckGroupId = null;\r\n $scope.safetyCheck.VehicleTypeId = null;\r\n $scope.safetyCheck.DataAreaId = null;\r\n $scope.safetyCheck.VehicleId = null;\r\n $scope.safetyCheck.CustomerTypeId = null;\r\n $scope.safetyCheck.ProductTypeId = null;\r\n\r\n\r\n // code to unselect row in different tables. \r\n var dataGrid;\r\n try {\r\n dataGrid = $('#gridDevices').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n }\r\n catch (error) { }\r\n try {\r\n dataGrid = $('#gridSafetyCheckLogin').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n }\r\n catch (error) { }\r\n try {\r\n dataGrid = $('#gridSafetyCheckLogout').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n }\r\n catch (error) { }\r\n try {\r\n dataGrid = $('#gridSafetyCheckVehicleInspection').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n }\r\n catch (error) { }\r\n try {\r\n dataGrid = $('#gridSafetyCheckCustomer').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n }\r\n catch (error) { }\r\n try {\r\n dataGrid = $('#gridSafetyCheckProduct').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n }\r\n catch (error) { }\r\n try {\r\n dataGrid = $('#gridSafetyCheckOthers').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n }\r\n catch (error) { }\r\n };\r\n\r\n // Helping functions and events\r\n $scope.IsFilterOptionsResetDisabled = function () {\r\n var isDisabled = true;\r\n isDisabled = IsUndefinedOrNull($scope.safetyCheck.VehicleTypeId) ? true : false;\r\n return isDisabled;\r\n };\r\n\r\n $scope.updateGlobalMandatory = function (GlobalMandatoryState, ObjectType) {\r\n if (ObjectType == \"login\") {\r\n if (GlobalMandatoryState == 0) {\r\n $scope.safetyCheck.selectedSafetyCheckLogin.MandatoryGlobal = 1;\r\n $scope.safetyCheck.selectedSafetyCheckLogin.MandatoryGlobalImage = mandatoryGlobalImg;\r\n }\r\n else if (GlobalMandatoryState == 1) {\r\n $scope.safetyCheck.selectedSafetyCheckLogin.MandatoryGlobal = 0;\r\n $scope.safetyCheck.selectedSafetyCheckLogin.MandatoryGlobalImage = notvisibleImg;\r\n }\r\n }\r\n else if (ObjectType == \"logout\") {\r\n if (GlobalMandatoryState == 0) {\r\n $scope.safetyCheck.selectedSafetyCheckLogout.MandatoryGlobal = 1;\r\n $scope.safetyCheck.selectedSafetyCheckLogout.MandatoryGlobalImage = mandatoryGlobalImg;\r\n }\r\n else if (GlobalMandatoryState == 1) {\r\n $scope.safetyCheck.selectedSafetyCheckLogout.MandatoryGlobal = 0;\r\n $scope.safetyCheck.selectedSafetyCheckLogout.MandatoryGlobalImage = notvisibleImg;\r\n }\r\n }\r\n else if (ObjectType == \"vehicleinspection\") {\r\n if (GlobalMandatoryState == 0) {\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection.MandatoryGlobal = 1;\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection.MandatoryGlobalImage = mandatoryGlobalImg;\r\n }\r\n else if (GlobalMandatoryState == 1) {\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection.MandatoryGlobal = 0;\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection.MandatoryGlobalImage = notvisibleImg;\r\n }\r\n }\r\n else if (ObjectType == \"customer\") {\r\n if (GlobalMandatoryState == 0) {\r\n $scope.safetyCheck.selectedSafetyCheckCustomer.MandatoryGlobal = 1;\r\n $scope.safetyCheck.selectedSafetyCheckCustomer.MandatoryGlobalImage = mandatoryGlobalImg;\r\n }\r\n else if (GlobalMandatoryState == 1) {\r\n $scope.safetyCheck.selectedSafetyCheckCustomer.MandatoryGlobal = 0;\r\n $scope.safetyCheck.selectedSafetyCheckCustomer.MandatoryGlobalImage = notvisibleImg;\r\n }\r\n }\r\n else if (ObjectType == \"product\") {\r\n if (GlobalMandatoryState == 0) {\r\n $scope.safetyCheck.selectedSafetyCheckProduct.MandatoryGlobal = 1;\r\n $scope.safetyCheck.selectedSafetyCheckProduct.MandatoryGlobalImage = mandatoryGlobalImg;\r\n }\r\n else if (GlobalMandatoryState == 1) {\r\n $scope.safetyCheck.selectedSafetyCheckProduct.MandatoryGlobal = 0;\r\n $scope.safetyCheck.selectedSafetyCheckProduct.MandatoryGlobalImage = notvisibleImg;\r\n }\r\n }\r\n else if (ObjectType == \"others\") {\r\n if (GlobalMandatoryState == 0) {\r\n $scope.safetyCheck.selectedSafetyCheckOthers.MandatoryGlobal = 1;\r\n $scope.safetyCheck.selectedSafetyCheckOthers.MandatoryGlobalImage = mandatoryGlobalImg;\r\n }\r\n else if (GlobalMandatoryState == 1) {\r\n $scope.safetyCheck.selectedSafetyCheckOthers.MandatoryGlobal = 0;\r\n $scope.safetyCheck.selectedSafetyCheckOthers.MandatoryGlobalImage = notvisibleImg;\r\n }\r\n }\r\n\r\n };\r\n\r\n function getNextState(state) {\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 function getImageUrl(state) {\r\n if (state == 0) return optionalImg;\r\n else if (state == 1) return mandatoryImg;\r\n else if (state == 2) return notvisibleImg;\r\n };\r\n\r\n $scope.updateMandatoryState = function (MandatoryState, FilterType) { \r\n if (FilterType == \"fleet\") {\r\n if ($scope.safetyCheck.SafetyCheckGroupId == 1) {\r\n $scope.safetyCheck.selectedSafetyCheckLogin.MandatoryForFleet = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckLogin.MandatoryForFleetImage = getImageUrl(MandatoryState);\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 11) {\r\n $scope.safetyCheck.selectedSafetyCheckLogout.MandatoryForFleet = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckLogout.MandatoryForFleetImage = getImageUrl(MandatoryState);\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 12) {\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection.MandatoryForFleet = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection.MandatoryForFleetImage = getImageUrl(MandatoryState);\r\n }\r\n }\r\n else if (FilterType == \"vehicletype\") {\r\n if ($scope.safetyCheck.SafetyCheckGroupId == 1) {\r\n $scope.safetyCheck.selectedSafetyCheckLogin.MandatoryForVehicleType = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckLogin.MandatoryForVehicleTypeImage = getImageUrl(MandatoryState);\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 11) {\r\n $scope.safetyCheck.selectedSafetyCheckLogout.MandatoryForVehicleType = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckLogout.MandatoryForVehicleTypeImage = getImageUrl(MandatoryState);\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 12) {\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection.MandatoryForVehicleType = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection.MandatoryForVehicleTypeImage = getImageUrl(MandatoryState);\r\n }\r\n }\r\n else if (FilterType == \"dataarea\") {\r\n if ($scope.safetyCheck.SafetyCheckGroupId == 1) {\r\n $scope.safetyCheck.selectedSafetyCheckLogin.MandatoryForDataArea = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckLogin.MandatoryForDataAreaImage = getImageUrl(MandatoryState);\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 11) {\r\n $scope.safetyCheck.selectedSafetyCheckLogout.MandatoryForDataArea = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckLogout.MandatoryForDataAreaImage = getImageUrl(MandatoryState);\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 12) {\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection.MandatoryForDataArea = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection.MandatoryForDataAreaImage = getImageUrl(MandatoryState);\r\n }\r\n }\r\n else if (FilterType == \"vehicle\") {\r\n if ($scope.safetyCheck.SafetyCheckGroupId == 1) {\r\n $scope.safetyCheck.selectedSafetyCheckLogin.MandatoryForVehicle = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckLogin.MandatoryForVehicleImage = getImageUrl(MandatoryState);\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 11) {\r\n $scope.safetyCheck.selectedSafetyCheckLogout.MandatoryForVehicle = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckLogout.MandatoryForVehicleImage = getImageUrl(MandatoryState);\r\n }\r\n else if ($scope.safetyCheck.SafetyCheckGroupId == 12) {\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection.MandatoryForVehicle = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckVehicleInspection.MandatoryForVehicleImage = getImageUrl(MandatoryState);\r\n }\r\n }\r\n else if (FilterType == \"customertype\") {\r\n $scope.safetyCheck.selectedSafetyCheckCustomer.MandatoryForCustomerType = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckCustomer.MandatoryForCustomerTypeImage = getImageUrl(MandatoryState);\r\n }\r\n else if (FilterType == \"producttype\") { \r\n $scope.safetyCheck.selectedSafetyCheckProduct.MandatoryForProductType = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckProduct.MandatoryForProductTypeImage = getImageUrl(MandatoryState); \r\n }\r\n else if (FilterType == \"others\") {\r\n $scope.safetyCheck.selectedSafetyCheckOthers.MandatoryForOthers = getNextState(MandatoryState);\r\n $scope.safetyCheck.selectedSafetyCheckOthers.MandatoryForOthersImage = getImageUrl(MandatoryState);\r\n }\r\n };\r\n \r\n}]);\r\n","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('SalestaxFactory', ['$http', 'settings', function ($http, settings) {\r\n var url = settings.ApiURL + settings.BankAccountURL;\r\n\r\n return {\r\n getBankAccountList: function () {\r\n return $http.get(url);\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('SalestaxController', ['$scope', 'SalestaxFactory', function ($scope, SalestaxFactory) {\r\n\r\n \r\n \r\n\r\n $scope.getProductList = function () {\r\n SalestaxFactory.getBankAccountList().success(function (data) {\r\n $scope.bankAccounts = data;\r\n $scope.refreshGrid();\r\n }).error(function (data) {\r\n $scope.error = data;\r\n });\r\n };\r\n\r\n $scope.refreshGrid = function () {\r\n $('#gridTax').dxDataGrid({\r\n dataSource: $scope.bankAccounts,\r\n height: 500,\r\n //selection: { mode: 'single' },\r\n\r\n editing: {\r\n editMode: 'batch',\r\n editEnabled: true\r\n },\r\n columns: [\r\n 'BankName',\r\n 'BankNumber',\r\n 'AccountNumber',\r\n 'Owner',\r\n 'Id'\r\n ]\r\n });\r\n };\r\n\r\n $scope.getProductList();\r\n\r\n}]);","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('StrappingChartProfilesFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getChartProfilesList: function () {\r\n return $http.get(settings.ApiURL + settings.StrappingChartProfilesURL + \"/list/\");\r\n },\r\n getChartProfilesByID: function (id) {\r\n return $http.get(settings.ApiURL + settings.StrappingChartProfilesURL +\"/\"+ id);\r\n },\r\n getOrientation: function() {\r\n return $http.get(settings.ApiURL + settings.StrappingChartProfilesURL + \"/orientation\");\r\n },\r\n getShape: function() {\r\n return $http.get(settings.ApiURL + settings.StrappingChartProfilesURL + \"/shape\");\r\n },\r\n saveChartProfile: function (chartProfile) {\r\n return $http.put(settings.ApiURL + settings.StrappingChartProfilesURL , chartProfile);\r\n },\r\n deleteChartProfile: function (id) {\r\n return $http.delete(settings.ApiURL + settings.StrappingChartProfilesURL + \"/\" + id);\r\n },\r\n getNewChartProfile: function () {\r\n return $http.get(settings.ApiURL + settings.StrappingChartProfilesURL + \"/newchartprofile\");\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('StrappingChartProfilesController', function ($q, $scope, StrappingChartProfilesFactory, $rootScope, settings, masterFactory) {\r\n $rootScope.pageTitle = \"Strapping Chart Profile\"; \r\n $scope.chartProfiles = [];\r\n $scope.chartProfile = {};\r\n $scope.Orientations = [];\r\n $scope.Shapes = [];\r\n $scope.newChartProfile = {};\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.pageSize = 20;\r\n $scope.duplicate = false;\r\n\r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication(); \r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n StrappingChartProfilesFactory.getOrientation().success(function (data) {\r\n $scope.Orientations = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n StrappingChartProfilesFactory.getShape().success(function (data) {\r\n $scope.Shapes = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n StrappingChartProfilesFactory.getNewChartProfile().success(function (data) {\r\n $scope.newChartProfile = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n StrappingChartProfilesFactory.getChartProfilesList().success(function (data) {\r\n $scope.chartProfiles = data;\r\n $scope.refreshGrid(0);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n });\r\n };\r\n\r\n init(0);\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (pageIndex) {\r\n $('#gridChartProfile').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.chartProfiles,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n noDataText: \"No Data Found\", \r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: grdReadyAction,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: $scope.pageSize,\r\n pageIndex: pageIndex\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n {\r\n caption: 'Profile ID',\r\n dataField: 'ProfileId',\r\n cssClass: 'Number',\r\n dataType: 'string',\r\n alignment: 'center',\r\n width: 150\r\n },\r\n {\r\n caption: 'Description',\r\n dataField: 'ProfileDescription',\r\n cssClass: 'Name',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.ProfileDescription)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n $scope.error = \"\";\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n StrappingChartProfilesFactory.getChartProfilesByID(selectedRowsInfo.selectedRowsData[0].Id).success(function (data) {\r\n $scope.chartProfile = data;\r\n $scope.refreshIncrementsSettings();\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Strapping Chart Profiles\";\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.refreshIncrementsSettings = function () {\r\n $('#gridIncrementsSettings').dxDataGrid({\r\n dataSource: $scope.chartProfile.StrappingChartProfileIncrements,\r\n columns: [\r\n {\r\n caption: 'Increment',\r\n dataField: 'Increment',\r\n dataType: 'number',\r\n validationRules: [{ type: 'required' }],\r\n alignment: 'center',\r\n width: '50%',\r\n },\r\n {\r\n caption: 'Volume',\r\n dataField: 'IncrementVolume',\r\n dataType: 'number',\r\n validationRules: [{ type: 'required' }],\r\n width: '50%',\r\n alignment: 'center',\r\n }\r\n ], \r\n editing: {\r\n editEnabled: true,\r\n insertEnabled: true,\r\n removeEnabled: true\r\n },\r\n filterRow: {\r\n visible: false\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n height: 470,\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n paging: {\r\n pageSize: 30\r\n },\r\n sorting: {\r\n mode: 'none'\r\n },\r\n rowAlternationEnabled: false,\r\n rowInserted: function (rowInfo) {\r\n rowInfo.data.Id = -1;\r\n },\r\n selection: { mode: 'single' },\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true\r\n }).dxDataGrid('instance');\r\n\r\n var grd = document.getElementById(\"gridIncrementsSettings\");\r\n if (grd.getElementsByClassName(\"dx-datagrid-header-panel\")[0].childNodes.length == 1)\r\n $(' Increments and Volume ').appendTo(grd.getElementsByClassName(\"dx-datagrid-header-panel\")[0]);\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.addNewEntity = function () {\r\n $rootScope.pageTitle = \"New Chart Profile\";\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.chartProfile = angular.copy($scope.newChartProfile);\r\n $scope.chartProfile.StrappingChartProfileIncrements = [];\r\n $scope.refreshIncrementsSettings();\r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n StrappingChartProfilesFactory.deleteChartProfile($scope.chartProfile.Id).success(function (data) {\r\n StrappingChartProfilesFactory.getChartProfilesList().success(function (data) {\r\n var dataGrid = $('#gridChartProfile').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.chartProfiles = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted successfully' });\r\n });\r\n \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridChartProfile').dxDataGrid('instance');\r\n dataGrid.clearSelection(); \r\n $scope.isFormVisible = false; \r\n $scope.strappingChartProfilesForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { \r\n $('#loadingModal').modal({ backdrop: 'static' }); \r\n StrappingChartProfilesFactory.getChartProfilesByID($scope.chartProfile.Id).success(function (data) {\r\n $scope.chartProfile = data;\r\n $scope.refreshIncrementsSettings();\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n angular.copy($scope.newChartProfile, $scope.chartProfile);\r\n $scope.refreshIncrementsSettings();\r\n } \r\n \r\n $scope.strappingChartProfilesForm.$setPristine();\r\n $scope.strappingChartProfilesForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Chart Profile details were reset' }); \r\n };\r\n\r\n $scope.submitForm = function () {\r\n const unique = new Set();\r\n\r\n $scope.duplicate = $scope.chartProfile.StrappingChartProfileIncrements.some(element => unique.size === unique.add(element.Increment).size);\r\n\r\n if($scope.duplicate) {\r\n $('#error_message').fadeIn();\r\n $scope.strappingChartProfilesForm.submitted = true;\r\n $('#error_message').fadeOut(5000);\r\n }\r\n else if ($scope.strappingChartProfilesForm.$valid && $scope.chartProfile.StrappingChartProfileIncrements.length > 0) {\r\n $scope.saveUllageChartProfile();\r\n $scope.strappingChartProfilesForm.submitted = false;\r\n }\r\n else {\r\n $scope.strappingChartProfilesForm.submitted = true;\r\n }\r\n };\r\n\r\n $scope.saveUllageChartProfile = function () {\r\n if (IsUndefinedOrNull($scope.chartProfile.Id) || $scope.chartProfile.Id <= 0) {\r\n $scope.chartProfile.Id = -1;\r\n }\r\n StrappingChartProfilesFactory.saveChartProfile($scope.chartProfile).success(function (data) {\r\n StrappingChartProfilesFactory.getChartProfilesList().success(function (data) {\r\n var dataGrid = $('#gridChartProfile').dxDataGrid('instance');\r\n var pageindex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.chartProfiles = data;\r\n if ($scope.chartProfile.Id > 0) {\r\n $scope.refreshGrid(pageindex)\r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex);\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n if ($scope.chartProfile.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created successfully' });\r\n }\r\n }); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () { \r\n });\r\n }\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridChartProfile', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridChartProfile', settings.GridMarginHeight);\r\n }\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n }; \r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.filter = function (input, id) {\r\n var i = 0, len = input.length;\r\n for (; i < len; i++) {\r\n if (+input[i].Id == +id) {\r\n return input[i];\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n\r\n});\r\n","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('TimeLogFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getTimeLogList: function () {\r\n return $http.get(settings.ApiURL + settings.TimeLogURL);\r\n },\r\n getTimeLogTypeList: function () {\r\n return $http.get(settings.ApiURL + settings.TimeLogURL + \"/timelogtypes\");\r\n },\r\n getTimeLogById: function (TypeId, Id, Number) {\r\n return $http.get(settings.ApiURL + settings.TimeLogURL + \"/\" + TypeId + \"/\" + Id + \"/\" + Number);\r\n }, \r\n getNewTimeLog: function () {\r\n return $http.get(settings.ApiURL + settings.TimeLogURL + \"/newtimelog\");\r\n },\r\n saveTimeLog: function (timeLog) {\r\n return $http.put(settings.ApiURL + settings.TimeLogURL, timeLog);\r\n }, \r\n deleteTimeLog: function (TypeId, Id, Number) {\r\n return $http.delete(settings.ApiURL + settings.TimeLogURL + \"/\" + TypeId + \"/\" + Id + \"/\" + Number);\r\n } \r\n };\r\n}]);\r\n\r\napp.controller('TimeLogController', ['$q', '$scope', 'TimeLogFactory', '$rootScope', 'settings', 'masterFactory',\r\n function ($q, $scope, TimeLogFactory, $rootScope, settings, masterFactory) {\r\n $rootScope.pageTitle = \"Time Log\";\r\n $scope.timeLogList = [];\r\n $scope.timeLogTypeList = [];\r\n $scope.timeLog = {};\r\n $scope.originalTimeLog\r\n $scope.newtimeLog = {};\r\n $scope.priceGroupText = \"\";\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.pageSize = 20; \r\n\r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication();\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n TimeLogFactory.getTimeLogList().success(function (data) {\r\n $scope.timeLogList = data;\r\n $scope.refreshGrid(0);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n TimeLogFactory.getTimeLogTypeList().success(function (data) {\r\n $scope.timeLogTypeList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n TimeLogFactory.getNewTimeLog().success(function (data) {\r\n $scope.newtimeLog = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n init(0);\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex) { \r\n $('#gridTimeLog').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.timeLogList,\r\n type: 'array',\r\n key: [\"TimeLogType\", \"TimeLogId\", \"Number\"]\r\n }\r\n },\r\n noDataText: \"No Time Logs Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: grdReadyAction,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: $scope.pageSize,\r\n pageIndex: PageIndex\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [ \r\n {\r\n caption: 'No',\r\n dataField: 'Number',\r\n cssClass: 'Number',\r\n alignment: 'center',\r\n dataType: 'number',\r\n width: 100\r\n },\r\n {\r\n caption: 'Time Log',\r\n dataField: 'TimeLogName',\r\n cssClass: 'TimeLogName',\r\n dataType: 'string',\r\n alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.TimeLogName)\r\n .append(\"
\")\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left'); \r\n }\r\n }\r\n ],\r\n wordWrapEnabled: true,\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n TimeLogFactory.getTimeLogById(selectedRowsInfo.selectedRowsData[0].TimeLogType, selectedRowsInfo.selectedRowsData[0].TimeLogId, \r\n selectedRowsInfo.selectedRowsData[0].Number).success(function (data) {\r\n $scope.timeLog = data;\r\n $scope.originalTimeLog = angular.copy(data);\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = true;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"Time Log\";\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n }\r\n });\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.addNewEntity = function () {\r\n $rootScope.pageTitle = \"New Time Log\";\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.timeLog = angular.copy($scope.newtimeLog); \r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $scope.deletMessage = 'Are you sure you want to delete?';\r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n $scope.error = '';\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n TimeLogFactory.deleteTimeLog($scope.timeLog.TimeLogType, $scope.timeLog.TimeLogId, $scope.timeLog.Number).success(function (data) {\r\n TimeLogFactory.getTimeLogList().success(function (data) {\r\n var dataGrid = $('#gridTimeLog').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.timeLogList = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageIndex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Time Log successfully' });\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n \r\n }\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridTimeLog').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false;\r\n $scope.timeLogForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db bankaccount and set to scope.bankaccount.\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n TimeLogFactory.getTimeLogById($scope.originalTimeLog.TimeLogType, $scope.originalTimeLog.TimeLogId, $scope.originalTimeLog.Number).success(function (data) {\r\n $scope.timeLog = data; \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n $scope.error = '';\r\n });\r\n }\r\n else {\r\n $scope.timeLog = angular.copy($scope.newtimeLog);\r\n }\r\n $scope.timeLogForm.$setPristine();\r\n $scope.timeLogForm.submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Time Log details were reset' });\r\n };\r\n\r\n $scope.submitForm = function () {\r\n $scope.error = '';\r\n if ($scope.timeLogForm.$valid) {\r\n $scope.saveEntity();\r\n $scope.timeLogForm.submitted = false;\r\n } else {\r\n $scope.timeLogForm.submitted = true;\r\n }\r\n };\r\n\r\n $scope.saveEntity = function () {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n TimeLogFactory.saveTimeLog($scope.timeLog).success(function (data) { \r\n $scope.closeModelStateErrors(); \r\n $scope.error = '';\r\n TimeLogFactory.getTimeLogList().success(function (data) { \r\n var dataGrid = $('#gridTimeLog').dxDataGrid('instance');\r\n var pageIndex = dataGrid.pageIndex();\r\n $scope.pageSize = dataGrid.pageSize();\r\n $scope.timeLogList = data;\r\n $scope.refreshGrid(pageIndex); \r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n if ($scope.timeLog.TimeLogId > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Time Log successfully' });\r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Time Log successfully' });\r\n }\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridCustomer', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridCustomer', settings.GridMarginHeight);\r\n };\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n }]);","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('ConfigurationFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getConfigurationGroup: function () {\r\n return $http.get(settings.ApiURL + settings.ConfigurationURL + \"/configurationgroup\");\r\n },\r\n getConfigurationValue: function (configId, deviceId, driverId, groupId) {\r\n return $http.get(settings.ApiURL + settings.ConfigurationURL + \"/getconfigvalue/\" + configId + \"/\" + deviceId + \"/\" + driverId\r\n + \"/\" + groupId + '?noCache=' + new Date().getTime());\r\n },\r\n getConfigurationValues: function (groupId, deviceId, driverId, configGroupId) {\r\n return $http.get(settings.ApiURL + settings.ConfigurationURL + \"/\" + groupId + \"/\" + deviceId + \"/\" + driverId\r\n + \"/\" + configGroupId + '?noCache=' + new Date().getTime());\r\n },\r\n getConfigurationValuesBySearch: function (searchString, configurationType, deviceDriverId, configGroupId) {\r\n return $http.get(settings.ApiURL + settings.ConfigurationURL + \"/search/\" + searchString + \"/\" + configurationType\r\n + \"/\" + deviceDriverId + \"/\" + configGroupId);\r\n },\r\n getConfigurationValuesByGroupSpecific: function (groupId) {\r\n return $http.get(settings.ApiURL + settings.ConfigurationURL + \"/groupspecific/\" + groupId)\r\n },\r\n getConfigurationValuesByDeviceId: function (deviceId) {\r\n return $http.get(settings.ApiURL + settings.ConfigurationURL + \"/device/\" + deviceId)\r\n },\r\n deleteConfigurationValue: function (configId, deviceId, driverId, groupId) {\r\n return $http.delete(settings.ApiURL + settings.ConfigurationURL + \"/\" + configId + \"/\" + deviceId + \"/\" + driverId + \"/\" + groupId + '?noCache=' + new Date().getTime());\r\n },\r\n saveConfigurationValues: function (configurations, groupId, deviceId, driverId, configGroupId, isSearchActive) {\r\n var data = {\r\n configurationValueVM: configurations,\r\n configGroupId: isSearchActive == true ? null : configGroupId, //gruppe\r\n deviceId: deviceId,\r\n driverId: driverId,\r\n groupId: groupId, //svzgroupid\r\n isSearchActive: isSearchActive\r\n };\r\n return $http.put(settings.ApiURL + settings.ConfigurationURL + \"/paste\", data);\r\n },\r\n saveConfigurationValue: function (configValue) {\r\n return $http.put(settings.ApiURL + settings.ConfigurationURL + \"/save1\", configValue);\r\n },\r\n saveModalConfigurationValues: function (configuration) {\r\n return $http.put(settings.ApiURL + settings.ConfigurationURL + \"/complex\", configuration);\r\n },\r\n getDeviceList: function () {\r\n return $http.get(settings.ApiURL + settings.DeviceURL);\r\n },\r\n getDriverList: function () {\r\n return $http.get(settings.ApiURL + settings.DriverURL);\r\n },\r\n getConfigurationGroupList: function () {\r\n return $http.get(settings.ApiURL + settings.ConfigurationGroupURL);\r\n },\r\n getConfigurationGroupValues: function (groupId) {\r\n return $http.get(settings.ApiURL + settings.ConfigurationGroupURL + \"/\" + groupId);\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('TranspacConfigurationController', ['$scope', '$parse', 'ConfigurationFactory', '$rootScope', 'settings', 'masterFactory', '$uibModal',\r\n function ($scope, $parse, ConfigurationFactory, $rootScope, settings, masterFactory, $uibModal) {\r\n $rootScope.pageTitle = \"TransPac Configuration\";\r\n $scope.configurationGroups = [];\r\n $scope.configurationGroupsList = [];\r\n $scope.selectedConfigurationGroupId = null;\r\n $scope.selectedGroupSpecificConfigurationGroup = false;\r\n $scope.groupSpecificConfigurationGroupNameId = null;\r\n $scope.selectedDeviceSpecific = false;\r\n $scope.configurationValues = [];\r\n $scope.groupConfigurationValues = [];\r\n $scope.configurationValues_Copy = {\r\n CopiedFromConfigurationType: null,\r\n SelectedGroupId: null,\r\n CopiedValue: []\r\n };\r\n $scope.error = \"\";\r\n $scope.isFormVisible = false;\r\n $scope.submitted = false;\r\n $scope.isSearchActive = false;\r\n $scope.searchString = \"\";\r\n\r\n // Initialization - this runs on load\r\n var init = function () {\r\n masterFactory.verifyAuthentication();\r\n $scope.selectedConfigurationType = \"1\";\r\n $scope.submitted = false;\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ConfigurationFactory.getConfigurationGroup().success(function (data) {\r\n $scope.configurationGroups = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n init();\r\n\r\n // On selecting a configuration from left side list\r\n $scope.getConfigurationValuesByGroupId = function (groupId, message) {\r\n $scope.closeAlert();\r\n $scope.selectedGroupSpecificConfigurationGroup = false;\r\n $scope.selectedConfigurationGroupId = groupId;// list of groups on the left\r\n $scope.selectedDeviceSpecific = false;\r\n $scope.searchString = \"\";\r\n $scope.isSearchActive = false;\r\n $scope.configurationValues = [];\r\n var deviceId = null;\r\n var driverId = null;\r\n var configGroupId = null;\r\n if ($scope.selectedConfigurationType == \"2\" && $scope.selectedDeviceDriver != null) {\r\n deviceId = $scope.selectedDeviceDriver;\r\n }\r\n else if ($scope.selectedConfigurationType == \"3\" && $scope.selectedDeviceDriver != null) {\r\n driverId = $scope.selectedDeviceDriver;\r\n }\r\n else if ($scope.selectedConfigurationType == \"4\") {\r\n configGroupId = $scope.groupSpecificConfigurationGroupNameId;\r\n }\r\n if ($scope.selectedConfigurationType == '1' || ($scope.selectedConfigurationType == '2' && deviceId != null) ||\r\n ($scope.selectedConfigurationType == '3' && driverId != null) ||\r\n ($scope.selectedConfigurationType == \"4\" && $scope.groupSpecificConfigurationGroupNameId != null)) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ConfigurationFactory.getConfigurationValues(groupId, deviceId, driverId, configGroupId).success(function (data) {\r\n $scope.configurationValues = data;\r\n $scope.isFormVisible = true;\r\n if (message != \"\")\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: message });\r\n }).error(function (data, status) {\r\n $scope.isFormVisible = false;\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.getConfigurationValuesByConfigurationGroupId = function () {\r\n $scope.closeAlert();\r\n $scope.selectedGroupSpecificConfigurationGroup = true;\r\n $scope.selectedConfigurationGroupId = null;\r\n $scope.selectedDeviceSpecific = false;\r\n $scope.searchString = \"\";\r\n $scope.isSearchActive = false;\r\n $scope.configurationValues = [];\r\n if ($scope.selectedConfigurationType == \"4\" && $scope.groupSpecificConfigurationGroupNameId != null) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ConfigurationFactory.getConfigurationValuesByGroupSpecific($scope.groupSpecificConfigurationGroupNameId).success(function (data) {\r\n $scope.configurationValues = data;\r\n $scope.isFormVisible = true;\r\n if ($scope.configurationValues != null && $scope.configurationValues.length == 0) {\r\n $scope.isFormVisible = false;\r\n $scope.notify.add({ type: 'danger', title: 'Error!', body: 'No Configuration values found!' });\r\n }\r\n }).error(function (data, status) {\r\n $scope.isFormVisible = false;\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.getConfigurationValuesByDeviceId = function () {\r\n $scope.closeAlert();\r\n $scope.selectedConfigurationGroupId = null;\r\n $scope.selectedGroupSpecificConfigurationGroup = false; \r\n $scope.selectedDeviceSpecific = true;\r\n $scope.searchString = \"\";\r\n $scope.isSearchActive = false;\r\n $scope.configurationValues = [];\r\n if ($scope.selectedConfigurationType == \"2\" && $scope.selectedDeviceDriver != null) {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ConfigurationFactory.getConfigurationValuesByDeviceId($scope.selectedDeviceDriver).success(function (data) {\r\n $scope.configurationValues = data;\r\n $scope.isFormVisible = true;\r\n if ($scope.configurationValues != null && $scope.configurationValues.length == 0) {\r\n $scope.isFormVisible = false;\r\n $scope.notify.add({ type: 'danger', title: 'Error!', body: 'No Configuration values found!' });\r\n }\r\n }).error(function (data, status) {\r\n $scope.isFormVisible = false;\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n // searching configuration\r\n $scope.searchConfiguration = function (searchString) {\r\n $scope.error = null;\r\n var deviceDriverId = null;\r\n var configGroupId = null;\r\n if (!IsUndefinedOrNull(searchString)) { \r\n if (searchString.length == 1 && isNaN(searchString)) { // if length == 1 and is not a number \r\n $scope.isFormVisible = false;\r\n } \r\n else if (searchString.length >= 2 || (searchString.length == 1 && !isNaN(searchString))) { // if length > 1 || if length ==1 and is a number number\r\n $scope.selectedConfigurationGroupId = null;\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n\r\n if ($scope.selectedConfigurationType == \"2\" || $scope.selectedConfigurationType == \"3\") {\r\n if ($scope.selectedDeviceDriver != null && $scope.selectedDeviceDriver != -1)\r\n deviceDriverId = $scope.selectedDeviceDriver;\r\n }\r\n else if ($scope.selectedConfigurationType == \"4\") {\r\n configGroupId = $scope.groupSpecificConfigurationGroupNameId;\r\n }\r\n\r\n ConfigurationFactory.getConfigurationValuesBySearch(searchString, $scope.selectedConfigurationType, deviceDriverId, configGroupId).success(function (data) {\r\n $scope.configurationValues = data;\r\n $scope.isFormVisible = true;\r\n $scope.isSearchActive = true;\r\n }).error(function (data, status) {\r\n $scope.isFormVisible = false;\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n } \r\n } \r\n };\r\n\r\n $scope.uiSelectStatusEnableDisable = function (control) {\r\n var str = control;\r\n // Get the model\r\n var model = $parse(str);\r\n // Assigns a value to it\r\n if ($scope.selectedConfigurationType != '1') {\r\n model.assign($scope, true);\r\n }\r\n else model.assign($scope, false);\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.copyConfigurationValue = function () {\r\n $scope.configurationValues_Copy.CopiedFromConfigurationType = $scope.selectedConfigurationType;\r\n $scope.configurationValues_Copy.SelectedGroupId = $scope.selectedConfigurationGroupId != null ? $scope.selectedConfigurationGroupId : null;\r\n $scope.configurationValues_Copy.CopiedValue = angular.copy($scope.configurationValues);\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Configuration values copied successfully!' });\r\n };\r\n\r\n $scope.pasteConfigurationValue = function () {\r\n if ($scope.configurationValues_Copy.CopiedValue.length > 0) {\r\n // UI paste values \r\n // Then save values to Server\r\n if ($scope.selectedConfigurationGroupId != null && $scope.selectedConfigurationGroupId == $scope.configurationValues_Copy.SelectedGroupId\r\n && $scope.configurationValues_Copy.CopiedFromConfigurationType == $scope.selectedConfigurationType ) {\r\n // copy from groupid to groupid && from device to device / driver to driver\r\n if ($scope.selectedConfigurationType == \"2\") { // device to device copy\r\n for (var i = 0; i < $scope.configurationValues_Copy.CopiedValue.length; i++) {\r\n if ($scope.configurationValues[i].Id == $scope.configurationValues_Copy.CopiedValue[i].Id) {\r\n if ($scope.configurationValues_Copy.CopiedValue[i].Type == 'xml') $scope.configurationValues[i].DeviceXmlSchema = $scope.configurationValues_Copy.CopiedValue[i].DeviceXmlSchema;\r\n else if ($scope.configurationValues_Copy.CopiedValue[i].Type == 'bool') $scope.configurationValues[i].DeviceBooleanValue = $scope.configurationValues_Copy.CopiedValue[i].DeviceBooleanValue;\r\n else if ($scope.configurationValues_Copy.CopiedValue[i].Type == 'flags') $scope.configurationValues[i].DeviceFlagsValue = $scope.configurationValues_Copy.CopiedValue[i].DeviceFlagsValue;\r\n else $scope.configurationValues[i].DeviceValue = $scope.configurationValues_Copy.CopiedValue[i].DeviceValue;\r\n }\r\n }\r\n }\r\n else if ($scope.selectedConfigurationType == \"3\") { // driver to driver copy\r\n for (i = 0; i < $scope.configurationValues_Copy.CopiedValue.length; i++) {\r\n if ($scope.configurationValues[i].Id == $scope.configurationValues_Copy.CopiedValue[i].Id) {\r\n if ($scope.configurationValues_Copy.CopiedValue[i].Type == 'xml') $scope.configurationValues[i].DriverXmlSchema = $scope.configurationValues_Copy.CopiedValue[i].DriverXmlSchema;\r\n else if ($scope.configurationValues_Copy.CopiedValue[i].Type == 'bool') $scope.configurationValues[i].DriverBooleanValue = $scope.configurationValues_Copy.CopiedValue[i].DriverBooleanValue;\r\n else if ($scope.configurationValues_Copy.CopiedValue[i].Type == 'flags') $scope.configurationValues[i].DriverFlagsValue = $scope.configurationValues_Copy.CopiedValue[i].DriverFlagsValue;\r\n else $scope.configurationValues[i].DriverValue = $scope.configurationValues_Copy.CopiedValue[i].DriverValue;\r\n }\r\n }\r\n }\r\n // Then save values to Server\r\n var groupId = null, deviceId = null, driverId = null, configGroupId = null;\r\n if ($scope.selectedConfigurationType == \"2\" && $scope.selectedDeviceDriver != null) {\r\n deviceId = $scope.selectedDeviceDriver;\r\n }\r\n else if ($scope.selectedConfigurationType == \"3\" && $scope.selectedDeviceDriver != null) {\r\n driverId = $scope.selectedDeviceDriver;\r\n }\r\n else if ($scope.selectedConfigurationType == \"4\") {\r\n groupId = $scope.groupSpecificConfigurationGroupNameId;\r\n }\r\n configGroupId = $scope.selectedConfigurationGroupId;\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ConfigurationFactory.saveConfigurationValues($scope.configurationValues, groupId, deviceId, driverId, configGroupId, $scope.isSearchActive).success(function (data) {\r\n // code to get the configuration group/ search string values again and display. \r\n if (!IsUndefinedOrNull($scope.searchString) && $scope.isSearchActive) {\r\n $scope.searchConfiguration($scope.searchString);\r\n }\r\n else if ($scope.selectedConfigurationGroupId == null)\r\n $scope.getConfigurationValuesByConfigurationGroupId();\r\n else\r\n $scope.getConfigurationValuesByGroupId($scope.selectedConfigurationGroupId, \"\"); \r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Configuration Values pasted successfully' });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n \r\n \r\n }\r\n //else if ($scope.selectedConfigurationGroupId == null && $scope.selectedConfigurationType == \"4\"\r\n // && $scope.configurationValues_Copy.SelectedGroupId == null) {\r\n // // copy from config group to config group\r\n // for (var i = 0; i < $scope.configurationValues_Copy.CopiedValue.length; i++) {\r\n // $scope.configurationValues_Copy.CopiedValue[i].DefaultValue = null;\r\n // $scope.configurationValues_Copy.CopiedValue[i].DefaultFlagsValue = null;\r\n // $scope.configurationValues_Copy.CopiedValue[i].DefaultBooleanValue = null;\r\n // $scope.configurationValues_Copy.CopiedValue[i].DefaultXmlSchema = null;\r\n // }\r\n // $scope.configurationValues = angular.copy($scope.configurationValues_Copy.CopiedValue); \r\n // $scope.isFormVisible = true;\r\n // $scope.notify.add({ type: 'success', title: 'Success!', body: 'Configuration values pasted successfully!' });\r\n //}\r\n else {\r\n $scope.notify.add({ type: 'danger', title: 'Error!', body: 'Cannot paste configuration values!' });\r\n }\r\n }\r\n };\r\n\r\n $scope.submitForm = function () {\r\n //if ($scope.configurationForm.$valid) {\r\n // $scope.saveConfigurationValues();\r\n // $scope.configurationForm.submitted = false;\r\n //} else {\r\n // $scope.configurationForm.submitted = true;\r\n //}\r\n };\r\n\r\n $scope.saveConfigurationValues = function () {\r\n var groupId = null, deviceId = null, driverId = null, configGroupId = null;\r\n if ($scope.selectedConfigurationType == \"2\" && $scope.selectedDeviceDriver != null) {\r\n deviceId = $scope.selectedDeviceDriver;\r\n }\r\n else if ($scope.selectedConfigurationType == \"3\" && $scope.selectedDeviceDriver != null) {\r\n driverId = $scope.selectedDeviceDriver;\r\n }\r\n else if ($scope.selectedConfigurationType == \"4\") {\r\n groupId = $scope.groupSpecificConfigurationGroupNameId; \r\n }\r\n configGroupId = $scope.selectedConfigurationGroupId; \r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n ConfigurationFactory.saveConfigurationValues($scope.configurationValues, groupId, deviceId, driverId, configGroupId, $scope.isSearchActive).success(function (data) {\r\n // code to get the configuration group/ search string values again and display. \r\n if (!IsUndefinedOrNull($scope.searchString) && $scope.isSearchActive) {\r\n $scope.searchConfiguration($scope.searchString);\r\n }\r\n else if ($scope.selectedConfigurationGroupId == null)\r\n $scope.getConfigurationValuesByConfigurationGroupId();\r\n else\r\n $scope.getConfigurationValuesByGroupId($scope.selectedConfigurationGroupId, \"\");\r\n ToggleYellowToGreen();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Configuration details successfully' });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n $scope.saveConfigurationValueOnBlur = function (configValue, index) {\r\n if (configValue.IsChanged == true) {\r\n // check if field exist's in the form and if it is valid \r\n // or\r\n // check if field doesn't exist's \r\n if ( (\r\n !IsUndefinedOrNull($scope.transPacConfigurationForm[configValue.Type + configValue.Id]) && \r\n !$scope.transPacConfigurationForm[configValue.Type + configValue.Id].$error.pattern\r\n ) || \r\n (\r\n IsUndefinedOrNull($scope.transPacConfigurationForm[configValue.Type + configValue.Id])\r\n )\r\n ) {\r\n // Saving default config value id, value\r\n if ($scope.selectedConfigurationType == \"1\") {\r\n\r\n }\r\n // Saving Device Config Value device id, id, value\r\n else if ($scope.selectedConfigurationType == \"2\") {\r\n configValue.deviceId = $scope.selectedDeviceDriver;\r\n }\r\n // Saving Driver Config Value driver id, id, value\r\n else if ($scope.selectedConfigurationType == \"3\") {\r\n configValue.driverId = $scope.selectedDeviceDriver;\r\n }\r\n // Saving Group Config Value group id, id, value\r\n else if ($scope.selectedConfigurationType == \"4\") {\r\n configValue.GroupId = $scope.groupSpecificConfigurationGroupNameId;\r\n }\r\n ConfigurationFactory.saveConfigurationValue(configValue).success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Saved Configuration ' + configValue.Id + ' - ' + configValue.Name });\r\n if ($scope.selectedConfigurationType == \"2\" && $scope.selectedDeviceSpecific == true) {\r\n $scope.getConfigurationValuesByDeviceId();\r\n }\r\n else if ($scope.selectedConfigurationType == \"4\" && $scope.selectedGroupSpecificConfigurationGroup == true) {\r\n $scope.getConfigurationValuesByConfigurationGroupId();\r\n }\r\n else // code to get config value by id to display deleted value. \r\n ConfigurationFactory.getConfigurationValue(configValue.Id, configValue.deviceId, configValue.driverId, configValue.GroupId).success(function (data) {\r\n $scope.configurationValues[index] = angular.copy(data);\r\n }).error(function () {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n configValue.IsChanged = false;\r\n configValue.IsSubmitted = false;\r\n }); \r\n }\r\n else { // invalid form\r\n configValue.IsSubmitted = true;\r\n }\r\n } \r\n };\r\n\r\n $scope.saveFlagsConfigurationValueOnChange = function (configValue) {\r\n configValue.IsChanged = true;\r\n $scope.saveConfigurationValueOnBlur(configValue);\r\n };\r\n\r\n $scope.resetConfigurationValue = function (configValue, configValueType) {\r\n if (configValue.IsChanged == true) {\r\n // Cancel default config value\r\n if (configValueType == 'DEFAULT') {\r\n if (configValue.Type == \"xml\") {\r\n configValue.DefaultXmlSchema = configValue.OriginalXmlSchema;\r\n }\r\n else if (configValue.Type == \"bool\") {\r\n configValue.DefaultBooleanValue = configValue.OriginalBooleanValue;\r\n }\r\n else if (configValue.Type == \"flags\") {\r\n configValue.DefaultFlagsValue = configValue.OriginalFlagsValue;\r\n }\r\n else if (configValue.Type == \"color\" || configValue.Type == \"dastr\" || configValue.Type == \"float\" ||\r\n configValue.Type == \"int\" || configValue.Type == \"str\") {\r\n configValue.DefaultValue = configValue.OriginalValue;\r\n }\r\n configValue.IsChanged = false;\r\n }\r\n // Cancel Device Config Value\r\n else if (configValueType == 'DEVICE') {\r\n if (configValue.Type == \"xml\") {\r\n configValue.DeviceXmlSchema = configValue.OriginalXmlSchema;\r\n }\r\n else if (configValue.Type == \"bool\") {\r\n configValue.DeviceBooleanValue = configValue.OriginalBooleanValue;\r\n }\r\n else if (configValue.Type == \"flags\") {\r\n configValue.DeviceFlagsValue = configValue.OriginalFlagsValue;\r\n }\r\n else if (configValue.Type == \"color\" || configValue.Type == \"dastr\" || configValue.Type == \"float\" ||\r\n configValue.Type == \"int\" || configValue.Type == \"str\") {\r\n configValue.DeviceValue = configValue.OriginalValue;\r\n }\r\n configValue.IsChanged = false;\r\n }\r\n // Cancel Driver Config Value\r\n else if (configValueType == 'DRIVER') {\r\n if (configValue.Type == \"xml\") {\r\n configValue.DriverXmlSchema = configValue.OriginalXmlSchema;\r\n }\r\n else if (configValue.Type == \"bool\") {\r\n configValue.DriverBooleanValue = configValue.OriginalBooleanValue;\r\n }\r\n else if (configValue.Type == \"flags\") {\r\n configValue.DriverFlagsValue = configValue.OriginalFlagsValue;\r\n }\r\n else if (configValue.Type == \"color\" || configValue.Type == \"dastr\" || configValue.Type == \"float\" ||\r\n configValue.Type == \"int\" || configValue.Type == \"str\") {\r\n configValue.DriverValue = configValue.OriginalValue;\r\n }\r\n configValue.IsChanged = false;\r\n }\r\n // Cancel Group Config Value \r\n else if (configValueType == 'GROUP') {\r\n if (configValue.Type == \"xml\") {\r\n configValue.GroupXmlSchema = configValue.OriginalXmlSchema;\r\n }\r\n else if (configValue.Type == \"bool\") {\r\n configValue.GroupBooleanValue = configValue.OriginalBooleanValue;\r\n }\r\n else if (configValue.Type == \"flags\") {\r\n configValue.GroupFlagsValue = configValue.OriginalFlagsValue;\r\n }\r\n else if (configValue.Type == \"color\" || configValue.Type == \"dastr\" || configValue.Type == \"float\" ||\r\n configValue.Type == \"int\" || configValue.Type == \"str\") {\r\n configValue.GroupValue = configValue.OriginalValue;\r\n }\r\n configValue.IsChanged = false;\r\n }\r\n }\r\n };\r\n\r\n $scope.preDeleteConfigurationValue = function (configValue, index) {\r\n if (configValue.Type == 'xml') {\r\n //Display delete confirmation modal\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n templateUrl: 'app-legacy/Entities/templates/deleteComplexConfigurationModal.html',\r\n controller: 'DeleteComplexConfigurationModalController',\r\n controllerAs: 'modalVm',\r\n size: 'sm',\r\n scope: $scope,\r\n resolve: {\r\n DeleteModalValues: function () {\r\n var returnvalue = { configValue: configValue, index: index };\r\n return returnvalue;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function (value) {\r\n if (value == 1) {\r\n $scope.deleteConfigurationValue(configValue, index)\r\n }\r\n }, function () {\r\n\r\n }); \r\n }\r\n else $scope.deleteConfigurationValue(configValue, index);\r\n }\r\n\r\n $scope.deleteConfigurationValue = function (configValue, index) {\r\n if ($scope.selectedConfigurationType == \"1\") {\r\n\r\n }\r\n // Saving Device Config Value device id, id, value\r\n else if ($scope.selectedConfigurationType == \"2\") {\r\n configValue.deviceId = $scope.selectedDeviceDriver;\r\n }\r\n // Saving Driver Config Value driver id, id, value\r\n else if ($scope.selectedConfigurationType == \"3\") {\r\n configValue.driverId = $scope.selectedDeviceDriver;\r\n }\r\n // Saving Group Config Value group id, id, value\r\n else if ($scope.selectedConfigurationType == \"4\") {\r\n configValue.GroupId = $scope.groupSpecificConfigurationGroupNameId;\r\n }\r\n ConfigurationFactory.deleteConfigurationValue(configValue.Id, configValue.deviceId, configValue.driverId, configValue.GroupId)\r\n .success(function (data) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Configuration ' + configValue.Id + ' - ' + configValue.Name });\r\n if ($scope.selectedConfigurationType == \"2\" && $scope.selectedDeviceSpecific == true) {\r\n $scope.getConfigurationValuesByDeviceId();\r\n }\r\n else if ($scope.selectedConfigurationType == \"4\" && $scope.selectedGroupSpecificConfigurationGroup == true) {\r\n $scope.getConfigurationValuesByConfigurationGroupId();\r\n }\r\n else // code to get config value by id to display deleted value. \r\n ConfigurationFactory.getConfigurationValue(configValue.Id, configValue.deviceId, configValue.driverId, configValue.GroupId).success(function (data) {\r\n $scope.configurationValues[index] = angular.copy(data);\r\n }).error(function () {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () { \r\n }); \r\n };\r\n\r\n $scope.disableEnableDeleteButton = function (configValue, configValueType) {\r\n if (configValueType == 'DEFAULT')\r\n {\r\n if (configValue.Type == \"xml\") {\r\n return configValue.DefaultXmlSchema == null ? true : false;\r\n }\r\n else if (configValue.Type == \"bool\") {\r\n return configValue.DefaultBooleanValue == null ? true : false;\r\n }\r\n else if (configValue.Type == \"flags\") {\r\n return configValue.DefaultFlagsValue == null ? true : false;\r\n }\r\n else if (configValue.Type == \"color\" || configValue.Type == \"dastr\" || configValue.Type == \"float\" ||\r\n configValue.Type == \"int\" || configValue.Type == \"str\") {\r\n return configValue.DefaultValue == null ? true : false;\r\n }\r\n }\r\n else if (configValueType == 'DEVICE') {\r\n if (configValue.Type == \"xml\") {\r\n return configValue.DeviceXmlSchema == null ? true : false;\r\n }\r\n else if (configValue.Type == \"bool\") {\r\n return configValue.DeviceBooleanValue == null ? true : false;\r\n }\r\n else if (configValue.Type == \"flags\") {\r\n return configValue.DeviceFlagsValue == null ? true : false;\r\n }\r\n else if (configValue.Type == \"color\" || configValue.Type == \"dastr\" || configValue.Type == \"float\" ||\r\n configValue.Type == \"int\" || configValue.Type == \"str\") {\r\n return configValue.DeviceValue == null ? true : false;\r\n }\r\n }\r\n else if (configValueType == 'DRIVER') {\r\n if (configValue.Type == \"xml\") {\r\n return configValue.DriverXmlSchema == null ? true : false;\r\n }\r\n else if (configValue.Type == \"bool\") {\r\n return configValue.DriverBooleanValue == null ? true : false;\r\n }\r\n else if (configValue.Type == \"flags\") {\r\n return configValue.DriverFlagsValue == null ? true : false;\r\n }\r\n else if (configValue.Type == \"color\" || configValue.Type == \"dastr\" || configValue.Type == \"float\" ||\r\n configValue.Type == \"int\" || configValue.Type == \"str\") {\r\n return configValue.DriverValue == null ? true : false;\r\n }\r\n }\r\n else if (configValueType == 'GROUP') {\r\n if (configValue.Type == \"xml\") {\r\n return configValue.GroupXmlSchema == null ? true : false;\r\n }\r\n else if (configValue.Type == \"bool\") {\r\n return configValue.GroupBooleanValue == null ? true : false;\r\n }\r\n else if (configValue.Type == \"flags\") {\r\n return configValue.GroupFlagsValue == null ? true : false;\r\n }\r\n else if (configValue.Type == \"color\" || configValue.Type == \"dastr\" || configValue.Type == \"float\" ||\r\n configValue.Type == \"int\" || configValue.Type == \"str\") {\r\n return configValue.GroupValue == null ? true : false;\r\n }\r\n }\r\n \r\n\r\n };\r\n\r\n function MapListToFlagsValue(flagsValue) {\r\n var result = 0;\r\n for (var i = 0; i < flagsValue.length; i++) {\r\n result = result | flagsValue[i];\r\n }\r\n return result;\r\n }\r\n \r\n // Helping functions and events\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.onConfigurationTypeChange = function () {\r\n $scope.entities = [];\r\n $scope.configurationValues = []; \r\n //$scope.selectedConfigurationGroupId = null;\r\n if ($scope.selectedConfigurationType == \"1\") {\r\n $scope.onDeviceDriverChange();\r\n }\r\n else if ($scope.selectedConfigurationType == \"2\") { \r\n ConfigurationFactory.getDeviceList().success(function (data) {\r\n $scope.entities = data;\r\n $scope.selectedDeviceDriver = $scope.entities[0].Id;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.onDeviceDriverChange();\r\n });\r\n }\r\n else if ($scope.selectedConfigurationType == \"3\") {\r\n ConfigurationFactory.getDriverList().success(function (data) {\r\n $scope.entities = data;\r\n $scope.selectedDeviceDriver = $scope.entities[0].Id;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.onDeviceDriverChange();\r\n });\r\n }\r\n else if ($scope.selectedConfigurationType == \"4\") {\r\n ConfigurationFactory.getConfigurationGroupList().success(function (data) {\r\n $scope.configurationGroupsList = data;\r\n $scope.groupSpecificConfigurationGroupNameId = $scope.configurationGroupsList[0].Id;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.onConfigurationGroupChange();\r\n });\r\n }\r\n };\r\n\r\n $scope.onDeviceDriverChange = function () {\r\n $scope.configurationValues = [];\r\n // selectedConfigurationType == \"1\" - Default Configuration Value\r\n // selectedConfigurationType == \"2 or 3\" - Device or Driver Configuration Value \r\n if ($scope.selectedConfigurationType == \"1\") {\r\n if ($scope.selectedConfigurationGroupId != null) $scope.getConfigurationValuesByGroupId($scope.selectedConfigurationGroupId, '');\r\n else $scope.getConfigurationValuesByGroupId(0, '');\r\n }\r\n else if ($scope.selectedConfigurationType == \"2\" ) {\r\n if ($scope.selectedConfigurationGroupId != null && $scope.selectedDeviceSpecific == false)\r\n $scope.getConfigurationValuesByGroupId($scope.selectedConfigurationGroupId, '');\r\n else $scope.getConfigurationValuesByDeviceId();\r\n }\r\n else if ($scope.selectedConfigurationType == \"3\") {\r\n if ($scope.selectedConfigurationGroupId != null) $scope.getConfigurationValuesByGroupId($scope.selectedConfigurationGroupId, '');\r\n else $scope.getConfigurationValuesByGroupId(0, '');\r\n }\r\n };\r\n\r\n $scope.onConfigurationGroupChange = function () {\r\n if ($scope.groupSpecificConfigurationGroupNameId != null) {\r\n $scope.getConfigurationValuesByConfigurationGroupId();\r\n }\r\n else {\r\n $scope.getConfigurationValuesByGroupId($scope.selectedConfigurationGroupId, '');\r\n }\r\n };\r\n\r\n $scope.setBoolValue = function (configurationvalue) {\r\n if (configurationvalue.BooleanValue == true) configurationvalue.UIValue = \"1\";\r\n else configurationvalue.UIValue = \"0\";\r\n configurationvalue.IsChanged = true;\r\n };\r\n\r\n $scope.ShowCopyButton = function () {\r\n if (($scope.selectedConfigurationType == \"2\" && $scope.selectedDeviceSpecific == false)\r\n || $scope.selectedConfigurationType == \"3\") {\r\n if ($scope.configurationValues.length > 0 && $scope.isSearchActive == false) return true;\r\n else return false;\r\n }\r\n else return false;\r\n //else if ($scope.selectedConfigurationType == \"4\") {\r\n // if ($scope.configurationValues.length > 0 && $scope.isSearchActive == false) {\r\n // if ($scope.selectedGroupSpecificConfigurationGroup == true) {\r\n // return true;\r\n // }\r\n // else return false;\r\n // }\r\n // else {\r\n // return false;\r\n // }\r\n //}\r\n };\r\n\r\n $scope.ShowPasteButton = function () {\r\n if (($scope.selectedConfigurationType == \"2\" && $scope.selectedDeviceSpecific == false)\r\n || $scope.selectedConfigurationType == \"3\") {\r\n if ($scope.configurationValues.length > 0 && $scope.isSearchActive == false) return true;\r\n else return false;\r\n }\r\n else return false;\r\n //else if ($scope.selectedConfigurationType == \"4\") {\r\n // if ($scope.configurationValues.length > 0 && $scope.isSearchActive == false) {\r\n // if ($scope.selectedGroupSpecificConfigurationGroup == true) {\r\n // return true;\r\n // }\r\n // else return false;\r\n // }\r\n // else if ($scope.configurationValues.length == 0) {\r\n // if ($scope.configurationValues_Copy.CopiedValue.length > 0) return true;\r\n // else false;\r\n // }\r\n //}\r\n };\r\n\r\n $scope.viewEditComplexConfigValue = function (configurationValue) {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n templateUrl: 'app-legacy/Entities/templates/complexConfigurationModal_transpac.html',\r\n windowClass : \"complexConfigurationModal_transpac\",\r\n controller: 'ConfigurationModalController',\r\n controllerAs: 'modalVm',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n ComplexConfigurationValue: function () {\r\n configurationValue.deviceId = null;\r\n configurationValue.driverId = null;\r\n if ($scope.selectedConfigurationType == \"2\") {\r\n configurationValue.deviceId = $scope.selectedDeviceDriver;\r\n configurationValue.XmlSchema = angular.copy(configurationValue.DeviceXmlSchema);\r\n }\r\n else if ($scope.selectedConfigurationType == \"3\") {\r\n configurationValue.driverId = $scope.selectedDeviceDriver;\r\n configurationValue.XmlSchema = angular.copy(configurationValue.DriverXmlSchema);\r\n }\r\n else if ($scope.selectedConfigurationType == \"4\") {\r\n configurationValue.GroupId = $scope.groupSpecificConfigurationGroupNameId;\r\n configurationValue.XmlSchema = angular.copy(configurationValue.GroupXmlSchema);\r\n }\r\n else {\r\n configurationValue.XmlSchema = angular.copy(configurationValue.DefaultXmlSchema);\r\n }\r\n return configurationValue;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function (message) {\r\n if (message == 'ok') {\r\n // code to get the configuration group/ search string values again and display. \r\n if (!IsUndefinedOrNull($scope.searchString) && $scope.isSearchActive) {\r\n $scope.searchConfiguration($scope.searchString);\r\n }\r\n else {\r\n if ($scope.selectedConfigurationGroupId == null) {\r\n // specific device or specific group\r\n if ($scope.selectedGroupSpecificConfigurationGroup == true) $scope.getConfigurationValuesByConfigurationGroupId();\r\n else if ($scope.selectedDeviceSpecific == true) $scope.getConfigurationValuesByDeviceId();\r\n } \r\n else\r\n $scope.getConfigurationValuesByGroupId($scope.selectedConfigurationGroupId, \"\");\r\n }\r\n }\r\n\r\n }, function () {\r\n\r\n });\r\n };\r\n\r\n $scope.viewComplexConfigValue = function (configurationValue, configTypeToDisplay) {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n templateUrl: 'app-legacy/Entities/templates/defaultcomplexConfigurationModal.html',\r\n controller: 'DefaultConfigurationModalController',\r\n controllerAs: 'modalVm',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n ComplexConfigurationValue: function () {\r\n configurationValue.deviceId = null;\r\n configurationValue.driverId = null;\r\n if (configTypeToDisplay == 'DEFAULT') {\r\n configurationValue.XmlSchema = angular.copy(configurationValue.DefaultXmlSchema);\r\n }\r\n else if (configTypeToDisplay == 'GROUP') {\r\n configurationValue.XmlSchema = angular.copy(configurationValue.GroupXmlSchema);\r\n }\r\n return configurationValue;\r\n }\r\n }\r\n });\r\n };\r\n\r\n }]);\r\n\r\napp.controller('ConfigurationModalController', ['$scope', 'ConfigurationFactory', '$uibModalInstance', 'ComplexConfigurationValue', '$filter', '$uibModal', 'masterFactory', '$timeout',\r\n function ($scope, ConfigurationFactory, $uibModalInstance, ComplexConfigurationValue, $filter, $uibModal, masterFactory, $timeout) {\r\n var modalVm = this;\r\n\r\n init();\r\n\r\n modalVm.labelConfig = $scope.getLables(ComplexConfigurationValue.Id);\r\n modalVm.copyConfigValue = function (index, isLast) {\r\n if (modalVm.IsSingle) {\r\n modalVm.CopiedConfigValue.CopiedValue = angular.copy(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence[0]);\r\n $scope.modalNotify.add({ type: 'success', title: 'Success!', body: 'Copied config values successfully' });\r\n }\r\n else { // multi form complex configuration\r\n modalVm.MultiFormSettings.copiedForm = angular.copy(modalVm.MultiFormSettings.stagingComplexConfig[modalVm.MultiFormSettings.selectedFormIndex]);\r\n $scope.modalNotify.add({ type: 'success', title: 'Success!', body: 'Copied config values successfully' });\r\n }\r\n };\r\n\r\n modalVm.pasteConfigValue = function () {\r\n if (modalVm.IsSingle) {\r\n // when issingle then copy/paste is between different modals so have to look into it. \r\n }\r\n else {\r\n //modalVm.MultiFormSettings.stagingComplexConfig[modalVm.MultiFormSettings.selectedFormIndex] =\r\n // angular.copy(modalVm.MultiFormSettings.copiedForm);\r\n modalVm.MultiFormSettings.stagingComplexConfig[modalVm.MultiFormSettings.selectedFormIndex] =\r\n angular.copy(modalVm.MultiFormSettings.copiedForm);\r\n $scope.modalNotify.add({ type: 'success', title: 'Success!', body: 'Paste config values successfully' });\r\n }\r\n };\r\n\r\n modalVm.reset = function () {\r\n if (modalVm.IsSingle) {\r\n modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence[0] = angular.copy(modalVm.ResetComplexConfigurationValue.XmlSchema.fieldSequence[0]);\r\n $scope.modalNotify.add({ type: 'success', title: 'Success!', body: 'Config values Reset successfully' });\r\n }\r\n else {\r\n if (modalVm.IsAddNew) { // is new\r\n modalVm.MultiFormSettings.stagingComplexConfig[modalVm.MultiFormSettings.selectedFormIndex] = angular.copy(modalVm.MultiFormSettings.newForm[0]);\r\n }\r\n else { // existing form\r\n if (modalVm.MultiFormSettings.selectedFormIndex < modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence.length)\r\n modalVm.MultiFormSettings.stagingComplexConfig[modalVm.MultiFormSettings.selectedFormIndex]\r\n = angular.copy(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence[modalVm.MultiFormSettings.selectedFormIndex]);\r\n else modalVm.MultiFormSettings.stagingComplexConfig[modalVm.MultiFormSettings.selectedFormIndex] = angular.copy(modalVm.MultiFormSettings.newForm[0]);\r\n }\r\n $scope.modalNotify.add({ type: 'success', title: 'Success!', body: 'Config values Reset successfully' });\r\n }\r\n };\r\n\r\n modalVm.delete = function myfunction() {\r\n modalVm.MultiFormSettings.stagingComplexConfig.splice(modalVm.MultiFormSettings.selectedFormIndex, 1);\r\n $scope.modalNotify.add({ type: 'success', title: 'Success!', body: 'Config values deleted successfully' });\r\n if (modalVm.MultiFormSettings.stagingComplexConfig.length > 0)\r\n modalVm.MultiFormSettings.selectedFormIndex = 0;\r\n };\r\n\r\n modalVm.save = function (index, last) {\r\n $scope.error = null;\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n if (!modalVm.IsSingle) {\r\n modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence = angular.copy(modalVm.MultiFormSettings.stagingComplexConfig);\r\n //modalVm.MultiFormSettings.stagingComplexConfig = angular.copy()\r\n }\r\n else {\r\n modalVm.ResetComplexConfigurationValue.XmlSchema.fieldSequence[0] = angular.copy(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence[0]);\r\n }\r\n ConfigurationFactory.saveModalConfigurationValues(modalVm.ComplexConfigurationValue).success(function (data) {\r\n modalVm.ModalHeading = modalVm.ComplexConfigurationValue.Name;\r\n modalVm.IsAddNew = false;\r\n $scope.modalNotify.add({ type: 'success', title: 'Success!', body: 'Saved Configuration details successfully' });\r\n }).error(function (data, status) {\r\n $scope.error = data.Message;\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n modalVm.cancel = function () {\r\n $uibModalInstance.close('ok');\r\n };\r\n\r\n modalVm.initSortedList = function myfunction(complexItem) {\r\n $scope.MyComplexItem = complexItem;\r\n $scope.MyComplexItem.fieldValue = $filter('filter')(complexItem.fieldOptions, { IsSelected: true });\r\n };\r\n\r\n modalVm.sortableOptions = {\r\n update: function (e, ui) {\r\n console.log(\"update\");\r\n },\r\n stop: function (e, ui) {\r\n console.log(\"stop\");\r\n var filteredOptions = $filter('filter')(ui.item.sortable.sourceModel, { IsSelected: true });\r\n if (filteredOptions.length > 0)\r\n $scope.MyComplexItem.fieldValue = filteredOptions;\r\n }\r\n };\r\n\r\n modalVm.UpdateSeletedSortedList = function (complexitem) {\r\n $scope.MyComplexItem.fieldValue = $filter('filter')(complexitem.fieldOptions, { IsSelected: true });\r\n };\r\n\r\n modalVm.formSelected = function (index) {\r\n modalVm.ModalHeading = modalVm.ComplexConfigurationValue.Name;\r\n modalVm.IsAddNew = false;\r\n modalVm.MultiFormSettings.selectedFormIndex = index;\r\n };\r\n\r\n modalVm.AddNewRegister = function () {\r\n modalVm.ModalHeading = modalVm.labelConfig.addModalTitle;\r\n modalVm.IsAddNew = true;\r\n modalVm.MultiFormSettings.stagingComplexConfig.push(angular.copy(modalVm.MultiFormSettings.newForm[0]));\r\n modalVm.MultiFormSettings.selectedFormIndex = modalVm.MultiFormSettings.stagingComplexConfig.length - 1;\r\n };\r\n\r\n function init() {\r\n modalVm.ActiveTab = 0;\r\n modalVm.SortedSelectedList = {};\r\n modalVm.ComplexConfigurationValue = angular.copy(ComplexConfigurationValue);\r\n modalVm.ResetComplexConfigurationValue = angular.copy(ComplexConfigurationValue);\r\n modalVm.ModalHeading = modalVm.ComplexConfigurationValue.Name;\r\n modalVm.IsAddNew = false;\r\n modalVm.CopiedConfigValue = {\r\n Id: ComplexConfigurationValue.Id, GroupId: ComplexConfigurationValue.ConfigurationGroupId,\r\n Type: ComplexConfigurationValue.Type, CopiedValue: []\r\n };\r\n modalVm.IsSingle = modalVm.ComplexConfigurationValue.XmlSchema.isSingle;\r\n if (!modalVm.IsSingle) { // multi form settings\r\n modalVm.MultiFormSettings = {\r\n newForm: angular.copy(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence.splice(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence.length - 1, 1)),\r\n stagingComplexConfig: angular.copy(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence),\r\n selectedFormIndex: 0,\r\n copiedForm: null\r\n };\r\n }\r\n\r\n\r\n };\r\n }]);\r\n\r\napp.controller('DefaultConfigurationModalController', ['$scope', '$uibModalInstance', 'ComplexConfigurationValue', '$filter', '$uibModal',\r\n function ($scope, $uibModalInstance, ComplexConfigurationValue, $filter, $uibModal) {\r\n var modalVm = this;\r\n\r\n modalVm.labelConfig = $scope.getLables(ComplexConfigurationValue.Id);\r\n init();\r\n\r\n modalVm.cancel = function () {\r\n $uibModalInstance.close('ok');\r\n };\r\n\r\n modalVm.formSelected = function (index) {\r\n modalVm.ModalHeading = modalVm.ComplexConfigurationValue.Name;\r\n modalVm.IsAddNew = false;\r\n modalVm.MultiFormSettings.selectedFormIndex = index;\r\n };\r\n\r\n function init() {\r\n modalVm.ActiveTab = 0;\r\n modalVm.SortedSelectedList = {};\r\n modalVm.ComplexConfigurationValue = angular.copy(ComplexConfigurationValue);\r\n modalVm.ResetComplexConfigurationValue = angular.copy(ComplexConfigurationValue);\r\n modalVm.ModalHeading = modalVm.ComplexConfigurationValue.Name;\r\n modalVm.IsSingle = modalVm.ComplexConfigurationValue.XmlSchema.isSingle;\r\n if (!modalVm.IsSingle) { // multi form settings\r\n modalVm.MultiFormSettings = {\r\n newForm: angular.copy(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence.splice(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence.length - 1, 1)),\r\n stagingComplexConfig: angular.copy(modalVm.ComplexConfigurationValue.XmlSchema.fieldSequence),\r\n selectedFormIndex: 0\r\n };\r\n }\r\n };\r\n }]);\r\n\r\napp.controller('DeleteComplexConfigurationModalController', ['$scope', '$uibModalInstance', 'DeleteModalValues', '$uibModal',\r\n function ($scope, $uibModalInstance, DeleteModalValues, $uibModal) {\r\n var modalVm = this;\r\n\r\n init();\r\n\r\n modalVm.cancel = function () {\r\n $uibModalInstance.close('ok');\r\n };\r\n\r\n modalVm.deleteEntity = function (value) {\r\n if (value == 1) { \r\n $uibModalInstance.close(1);\r\n }\r\n else {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n };\r\n\r\n function init() {\r\n modalVm.ConfigValue = DeleteModalValues.configValue;\r\n modalVm.Index = DeleteModalValues.index;\r\n };\r\n }]);\r\n","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('UserFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n getNewUser: function () {\r\n return $http.get(settings.ApiURL + settings.UserURL + \"/newUser\");\r\n },\r\n getRoles: function (isSysAdmin) {\r\n return $http.get(settings.ApiURL + settings.UserURL + \"/role/\"+ isSysAdmin);\r\n },\r\n getFleets: function () {\r\n return $http.get(settings.ApiURL + settings.FleetURL);\r\n },\r\n getUserDetails: function (id) {\r\n return $http.get(settings.ApiURL + settings.UserURL + \"/\" + id);\r\n },\r\n saveUser: function (User) {\r\n return $http.put(settings.ApiURL + settings.UserURL, User);\r\n },\r\n checkUser: function (userName, companyId) {\r\n return $http.get(settings.ApiURL + settings.UserURL + \"/\" + userName + \"/\" + companyId);\r\n },\r\n deleteUser: function (id) {\r\n return $http.delete(settings.ApiURL + settings.UserURL + \"/\" + id);\r\n },\r\n getUserList: function (accessToken) {\r\n return $http.get(settings.ApiURL + settings.UserURL);\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('UserController', ['$q', '$scope', 'UserFactory', '$rootScope', 'settings', 'masterFactory', 'CompanyFactory',\r\n function ($q, $scope, UserFactory, $rootScope, settings, masterFactory, CompanyFactory) {\r\n $rootScope.pageTitle = \"User\";\r\n $scope.companyDropdown = [];\r\n $scope.Roles = [];\r\n $scope.Fleets = [];\r\n $scope.Users = [];\r\n $scope.User = {};\r\n $scope.newUser = {};\r\n $scope.error = \"\";\r\n $scope.modelState = [];\r\n $scope.isFormVisible = false;\r\n $scope.isNewUser = false;\r\n $scope.pageSize = 20;\r\n\r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication();\r\n\r\n $q.all([\r\n UserFactory.getRoles($rootScope.user.isSysAdmin).success(function (data) {\r\n $scope.Roles = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n UserFactory.getFleets().success(function (data) {\r\n $scope.Fleets = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n CompanyFactory.getCompanyDropDown(0).success(function (data) {\r\n $scope.companyDropdown = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n UserFactory.getUserList($rootScope.accessToken).success(function (data) {\r\n $scope.Users = data;\r\n $scope.refreshGrid(0, null);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n UserFactory.getNewUser().success(function (data) {\r\n $scope.newUser = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n });\r\n };\r\n\r\n var getUser = function (id) {\r\n UserFactory.getUserDetails(id).success(function (data) {\r\n $scope.User = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n init(0);\r\n\r\n // Grid renderers\r\n $scope.refreshGrid = function (PageIndex, Key) {\r\n $('#gridUser').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.Users,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n noDataText: \"No Users Found\",\r\n showColumnLines: true,\r\n showRowLines: false,\r\n showBorders: true,\r\n rowAlternationEnabled: false,\r\n contentReadyAction: grdReadyAction,\r\n selection: { mode: 'single' },\r\n paging: {\r\n pageSize: $scope.pageSize,\r\n pageIndex: PageIndex\r\n },\r\n scrolling: {\r\n mode: 'standard'\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 20, 30]\r\n },\r\n filterRow: {\r\n visible: true\r\n },\r\n groupPanel: {\r\n visible: false,\r\n },\r\n columns: [\r\n { dataField: 'Id', visible: false, dataType: 'number' },\r\n {\r\n caption: 'User name', dataField: 'UserName', cssClass: 'UserName',dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.UserName)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n {\r\n caption: 'Company', dataField: 'CompanyName', cssClass: 'CompanyName', dataType: 'string', alignment: 'center',\r\n cellTemplate: function (container, options) {\r\n $('')\r\n .text(options.data.CompanyName)\r\n .appendTo(container);\r\n container.addClass('grid-cell-align-left');\r\n }\r\n },\r\n { caption: 'Fleet', dataField: 'Fleet', cssClass: 'Fleet', dataType: 'string', alignment: 'center' }\r\n ],\r\n selectionChanged: function (selectedRowsInfo) {\r\n if (selectedRowsInfo.selectedRowsData[0] != null) {\r\n getUser(selectedRowsInfo.selectedRowsData[0].Id);\r\n }\r\n else $scope.User = angular.copy($scope.newUser);\r\n\r\n $scope.isFormVisible = true;\r\n $scope.isNewUser = false;\r\n ToggleYellowToGreen();\r\n $rootScope.pageTitle = \"User\";\r\n }\r\n\r\n });\r\n\r\n if (Key != null && Key > 0) {\r\n var dataGrid = $('#gridUser').dxDataGrid('instance');\r\n (dataGrid as unknown as FacnmDx).selectRows([Key]);\r\n }\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.addNewEntity = function () {\r\n $rootScope.pageTitle = \"New User\";\r\n $scope.isFormVisible = true;\r\n $scope.isNewUser = true;\r\n $scope.User = angular.copy($scope.newUser);\r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#gridUser').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false;\r\n $scope.userForm.$submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db User and set to scope.User.\r\n getUser($scope.User.Id);\r\n }\r\n else {\r\n angular.copy($scope.newUser, $scope.User);\r\n }\r\n $scope.userForm.$setPristine();\r\n $scope.userForm.$submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'User details were reset' });\r\n };\r\n\r\n $scope.submitForm = function () {\r\n if ($scope.userForm.$valid) {\r\n $scope.saveUser(); \r\n } \r\n };\r\n\r\n $scope.saveUser = function () {\r\n var pageindex, id;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n UserFactory.saveUser($scope.User).success(function (UserId) {\r\n UserFactory.getUserList($rootScope.accessToken).success(function (data) {\r\n var dataGrid = $('#gridUser').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n pageindex = dataGrid.pageIndex();\r\n $scope.Users = data;\r\n if ($scope.User.Id > 0) {\r\n $scope.refreshGrid(pageindex, $scope.User.Id)\r\n }\r\n else {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex, null);\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n if ($scope.User.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated User successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created User successfully' });\r\n }\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n $scope.IsUniqueUserName = function () {\r\n if($scope.User.UserName != null && $scope.User.CompanyId != null) {\r\n UserFactory.checkUser($scope.User.UserName, $scope.User.CompanyId).success(function (data) {\r\n if (data == true) $scope.error = \"A user with User Name: \" + $scope.User.UserName + \" already exists for selected Company\";\r\n else $scope.error = null;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n }\r\n };\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n onWindowResize('#gridUser', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n onWindowResize('#gridUser', settings.GridMarginHeight);\r\n };\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n}]);","import { default as app, collapsibleHeaderClickEvent, onWindowResize, resetSelectionColumn, ToggleYellowToGreen, ToggleGreenToYellow, IsUndefinedOrNull } from '@legacy/App';\r\n\r\napp.factory('VehicleFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n deleteCompartment: function (id, setId) {\r\n return $http.delete(settings.ApiURL + settings.VehicleURL + \"/compartmentsets/compartment/\" + setId + \"/\" + id);\r\n },\r\n deleteCompartmentSet: function (id) {\r\n return $http.delete(settings.ApiURL + settings.VehicleURL + \"/compartmentsets/\" + id);\r\n },\r\n deleteVehicle: function (id, deviceId) {\r\n return $http.delete(settings.ApiURL + settings.VehicleURL + \"/\" + id + \"/\" + deviceId);\r\n },\r\n deleteVehicleType: function (id) {\r\n return $http.delete(settings.ApiURL + settings.VehicleURL + \"/vehicletypes/\" + id);\r\n },\r\n getCompanyList: function () {\r\n return $http.get(settings.ApiURL + settings.CompanyURL + \"/dropdown/1\")\r\n },\r\n getNonPrintCompanyList: function () {\r\n return $http.get(settings.ApiURL + settings.CompanyURL + \"/nonprintcompanydropdown/1\")\r\n },\r\n getCompartmentSetList: function () {\r\n return $http.get(settings.ApiURL + settings.VehicleURL + \"/compartmentsets\");\r\n },\r\n getDeviceTypeList: function () {\r\n return $http.get(settings.ApiURL + settings.DeviceURL + \"/devicetypes\")\r\n },\r\n getDeviceConfigList: function () {\r\n return $http.get(settings.ApiURL + settings.DeviceURL + \"/deviceconfig\")\r\n },\r\n getDeviceStateList: function () {\r\n return $http.get(settings.ApiURL + settings.DeviceURL + \"/devicestate\")\r\n },\r\n getDataAreaList: function () {\r\n return $http.get(settings.ApiURL + settings.DataAreaURL + \"/list/0\")\r\n },\r\n getFilteredVehicleList: function (filterOptions) {\r\n return $http.put(settings.ApiURL + settings.VehicleURL + '/filter', filterOptions);\r\n },\r\n getNewVehicle: function () {\r\n return $http.get(settings.ApiURL + settings.VehicleURL + \"/newvehicle\");\r\n },\r\n getSpecialActions: function () {\r\n return $http.get(settings.ApiURL + settings.VehicleURL + \"/specialactions\");\r\n },\r\n getTimeZones: function () {\r\n return $http.get(settings.ApiURL + settings.MasterDataURL + \"/timezones\");\r\n },\r\n getTimeZoneValues: function () {\r\n return $http.get(settings.ApiURL + settings.MasterDataURL + \"/timezonesvalues\");\r\n },\r\n getTrailerStates: function () {\r\n return $http.get(settings.ApiURL + settings.VehicleURL + \"/trailerstate\");\r\n },\r\n getVehicleDetails: function (id) {\r\n return $http.get(settings.ApiURL + settings.VehicleURL + \"/\" + id);\r\n },\r\n getVehicleBuildTypes: function () {\r\n return $http.get(settings.ApiURL + settings.VehicleURL + \"/buildtypes\");\r\n },\r\n getVehicleBoxConfig: function () {\r\n return $http.get(settings.ApiURL + settings.VehicleURL + \"/boxconfig\");\r\n },\r\n getVehicleClasses: function () {\r\n return $http.get(settings.ApiURL + settings.VehicleURL + \"/vehicleclasses\");\r\n },\r\n getVehicleTypes: function () {\r\n return $http.get(settings.ApiURL + settings.VehicleURL + \"/vehicletypes/0\");\r\n },\r\n getVehicleList: function () {\r\n return $http.get(settings.ApiURL + settings.VehicleURL);\r\n },\r\n getLoadPointList: function () {\r\n return $http.get(settings.ApiURL + settings.LoadPointURL);\r\n },\r\n isCompartmentSetDeletable: function (id) {\r\n return $http.get(settings.ApiURL + settings.VehicleURL + \"/compartmentsets/deletable/\" + id);\r\n },\r\n saveCompartmentSets: function (compartmentSets) {\r\n return $http.put(settings.ApiURL + settings.VehicleURL + \"/compartmentsets\", compartmentSets);\r\n },\r\n saveSpecialAction: function (vehiclelist, specialaction) {\r\n var data = { Vehicles: vehiclelist, SpecialActionId: specialaction };\r\n return $http.put(settings.ApiURL + settings.VehicleURL + \"/specialactions\", data);\r\n },\r\n saveVehicle: function (vehicle) {\r\n return $http.put(settings.ApiURL + settings.VehicleURL, vehicle);\r\n },\r\n saveMultipleVehicles: function (vehicle, vehiclelist) {\r\n var data = { Vehicles: vehiclelist, Vehicle: vehicle };\r\n return $http.put(settings.ApiURL + settings.VehicleURL + \"/multiplevehicles\", data);\r\n },\r\n saveVehicleTypes: function (vehicleTypes) {\r\n return $http.put(settings.ApiURL + settings.VehicleURL + \"/vehicletypes\", vehicleTypes);\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('VehicleController', ['$q', '$scope', 'VehicleFactory', 'indexFactory', '$rootScope', 'settings', 'masterFactory', '$uibModal', '$filter',\r\n function ($q, $scope, VehicleFactory, indexFactory, $rootScope, settings, masterFactory, $uibModal, $filter) {\r\n $rootScope.pageTitle = \"Vehicle\";\r\n $scope.boxConfigList = [];\r\n $scope.companyList = [];\r\n $scope.nonprintcompanyList = [];\r\n $scope.compartmentSetList = [];\r\n $scope.deviceTypeList = [];\r\n $scope.deviceConfigList = [];\r\n $scope.deviceStateList = [];\r\n $scope.dataAreaList = [];\r\n $scope.error = \"\";\r\n $scope.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 $scope.heightContentBoxLeft = document.getElementById('contentBoxLeft').offsetWidth;\r\n $scope.heightFilterOptions = 80;\r\n $scope.gridHeight = $scope.heightContentBoxLeft - $scope.heightFilterOptions;\r\n $scope.isFormVisible = false; \r\n $scope.isCompartmentActive = false; \r\n $scope.isFilterOptionsOpen = false;\r\n $scope.isNewEntity = false; \r\n $scope.loadPointList = [];\r\n $scope.modelState = [];\r\n $scope.multipleSelected = { count: 0, vehiclesList: [] };\r\n $scope.newVehicle = {};\r\n $scope.SpecialActions = [];\r\n $scope.SelectedSpecialAction = {};\r\n $scope.initialReceiptRange = {};\r\n $scope.SelectedReceiptRange = {};\r\n $scope.SelectedReceiptRangeCopy = {};\r\n $scope.timezoneNameList = [];\r\n $scope.timezoneValueList = [];\r\n $scope.trailerStatesList = [];\r\n $scope.truckTrailerLookup = [\r\n { IsTruck: 1, Text: 'Truck' },\r\n { IsTruck: 0, Text: 'Trailer' }\r\n ];\r\n $scope.vehicle = {};\r\n $scope.vehicles = [];\r\n $scope.vehicleBuildTypes = [];\r\n $scope.vehicleBuildTypesAll = [];\r\n $scope.vehicleBuildTypeTruck = [];\r\n $scope.vehicleBuildTypeTrailer = [];\r\n $scope.vehicleClasses = [];\r\n $scope.vehicleTypes = [];\r\n $scope.vehicleInUse = false;\r\n\r\n // Initialization - this runs on load\r\n var init = function (pageIndex) {\r\n masterFactory.verifyAuthentication();\r\n\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $q.all([\r\n VehicleFactory.getVehicleBuildTypes().success(function (data) {\r\n $scope.vehicleBuildTypesAll = data;\r\n angular.forEach(data, function (value, key) {\r\n if (value.Id < 2)\r\n $scope.vehicleBuildTypeTruck.push(value);\r\n else if (value.Id > 1)\r\n $scope.vehicleBuildTypeTrailer.push(value);\r\n });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getVehicleBoxConfig().success(function (data) {\r\n $scope.boxConfigList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getVehicleClasses().success(function (data) {\r\n $scope.vehicleClasses = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getNewVehicle().success(function (data) {\r\n $scope.newVehicle = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getCompanyList().success(function (data) {\r\n $scope.companyList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getNonPrintCompanyList().success(function (data) {\r\n $scope.nonprintcompanyList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getCompartmentSetList().success(function (data) {\r\n $scope.compartmentSetList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getLoadPointList().success(function (data) {\r\n $scope.loadPointList = $filter('orderBy')(data, 'Name1');;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getDeviceTypeList().success(function (data) {\r\n $scope.deviceTypeList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getDeviceConfigList().success(function (data) {\r\n $scope.deviceConfigList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getDeviceStateList().success(function (data) {\r\n $scope.deviceStateList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getDataAreaList().success(function (data) {\r\n $scope.dataAreaList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getTimeZones().success(function (data) {\r\n $scope.timezoneNameList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getTimeZoneValues().success(function (data) {\r\n $scope.timezoneValueList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getTrailerStates().success(function (data) {\r\n $scope.trailerStatesList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getVehicleTypes().success(function (data) {\r\n $scope.vehicleTypes = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }),\r\n VehicleFactory.getSpecialActions().success(function (data) {\r\n $scope.SpecialActions = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n })\r\n ]).then(function () {\r\n VehicleFactory.getVehicleList().success(function (data) {\r\n $scope.vehicles = data;\r\n $scope.refreshGrid(0, null);\r\n }).error(function (data, status) {\r\n $scope.vehicles = [];\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n });\r\n\r\n };\r\n\r\n var getVehicle = function (id) {\r\n VehicleFactory.getVehicleDetails(id).success(function (data) {\r\n $scope.vehicle = data; \r\n if ($scope.vehicle.deviceDetailsVM != null) {\r\n $scope.initialReceiptRange.CompanyId = $scope.vehicle.deviceDetailsVM.RangeVMs[0].CompanyId;\r\n $scope.SelectedReceiptRange = $scope.vehicle.deviceDetailsVM.RangeVMs[0];\r\n $scope.SelectedReceiptRangeCopy = angular.copy($scope.SelectedReceiptRange);\r\n }\r\n else {\r\n $scope.initialReceiptRange.CompanyId = null;\r\n $scope.SelectedReceiptRange = {};\r\n $scope.SelectedReceiptRangeCopy = {};\r\n }\r\n if ($scope.vehicle.BuildType != null) { \r\n if ($scope.vehicle.BuildType < 2)\r\n $scope.TruckTrailerChange(true);\r\n else $scope.TruckTrailerChange(false);\r\n }\r\n else { // if null then it's a truck \r\n $scope.TruckTrailerChange(true);\r\n }\r\n\r\n if ($scope.vehicle.CompartmentSet != null && $scope.vehicle.Tank != null) {\r\n $scope.vehicle.Tank = null;\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n };\r\n\r\n init(0);\r\n\r\n $scope.TruckTrailerChange = function (boolvalue) {\r\n if (boolvalue) { \r\n $scope.isTruck = \"true\";\r\n $scope.vehicle.IsTrailerGpsBox = false;\r\n $scope.vehicleBuildTypes = $scope.vehicleBuildTypeTruck; \r\n }\r\n else if (!boolvalue) { \r\n $scope.isTruck = \"false\";\r\n $scope.vehicleBuildTypes = $scope.vehicleBuildTypeTrailer; \r\n if ($scope.vehicle.BuildType == null || $scope.vehicle.BuildType < 2) $scope.vehicle.BuildType = 2;\r\n\t\t if ($scope.vehicle.deviceDetailsVM.Id > 0) $scope.vehicle.IsTrailerGpsBox = true;\r\n }\r\n };\r\n\r\n $scope.refreshGrid = function (PageIndex, ids) {\r\n $('#VehicleGrid').dxDataGrid({\r\n dataSource: {\r\n store: {\r\n data: $scope.vehicles,\r\n type: 'array',\r\n key: 'Id'\r\n }\r\n },\r\n columns: [\r\n {\r\n caption: 'Icon', dataField: 'IsTruck', alignment: 'center', 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: $scope.truckTrailerLookup, valueExpr: 'IsTruck', displayExpr: 'Text' }\r\n },\r\n { caption: 'Vehicle Id', dataField: 'Id', cssClass: 'Id', dataType: 'number', visible: false },\r\n {\r\n caption: 'Device Id - Name', dataField: '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 { caption: 'Vehicle No', dataField: 'VehicleNumber', cssClass: 'VehicleNumber', dataType: 'string', alignment: 'center' },\r\n { caption: 'License Plate', dataField: 'LicensePlate', cssClass: 'LicensePlate', dataType: 'string', alignment: 'center', width: 150 }\r\n ],\r\n contentReadyAction: grdReadyAction,\r\n filterRow: { visible: true },\r\n groupPanel: { visible: false, },\r\n height: $scope.gridHeight,\r\n //height: \"100%\",\r\n noDataText: \"No Vehicles Found\",\r\n pager: { showPageSizeSelector: true, allowedPageSizes: [10, 20, 30] },\r\n paging: { pageSize: $scope.pageSize, pageIndex: PageIndex },\r\n rowAlternationEnabled: false,\r\n scrolling: { mode: 'standard' },\r\n selection: { mode: 'multiple' },\r\n showBorders: true,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n selectionChanged: function (selectedRowsInfo) {\r\n $scope.multipleSelected.vehiclesList = [];\r\n if (selectedRowsInfo.selectedRowsData.length > 1) {\r\n // Display empty form with Vehicle specific data disabled.\r\n $scope.vehicle = angular.copy($scope.newVehicle);\r\n // stored selected vehicles in a array multipleSelected.vehiclesList\r\n for (var i = 0; i < selectedRowsInfo.selectedRowsData.length; i++) {\r\n $scope.multipleSelected.vehiclesList.push(selectedRowsInfo.selectedRowsData[i].Id);\r\n }\r\n $scope.multipleSelected.count = selectedRowsInfo.selectedRowsData.length;\r\n $scope.isDeleteVisible = false;\r\n }\r\n else if (selectedRowsInfo.selectedRowsData.length == 1) {\r\n $scope.multipleSelected.count = 1;\r\n getVehicle(selectedRowsInfo.selectedRowsData[0].Id);\r\n $scope.isDeleteVisible = true;\r\n }\r\n else {\r\n $scope.multipleSelected.count = 0;\r\n $scope.vehicle = angular.copy($scope.newVehicle);\r\n $scope.isDeleteVisible = false;\r\n }\r\n $scope.isNewEntity = false;\r\n $rootScope.pageTitle = \"Vehicle\";\r\n $scope.isFormVisible = true;\r\n ToggleYellowToGreen();\r\n }\r\n });\r\n if (ids != null && ids.length > 0) {\r\n var dataGrid = $('#VehicleGrid').dxDataGrid('instance');\r\n (dataGrid as unknown as FacnmDx).selectRows(ids);\r\n }\r\n };\r\n\r\n // Button click functions and submit form function\r\n $scope.addNewEntity = function () {\r\n $rootScope.pageTitle = \"New Vehicle\";\r\n $scope.isFormVisible = true;\r\n $scope.isDeleteVisible = false;\r\n $scope.isNewEntity = true;\r\n $scope.SetIDManually = false;\r\n $scope.vehicle = angular.copy($scope.newVehicle);\r\n $scope.initialReceiptRange.CompanyId = null;\r\n $scope.SelectedReceiptRange = null;\r\n $scope.TruckTrailerChange(true);\r\n ToggleGreenToYellow();\r\n };\r\n\r\n $scope.confirmDeleteEntity = function () {\r\n $scope.vehicleInUse = false;\r\n if(($scope.isTruck == 'true' && $scope.vehicle.deviceDetailsVM.State==1) || ($scope.isTruck == 'false' && $scope.vehicle.State == 1)){\r\n $scope.vehicleInUse = true; \r\n } \r\n $('#DeleteModal').modal({ backdrop: 'static' });\r\n };\r\n\r\n $scope.deleteEntity = function (value) {\r\n if (value == 0) {\r\n $('#DeleteModal').modal('hide');\r\n }\r\n else if (value == 1) {\r\n var vehicleId = $scope.vehicle.Id;\r\n var deviceId = $scope.vehicle.deviceDetailsVM != null ? $scope.vehicle.deviceDetailsVM.Id : null;\r\n VehicleFactory.deleteVehicle(vehicleId, deviceId).success(function (data) {\r\n VehicleFactory.getVehicleList().success(function (data) {\r\n var dataGrid = $('#VehicleGrid').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n var pageindex = dataGrid.pageIndex();\r\n $scope.vehicles = data;\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Deleted Vehicle successfully' });\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#DeleteModal').modal('hide');\r\n });\r\n }\r\n };\r\n\r\n $scope.filterVehicles = function () {\r\n $scope.closeAlert();\r\n $scope.closeModelStateErrors();\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n VehicleFactory.getFilteredVehicleList($scope.filterOptions).success(function (data) {\r\n var dataGrid = $('#VehicleGrid').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n var pageindex = dataGrid.pageIndex();\r\n $scope.vehicles = data;\r\n $scope.refreshGrid(pageindex, null);\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Filter applied successfully' });\r\n }).error(function (data, status) {\r\n $scope.vehicles = [];\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n $scope.resetfilterOptions = function () {\r\n $scope.closeAlert();\r\n $scope.closeModelStateErrors();\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n $scope.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 VehicleFactory.getVehicleList().success(function (data) {\r\n $scope.vehicles = data;\r\n $scope.refreshGrid(0, null);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n $('#loadingModal').modal('hide');\r\n $scope.cancelForm();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Filter options reset successfully' });\r\n };\r\n\r\n $scope.reset = function (type) {\r\n if (type == 'update') { // get db vehicle and set to scope.vehicle\r\n getVehicle($scope.vehicle.Id);\r\n }\r\n else {\r\n angular.copy($scope.newVehicle, $scope.vehicle);\r\n }\r\n $scope.vehicleForm.$setPristine();\r\n $scope.vehicleForm.$submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Vehicle details were reset' });\r\n };\r\n\r\n $scope.cancelForm = function () {\r\n var dataGrid = $('#VehicleGrid').dxDataGrid('instance');\r\n dataGrid.clearSelection();\r\n $scope.isFormVisible = false;\r\n $scope.vehicleForm.$submitted = false;\r\n $scope.closeModelStateErrors();\r\n $scope.closeAlert();\r\n };\r\n\r\n $scope.submitForm = function () {\r\n\r\n if ($scope.isTruck == 'true') {\r\n \r\n $scope.vehicleForm.RangeStart.$setValidity('range', true);\r\n $scope.error = '';\r\n\r\n if ($scope.vehicle.deviceDetailsVM.RangeVMs) {\r\n let currentReceiptNumbers = $scope.vehicle.deviceDetailsVM.RangeVMs.find(function (r) { return r.CompanyId == $scope.vehicle.deviceDetailsVM.CompanyId })\r\n\r\n if (currentReceiptNumbers) {\r\n\r\n let currentReceiptStart = currentReceiptNumbers.RangeStart;\r\n\r\n if (!(currentReceiptStart >= currentReceiptNumbers.Range1From && currentReceiptStart <= currentReceiptNumbers.Range1To\r\n || currentReceiptStart >= currentReceiptNumbers.Range2From && currentReceiptStart <= currentReceiptNumbers.Range2To)) {\r\n\r\n $scope.vehicleForm.RangeStart.$setValidity('range', false);\r\n $scope.error = \"Receipt Start must be between one of the Ranges bounds.\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n if ($scope.vehicleForm.$valid) { \r\n\r\n if ($scope.isTruck == 'true' && !angular.equals($scope.SelectedReceiptRange, $scope.SelectedReceiptRangeCopy)&& $scope.vehicle.Id > 0) {\r\n\r\n $('#ReceiptRangeChangingModal').modal({ backdrop: 'static' });\r\n }\r\n\r\n else {\r\n $scope.saveVehicle();\r\n $scope.vehicleForm.$submitted = false;\r\n }\r\n }\r\n else {\r\n $scope.vehicleForm.$submitted = true;\r\n }\r\n };\r\n\r\n\r\n $scope.receiptRangeChangingModal_onClick = function (sendReceiptRangeChange: boolean) {\r\n\r\n $('#ReceiptRangeChangingModal').modal('hide');\r\n\r\n if (sendReceiptRangeChange) {\r\n\r\n let vehicleList = $scope.multipleSelected.vehiclesList.length > 0 ? $scope.multipleSelected.vehiclesList : [$scope.vehicle.Id];\r\n\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n VehicleFactory.saveSpecialAction(vehicleList, 1).success(function () {\r\n\r\n indexFactory.exportVehicles(vehicleList).success(function () {\r\n\r\n $scope.saveVehicle();\r\n $scope.vehicleForm.$submitted = false;\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Special Action implemented successfully' });\r\n }).error(function (data, status) {\r\n $scope.notify.add({ type: 'danger', title: 'Error!', body: 'Vehicle Export failed' });\r\n $scope.notify.add({ type: 'danger', title: 'Error!', body: 'Vehicle not updated' });\r\n masterFactory.setError(status, data, $scope);\r\n angular.element(\".contentBoxRight\")[0].scrollTop = 0;\r\n });\r\n\r\n }).error(function (data, status) {\r\n $scope.notify.add({ type: 'danger', title: 'Error!', body: 'Special Action not implemented' });\r\n $scope.notify.add({ type: 'danger', title: 'Error!', body: 'Vehicle not updated' });\r\n masterFactory.setError(status, data, $scope);\r\n angular.element(\".contentBoxRight\")[0].scrollTop = 0;\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n $scope.saveVehicle();\r\n $scope.vehicleForm.$submitted = false;\r\n }\r\n };\r\n\r\n\r\n $scope.SubmitSpecialAction = function () {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n\r\n let vehicleList = $scope.multipleSelected.vehiclesList.length > 0 ? $scope.multipleSelected.vehiclesList : [$scope.vehicle.Id];\r\n\r\n VehicleFactory.saveSpecialAction(vehicleList, $scope.SelectedSpecialAction).success(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Special Action implemented successfully' });\r\n }).error(function (data, status) {\r\n $scope.notify.add({ type: 'danger', title: 'Error!', body: 'Special Action not implemented' });\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n };\r\n\r\n $scope.saveVehicle = function () {\r\n $('#loadingModal').modal({ backdrop: 'static' });\r\n var pageindex, id;\r\n $scope.closeModelStateErrors();\r\n if ($scope.multipleSelected.vehiclesList.length > 1) { // save multiple vehicles\r\n VehicleFactory.saveMultipleVehicles($scope.vehicle, $scope.multipleSelected.vehiclesList).success(function (data) {\r\n\r\n VehicleFactory.getVehicleList().success(function (data) {\r\n var dataGrid = $('#VehicleGrid').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n pageindex = dataGrid.pageIndex();\r\n $scope.vehicles = data;\r\n $scope.refreshGrid(pageindex, $scope.multipleSelected.vehiclesList);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Vehicles successfully' });\r\n });\r\n\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else if ($scope.multipleSelected.count == 1 || $scope.isNewEntity) { // save single vehicle\r\n VehicleFactory.saveVehicle($scope.vehicle).success(function (data) {\r\n if (data.ConflictingResult.length > 0) {\r\n $scope.viewConflictingReceiptNumbersModal(data);\r\n }\r\n else {\r\n VehicleFactory.getVehicleList().success(function (data) {\r\n var dataGrid = $('#VehicleGrid').dxDataGrid('instance');\r\n $scope.pageSize = dataGrid.pageSize();\r\n pageindex = dataGrid.pageIndex();\r\n $scope.vehicles = data;\r\n if ($scope.vehicle.Id > 0) {\r\n $scope.refreshGrid(pageindex, [$scope.vehicle.Id]);\r\n }\r\n if ($scope.vehicle.Id <= 0) {\r\n $scope.cancelForm();\r\n $scope.refreshGrid(pageindex, null);\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n if ($scope.vehicle.Id > 0) {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Updated Vehicle successfully' });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Created Vehicle successfully' });\r\n }\r\n });\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n }).finally(function () {\r\n $('#loadingModal').modal('hide');\r\n });\r\n }\r\n else {\r\n $scope.notify.add({ type: 'info', title: 'Info!', body: 'No Vehicle selected' });\r\n $('#loadingModal').modal('hide');\r\n }\r\n\r\n };\r\n\r\n $scope.viewVehicleTypeModal = function () {\r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'app-legacy/Entities/templates/vehicleTypeModal.html',\r\n controller: 'VehicleTypeModalController',\r\n controllerAs: 'modalVm',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n\r\n modalInstance.result.then(function (vehicletypelist) {\r\n VehicleFactory.getVehicleTypes().success(function (data) {\r\n $scope.vehicleTypes = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Saved Vehicle Types successfully' });\r\n }, function () {\r\n\r\n });\r\n };\r\n\r\n $scope.viewCompartmentsModal = function () {\r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'app-legacy/Entities/templates/compartmentsModal.html',\r\n controller: 'CompartmentsModalController',\r\n controllerAs: 'modalVm',\r\n size: 'lg',\r\n scope: $scope,\r\n windowTemplateUrl: 'app-legacy/Entities/templates/modal-scrollable-content.html'\r\n });\r\n\r\n modalInstance.result.then(function (message) {\r\n if (message == 'ok') {\r\n VehicleFactory.getCompartmentSetList().success(function (data) {\r\n $scope.compartmentSetList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, $scope);\r\n });\r\n $scope.notify.add({ type: 'success', title: 'Success!', body: 'Saved Compartment Sets successfully' });\r\n }\r\n\r\n }, function () {\r\n\r\n });\r\n };\r\n\r\n $scope.viewConflictingReceiptNumbersModal = function (response) {\r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'app-legacy/Entities/templates/ConflictingReceiptNumbersModal.html',\r\n controller: 'ConflictingReceiptNumbersModalController',\r\n controllerAs: 'modalVm',\r\n size: 'md',\r\n scope: $scope,\r\n resolve: {\r\n DeviceResult: function () {\r\n return response.ConflictingResult;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (ignoreConflictingReceiptNumbers) {\r\n if (ignoreConflictingReceiptNumbers == 1) {\r\n $scope.vehicle.deviceDetailsVM.IgnoreConflictingReceiptNumbers = true;\r\n $scope.saveVehicle();\r\n }\r\n else $scope.vehicle.deviceDetailsVM.IgnoreConflictingReceiptNumbers = false;\r\n }, function () {\r\n\r\n });\r\n };\r\n\r\n $scope.UpdateReceiptRange = function (companyId) {\r\n if ($scope.vehicle.deviceDetailsVM != null) {\r\n if (companyId != null) {\r\n var result = $scope.vehicle.deviceDetailsVM.RangeVMs.filter(function (rvm) {\r\n return rvm.CompanyId == companyId;\r\n });\r\n $scope.SelectedReceiptRange = result[0];\r\n $scope.SelectedReceiptRangeCopy = angular.copy($scope.SelectedReceiptRange);\r\n }\r\n else if ($scope.initialReceiptRange != null) {\r\n var result = $scope.vehicle.deviceDetailsVM.RangeVMs.filter(function (rvm) {\r\n return rvm.CompanyId == $scope.initialReceiptRange.CompanyId;\r\n });\r\n $scope.SelectedReceiptRange = result[0];\r\n $scope.SelectedReceiptRangeCopy = angular.copy($scope.SelectedReceiptRange);\r\n }\r\n }\r\n else {\r\n $scope.SelectedReceiptRange = null;\r\n $scope.SelectedReceiptRangeCopy = null;\r\n }\r\n };\r\n\r\n // Helping functions and events\r\n $(window).resize(function () {\r\n //onWindowResize('#VehicleGrid', settings.GridMarginHeight);\r\n });\r\n\r\n function grdReadyAction(e) {\r\n //onWindowResize('#VehicleGrid', settings.GridMarginHeight);\r\n };\r\n\r\n collapsibleHeaderClickEvent($scope);\r\n\r\n $scope.closeAlert = function () {\r\n $scope.error = null;\r\n };\r\n\r\n $scope.closeModelStateErrors = function () {\r\n $scope.modelState = [];\r\n };\r\n\r\n $scope.clickHalfDiv = function (control) {\r\n masterFactory.setFocus(control);\r\n };\r\n\r\n }]);\r\n\r\napp.controller('ConflictingReceiptNumbersModalController', ['$scope', '$uibModalInstance', '$uibModal', 'DeviceResult',\r\n function ($scope, $uibModalInstance, $uibModal, DeviceResult) {\r\n var modalVm = this;\r\n\r\n modalVm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n modalVm.IgnoreConflict = function (boolvalue) {\r\n $uibModalInstance.close(boolvalue);\r\n };\r\n\r\n function init() {\r\n modalVm.ConflictingDevices = angular.copy(DeviceResult);\r\n };\r\n\r\n init();\r\n }]);\r\n\r\napp.controller('VehicleTypeModalController', ['$scope', 'VehicleFactory', '$uibModalInstance', '$uibModal', 'masterFactory',\r\n function ($scope, VehicleFactory, $uibModalInstance, $uibModal, masterFactory) {\r\n var modalVm = this;\r\n\r\n init();\r\n\r\n modalVm.addNewVehicleType = function () {\r\n var newidcount = -1;\r\n for (var i = 0; i <= modalVm.VehicleTypesList.length - 1; i++) {\r\n if (modalVm.VehicleTypesList[i].Id <= 0) {\r\n newidcount--;\r\n }\r\n }\r\n modalVm.NewVehicleType = { Id: newidcount, Name: \"\", Color: \"\", ColorHash: \"\" };\r\n modalVm.VehicleTypesList.push(modalVm.NewVehicleType);\r\n };\r\n\r\n modalVm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n modalVm.closeAlert = function () {\r\n modalVm.error = \"\";\r\n };\r\n\r\n modalVm.closeModelStateErrors = function () {\r\n modalVm.modelState = [];\r\n };\r\n\r\n modalVm.deleteVehicleType = function (item, index) {\r\n if (item.Id <= 0) {\r\n modalVm.VehicleTypesList.splice(index, 1);\r\n }\r\n else if (item.Id > 0) {\r\n // already existing vehicle types, have to delete on the server.\r\n VehicleFactory.deleteVehicleType(item.Id).success(function (data) {\r\n modalVm.VehicleTypesList.splice(index, 1);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n });\r\n }\r\n };\r\n\r\n modalVm.save = function () {\r\n if ($scope.vehicleTypeForm.$valid) {\r\n $scope.vehicleTypeForm.$submitted = false;\r\n VehicleFactory.saveVehicleTypes(modalVm.VehicleTypesList).success(function (data) {\r\n $uibModalInstance.close(modalVm.VehicleTypesList);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n });\r\n }\r\n };\r\n\r\n function init() {\r\n modalVm.error = \"\";\r\n modalVm.modelState = [];\r\n VehicleFactory.getVehicleTypes().success(function (data) {\r\n modalVm.VehicleTypesList = data;\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n });\r\n };\r\n }]);\r\n\r\napp.controller('CompartmentsModalController', ['$scope', 'VehicleFactory', '$uibModalInstance', '$uibModal', 'masterFactory',\r\n function ($scope, VehicleFactory, $uibModalInstance, $uibModal, masterFactory) {\r\n var modalVm = this;\r\n\r\n modalVm.addNewCompartmentSet = function () {\r\n var newidcount = -1;\r\n for (var i = 0; i <= modalVm.CompartmentSetList.length - 1; i++) {\r\n if (modalVm.CompartmentSetList[i].Id <= 0) newidcount--;\r\n }\r\n modalVm.NewCompartmentSet = { Id: newidcount, Name: \"\", Compartments: [] };\r\n modalVm.CompartmentSetList.push(modalVm.NewCompartmentSet);\r\n };\r\n\r\n modalVm.addNewCompartment = function () {\r\n var newidcount = -1;\r\n for (var i = 0; i <= modalVm.CompartmentList.length - 1; i++) {\r\n if (modalVm.CompartmentList[i].Id <= 0) newidcount--;\r\n }\r\n modalVm.NewCompartment = { Id: newidcount, Capacity: \"\" };\r\n modalVm.CompartmentList.push(modalVm.NewCompartment);\r\n };\r\n\r\n modalVm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n modalVm.closeAlert = function () {\r\n modalVm.error = \"\";\r\n };\r\n\r\n modalVm.closeModelStateErrors = function () {\r\n modalVm.modelState = [];\r\n };\r\n\r\n modalVm.deleteCompartmentSet = function (item, index) {\r\n if (item.Id <= 0) {\r\n modalVm.CompartmentSetList.splice(index, 1);\r\n modalVm.CompartmentList = [];\r\n }\r\n else if (item.Id > 0) {\r\n VehicleFactory.isCompartmentSetDeletable(item.Id).success(function (data) {\r\n if (data == true) { // if deletable then make a delete call\r\n VehicleFactory.deleteCompartmentSet(item.Id).success(function (data) {\r\n modalVm.CompartmentSetList.splice(index, 1);\r\n modalVm.CompartmentList = [];\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n });\r\n }\r\n else { // else if not deletable then ask for confirmation.\r\n modalVm.CompartmentSetToDelete = { item: item, index: index };\r\n modalVm.OpenConfirmation();\r\n }\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n });\r\n }\r\n };\r\n\r\n modalVm.DeleteCS = function (boolvalue) {\r\n if (boolvalue == 1) {\r\n // compartment set to delete from server;\r\n VehicleFactory.deleteCompartmentSet(modalVm.CompartmentSetToDelete.item.Id).success(function (data) {\r\n modalVm.CompartmentSetList.splice(modalVm.CompartmentSetToDelete.index, 1);\r\n modalVm.CompartmentList = [];\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n });\r\n }\r\n };\r\n\r\n modalVm.deleteCompartment = function (item, index) {\r\n if (item.Id <= 0) {\r\n modalVm.CompartmentList.splice(index, 1);\r\n }\r\n else if (item.Id > 0) {\r\n // code to delete from server.\r\n VehicleFactory.deleteCompartment(item.Id, item.SetId).success(function (data) {\r\n modalVm.CompartmentList.splice(index, 1);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n });\r\n }\r\n };\r\n\r\n modalVm.OpenConfirmation = function () {\r\n var confirmModalInstance = $uibModal.open({\r\n templateUrl: 'app-legacy/Entities/templates/DeleteConfirmationModal.html',\r\n controller: 'DeleteCompartmentsConfirmationModalController',\r\n controllerAs: 'modalVm',\r\n size: 'md'\r\n });\r\n\r\n confirmModalInstance.result.then(function (message) {\r\n if (message == '1') modalVm.DeleteCS(1);\r\n else if (message == '0') modalVm.DeleteCS(0);\r\n }, function () {\r\n\r\n });\r\n };\r\n\r\n modalVm.save = function () {\r\n if ($scope.compartmentSetForm.$valid) {\r\n $scope.compartmentSetForm.$submitted = false;\r\n VehicleFactory.saveCompartmentSets(modalVm.CompartmentSetList).success(function (data) {\r\n $uibModalInstance.close('ok');\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n });\r\n }\r\n\r\n };\r\n\r\n modalVm.selectedCompartmentSet = function (index) {\r\n modalVm.selectedCompartmentSetId = index;\r\n modalVm.CompartmentList = modalVm.CompartmentSetList[index].Compartments;\r\n modalVm.CompartmentListCopy = angular.copy(modalVm.CompartmentSetList[index].Compartments);\r\n };\r\n\r\n function init() {\r\n modalVm.error = \"\";\r\n modalVm.modelState = [];\r\n VehicleFactory.getCompartmentSetList().success(function (data) {\r\n modalVm.CompartmentSetList = data;\r\n modalVm.selectedCompartmentSet(0);\r\n }).error(function (data, status) {\r\n masterFactory.setError(status, data, modalVm);\r\n });\r\n modalVm.CompartmentList = [];\r\n modalVm.CompartmentListCopy = [];\r\n modalVm.CompartmentSetToDelete = { item: null, index: null };\r\n };\r\n\r\n init();\r\n }]);\r\n\r\napp.controller('DeleteCompartmentsConfirmationModalController', ['$scope', '$uibModalInstance', '$uibModal',\r\n function ($scope, $uibModalInstance, $uibModal) {\r\n var modalVm = this;\r\n\r\n modalVm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n modalVm.DeleteCS = function (boolvalue) {\r\n if (boolvalue == 1)\r\n $uibModalInstance.close('1');\r\n else if (boolvalue == 0) $uibModalInstance.close('0');\r\n };\r\n }]);\r\n","\r\nimport {default as app} from '@legacy/App';\r\n\r\napp.controller('LogoutController', function ($scope, $rootScope, $state, $http, settings, masterFactory) {\r\n // Initialization - this runs on load\r\n var init = function () {\r\n\r\n $rootScope.user.isAuthenticated = false;\r\n $rootScope.user.username = \"\";\r\n $rootScope.user.company = \"\";\r\n $http.defaults.headers.common.Authorization = null; \r\n \r\n sessionStorage.clear();\r\n masterFactory.RefreshDbIcon();\r\n $state.go('login');\r\n };\r\n\r\n init();\r\n\r\n\r\n});","import { default as app } from '@legacy/App';\r\n\r\n\r\napp.factory('indexFactory', ['$http', 'settings', function ($http, settings) {\r\n return {\r\n exportData: function (type) {\r\n return $http.get(settings.ApiURL + settings.ExportURL + '/' + type.toLowerCase());\r\n }, \r\n exportVehicles: function(deviceIds){ \r\n return $http.put(settings.ApiURL + settings.ExportURL + '/device', deviceIds);\r\n }\r\n };\r\n}]);\r\n\r\napp.controller('IndexController', ['$scope', 'indexFactory', '$rootScope', '$state', 'version', 'NotifyService', 'ModalNotifyService', 'masterFactory',\r\n function ($scope, indexFactory, $rootScope, $state, version, NotifyService, ModalNotifyService, masterFactory) {\r\n $rootScope.ApiFileVersion = \"...\";\r\n $scope.BuildVersionFull = 'Web v.' + version.BuildVersionFull;\r\n $scope.notify = NotifyService;\r\n $scope.modalNotify = ModalNotifyService;\r\n $scope.currentYear = new Date().getFullYear();\r\n var exportSuccess = 'Content/svg-icons/action-bar-icons/exported.svg';\r\n var exportIdle = 'Content/svg-icons/action-bar-icons/export.svg';\r\n var exportFail = 'Content/svg-icons/action-bar-icons/export_error.svg';\r\n var exportProcess = 'Content/svg-icons/action-bar-icons/exporting.svg';\r\n //var exportSuccess = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAAGgrv1cAAAAQlBMVEX///8cu5scu5scu5scu5scu5scu5scu5sqv6E4xKhHyK5VzLRj0Lpx1cGO3c2c4dOq5tq56uDH7ubV8u3y+/n////jyl1OAAAAB3RSTlMAECAwkMDw7AyixAAAALZJREFUKM+dkEsCwjAIRCcm9EWt1k+4/1VdkLR+VnVWQBh4RJIk7hJESJYRkUnCHZOUTZsO9A5HEpeKJB5RtaIfHQBg6ivg6TFe4D4DYZoAyNojA0ja/MfIMsDZOxSAX0aynP1JJIXZHdbz79DRYkKHllTM9pGFcjEzK1/WHKfGhvx1DQDXVgeIpDLKtXk7rR/WDTMs7jc2dsmit3k78vGQAa7uyxi5rk8TUOvASm+8aQWzpD/1Ao1ECMx0c7lCAAAAAElFTkSuQmCC';\r\n //var exportIdle = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAY1BMVEX///8cu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5vcaXOlAAAAIHRSTlMAAgQPEBcaHR4hIyYpK0BQbnB0dXZ3eICQoLDA4Ozv8OdX3Q8AAACjSURBVCjPtZHLVgJBDAULaZ8oI6I00z2Y+v+vZCHMS3Al2eXWOTfJDdygmty2ufklb0JVYzORUzE+7+FhG5Y0AsV6alO1jHysAApQHdwi0gBSRL+PWwbAl+fdso9j8Gw+gfZHOANsJ6BT7SYguwLWqmtg1Vs1vgPsdQ+w64cT3wm467oFsDzE/MC31/mBFOvyUiSk4mH3BC8fsxCvxv7Ho/6hjoBtDvrEbOWVAAAAAElFTkSuQmCC';\r\n //var exportFail = 'data:image/png;base64,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';\r\n //var exportProcess = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAAGgrv1cAAAAM1BMVEX///8cu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5scu5skiRt3AAAAEHRSTlMAECAwQFBgcICQoLDA0ODwVOCoyAAAAI9JREFUKM+NUYsOgyAMbNcOwcl6//+1UydSwEQvgZQ+rwfRhrgeph4ol52vAluqi+Pfp2OPWHtBIBR2++1TXu1IJSGe6RYh+Co4y76UjumesqdmR2AZd2Z1pHTPy2cwPyB2hQQg9tJsrrwGPr3qqOuk0HDjSyWQG78UecVauiz3TBXQ8jGWh/CMcF3H0xMdfrO3A6mK1IsBAAAAAElFTkSuQmCC';\r\n init();\r\n function init() {\r\n masterFactory.RefreshDbIcon();\r\n }\r\n\r\n // Fix for dynamic height of topnavbar overlapping main content \r\n $(document.body).css('padding-top', $('#topnavbar').height() + 10);\r\n $(document.body).css('padding-bottom', $('#footer').height() + 10);\r\n $(window).resize(function () {\r\n $(document.body).css('padding-top', $('#topnavbar').height() + 10);\r\n $(document.body).css('padding-bottom', $('#footer').height() + 10);\r\n });\r\n\r\n $scope.onClickExport = function (type) {\r\n $('#imgExport').attr('src', 'assets/' + exportProcess);\r\n $('#imgExport').addClass('spin-icon');\r\n indexFactory.exportData(type).success(function (data) {\r\n $('#imgExport').attr('src', 'assets/' + exportSuccess);\r\n $('#imgExport').attr('onclick', '').click(function () { $scope.notify.add({ type: 'success', title: 'Success!', body: 'Export of ' + type + ' is succesful' }); $('#imgExport').attr('src', 'assets/' + exportIdle); $('#imgExport').unbind('click'); });\r\n }).error(function (data, status) {\r\n if (status == 401) {\r\n $state.go('login');\r\n }\r\n else {\r\n $('#imgExport').attr('src', 'assets/' + exportFail);\r\n $('#imgExport').attr('onclick', '').click(function () { $scope.notify.add({ type: 'danger', title: 'Error!', body: 'Export of ' + type + ' failed' }); $('#imgExport').attr('src', 'assets/' + exportIdle); $('#imgExport').unbind('click'); });\r\n }\r\n }).finally(function () {\r\n $('#imgExport').removeClass('spin-icon');\r\n })\r\n };\r\n\r\n }]);","// Angular wrapper for http://eonasdan.github.io/bootstrap-datetimepicker/\r\n\r\n\r\n\r\nimport {default as app} from '@legacy/App';\r\nimport * as _angular_ from 'angular';\r\n\r\n\r\n\r\n app\r\n\r\n .constant('datetimePickerDefaults', {\r\n focusOnShow: false,\r\n showClear: true,\r\n showClose: true,\r\n showTodayButton: true,\r\n toolbarPlacement: 'bottom',\r\n useCurrent: false\r\n })\r\n\r\n .directive('datetimePicker', ['$window', '$document', '$timeout', 'datetimePickerDefaults', function ($window, $document, $timeout, datetimePickerDefaults) {\r\n return {\r\n require: ['ngModel'],\r\n restrict: 'A',\r\n scope: {\r\n onChange: '&?',\r\n onError: '&?',\r\n onHide: '&?',\r\n onShow: '&?',\r\n onUpdate: '&?'\r\n },\r\n link: function (scope, elem, attrs, controllers) {\r\n var ngModelCtrl = controllers[0];\r\n\r\n // configuration\r\n var config = angular.extend({}, ($.fn).datetimepicker.defaults, datetimePickerDefaults, { format: attrs.datetimePicker, locale: moment.locale() });\r\n\r\n angular.forEach(['allowInputToggle', 'calendarWeeks', 'collapse', 'daysOfWeekDisabled', 'debug', 'defaultDate', 'disabledDates',\r\n 'disabledHours', 'disabledHours', 'disabledTimeIntervals', 'enabledDates', 'enabledHours', 'extraFormats', 'focusOnShow', 'format', 'icons',\r\n 'ignoreReadonly', 'inline', 'keepInvalid', 'keepOpen', 'keyBinds', 'maxDate', 'minDate', 'showClear', 'showClose', 'showTodayButton',\r\n 'sideBySide', 'stepping', 'tooltips', 'useCurrent', 'useStrict', 'viewDate', 'widgetParent', 'widgetPositioning'], function (key, index) {\r\n if (angular.isDefined(attrs[key]))\r\n config[key] = scope.$parent.$eval(attrs[key]);\r\n });\r\n\r\n // initialization\r\n var picker = (elem).datetimepicker(config).data(\"DateTimePicker\"),\r\n pickerVisible = false,\r\n toggleElement = angular.isDefined(attrs['datetimePickerToggle']) ?\r\n angular.element(attrs['datetimePickerToggle']) : elem.closest('.input-group').find('.datetime-picker-toggle'),\r\n onChangeHandler = ((scope)).onChange ? (scope).onChange() : null,\r\n onErrorHandler = ((scope)).onError ? (scope).onError() : null,\r\n onHideHandler = (scope).onHide ? (scope).onHide() : null,\r\n onShowHandler = (scope).onShow ? (scope).onShow() : null,\r\n onUpdateHandler = (scope).onUpdate ? (scope).onUpdate() : null;\r\n\r\n // format model value into view value\r\n ngModelCtrl.$formatters.push(function (modelValue) {\r\n if (ngModelCtrl.$isEmpty(modelValue))\r\n return '';\r\n var date = moment(modelValue);\r\n if (!date.isValid())\r\n return '';\r\n return date.format(picker.format());\r\n });\r\n\r\n // parse view value into model value\r\n ngModelCtrl.$parsers.push(function (viewValue) {\r\n if (ngModelCtrl.$isEmpty(viewValue))\r\n return null;\r\n var date = moment(viewValue, picker.format());\r\n if (!date.isValid())\r\n return null;\r\n return date.format('YYYY-MM-DDTHH:mm');\r\n });\r\n\r\n // rendering\r\n ngModelCtrl.$render = function () {\r\n var date = picker.options().defaultDate || null;\r\n if (ngModelCtrl.$viewValue) {\r\n date = ngModelCtrl.$viewValue;\r\n }\r\n picker.date(date);\r\n };\r\n\r\n // initial render\r\n ngModelCtrl.$render();\r\n\r\n // outside click\r\n var clickOutsideFn = function (e) {\r\n if (!e || !e.target || e.target == elem[0] || angular.element(e).hasClass('bootstrap-datetimepicker-widget'))\r\n return;\r\n picker.hide();\r\n };\r\n\r\n // toggle\r\n var toggleFn = function () {\r\n if (!pickerVisible) {\r\n picker.show();\r\n } else {\r\n picker.hide();\r\n }\r\n };\r\n\r\n // cleanup events when scope destroyed\r\n scope.$on('$destroy', function () {\r\n $document.off('click', clickOutsideFn);\r\n angular.element($window).off('blur', clickOutsideFn);\r\n toggleElement.off('click', toggleFn);\r\n });\r\n\r\n // events\r\n elem.on({\r\n 'dp.change': function (e) {\r\n var formatters = ngModelCtrl.$formatters,\r\n idx = formatters.length,\r\n formattedValue = (e).date || '';\r\n while (idx--) {\r\n formattedValue = formatters[idx](formattedValue);\r\n }\r\n if (ngModelCtrl.$viewValue === formattedValue)\r\n return;\r\n\r\n ngModelCtrl.$setViewValue(formattedValue);\r\n\r\n if (onChangeHandler) {\r\n onChangeHandler(e);\r\n }\r\n },\r\n 'dp.error': function (e) {\r\n // force reverted view value to update model value\r\n ngModelCtrl.$setViewValue(elem.val());\r\n\r\n if (onErrorHandler) {\r\n onErrorHandler(e);\r\n }\r\n },\r\n 'dp.hide': function (e) {\r\n if (onHideHandler) {\r\n onHideHandler(e);\r\n }\r\n pickerVisible = false;\r\n\r\n $document.off('click', clickOutsideFn);\r\n angular.element($window).off('blur', clickOutsideFn);\r\n },\r\n 'dp.show': function (e) {\r\n if (onShowHandler) {\r\n onShowHandler();\r\n }\r\n pickerVisible = true;\r\n\r\n $timeout(function () {\r\n $document.on('click', clickOutsideFn);\r\n angular.element($window).on('blur', clickOutsideFn);\r\n }, 0);\r\n },\r\n 'dp.update': function (e) {\r\n if (onUpdateHandler) {\r\n onUpdateHandler(e);\r\n }\r\n }\r\n });\r\n\r\n toggleElement.on('click', toggleFn);\r\n\r\n if (angular.isDefined(attrs.min)) {\r\n var minVal;\r\n ngModelCtrl.$validators.min = function (value) {\r\n return !isValidDatetime(value) || angular.isUndefined(minVal) || !moment(value).isBefore(minVal);\r\n };\r\n attrs.$observe('min', function (val) {\r\n minVal = parseObservedDatetimeValue(val);\r\n ngModelCtrl.$validate();\r\n });\r\n }\r\n\r\n if (angular.isDefined(attrs.max)) {\r\n var maxVal;\r\n ngModelCtrl.$validators.max = function (value) {\r\n return !isValidDatetime(value) || angular.isUndefined(maxVal) || !moment(value).isAfter(maxVal);\r\n };\r\n attrs.$observe('max', function (val) {\r\n maxVal = parseObservedDatetimeValue(val);\r\n ngModelCtrl.$validate();\r\n });\r\n }\r\n\r\n function isValidDatetime(value) {\r\n return !ngModelCtrl.$isEmpty(value) && moment(value).isValid();\r\n }\r\n\r\n function parseObservedDatetimeValue(value) {\r\n var datetime = moment(value);\r\n return !ngModelCtrl.$isEmpty(value) && datetime.isValid() ? datetime : undefined;\r\n }\r\n }\r\n };\r\n }]);\r\n","/* \r\n * for input[type=number] elements, converts all commas to dots when parsing value into model.\r\n * useful for when users browser locale is one that uses commas to represent decimal points (e.g. german).\r\n */\r\n\r\nimport {default as app} from '@legacy/App';\r\n\r\n \r\napp.directive('input', [function () {\r\n return {\r\n restrict: 'E',\r\n require: ['?ngModel'],\r\n priority: 0,\r\n link: {\r\n pre: function (scope, element, attrs, controller) {\r\n var ctrl = controller[0];\r\n if (ctrl && attrs.type.toLowerCase() === 'number') {\r\n ctrl.$parsers.unshift(function (value) {\r\n if (angular.isString(value)) return value.replace(/,/g, '.');\r\n return value;\r\n });\r\n }\r\n }\r\n }\r\n };\r\n}]);","import {default as app} from '@legacy/App';\r\n\r\n\r\napp.constant('version', {\r\n BuildVersionFull: '2.6.0',\r\n BuildDescription: 'No build description provided'\r\n});\r\n","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
\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
\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","
\r\n \r\n Error! \r\n {{ ServerErrors.message }}\r\n
\r\n {{ ServerErrors.details }}
\r\n
\r\n
\r\n \r\n Fix the below validations!\r\n
    \r\n
  • \r\n
    {{errorMessage}}
    \r\n
  • \r\n
\r\n
\r\n\r\n
\r\n \r\n Fix 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","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","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { DxToastComponent } from 'devextreme-angular';\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\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 @ViewChild('toast', { static: true }) toast: DxToastComponent;\r\n\r\n @Input() entityName;\r\n\r\n toastContentType: string;\r\n toastTitle: string;\r\n toastMessage: string;\r\n\r\n toastQueued: boolean;\r\n\r\n\r\n constructor(private app$: AppService, private errors$: ErrorsService, private actions$: ActionsService) {\r\n\r\n app$.ScreenReady.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n\r\n if (this.toastQueued) {\r\n this.toast.instance.show();\r\n this.toastQueued = false;\r\n }\r\n\r\n });\r\n\r\n\r\n actions$.EntityCreated.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.toast.instance.hide();\r\n\r\n this.toastContentType = 'create'\r\n this.toast.type = 'success';\r\n\r\n this.toastQueued = true;\r\n });\r\n\r\n actions$.EntitySaved.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.toast.instance.hide();\r\n\r\n this.toastContentType = 'save';\r\n this.toast.type = 'success';\r\n\r\n this.toastQueued = true;\r\n });\r\n\r\n actions$.EntityDeleted.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.toast.instance.hide();\r\n\r\n this.toastContentType = 'delete';\r\n this.toast.type = 'success';\r\n\r\n this.toastQueued = true;\r\n });\r\n\r\n actions$.EntityResetting.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.toast.instance.hide();\r\n\r\n this.toastContentType = 'reset';\r\n this.toast.type = 'success';\r\n\r\n this.toast.instance.show();\r\n });\r\n\r\n\r\n actions$.EntityBusy.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n\r\n this.toast.instance.hide();\r\n });\r\n\r\n\r\n actions$.EntityCustomAction.pipe(takeUntil(this.unsubscribe$)).subscribe((value) => {\r\n\r\n this.toast.instance.hide();\r\n\r\n this.toastContentType = 'custom';\r\n this.toast.type = value.type ? value.type :'success';\r\n this.toastTitle = value.title;\r\n this.toastMessage = value.message;\r\n\r\n this.toast.instance.show();\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\r\n if (errors) {\r\n\r\n this.toast.instance.hide();\r\n\r\n if (errors.modelState) {\r\n this.toastMessage = 'The ' + this.entityName + ' contains errors';\r\n }\r\n else {\r\n this.toastMessage = errors.message;\r\n }\r\n\r\n this.toastContentType = 'error';\r\n this.toast.type = 'error';\r\n\r\n this.toast.instance.show();\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","\r\n \r\n \r\n
\r\n \r\n
Created {{entityName}} successfully
\r\n
\r\n
\r\n \r\n
Updated {{entityName}} successfully
\r\n
\r\n
\r\n \r\n
{{entityName}} details were reset
\r\n
\r\n
\r\n \r\n
Deleted {{entityName}} successfully
\r\n
\r\n
\r\n \r\n
{{ toastMessage }}
\r\n
\r\n
\r\n \r\n
{{ toastMessage }}
\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\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, DxToastModule, DxLoadPanelModule, DxDataGridModule } 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\n\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 ],\r\n imports: [\r\n CommonModule,\r\n DxTooltipModule,\r\n DxPopupModule,\r\n DxLoadPanelModule,\r\n DxToastModule,\r\n DxDataGridModule,\r\n NgxSmartModalModule.forRoot()\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
\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}","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\n\r\n// hybridify\r\nimport { UpgradeModule } from '@angular/upgrade/static';\r\nimport { UIRouterUpgradeModule } from \"@uirouter/angular-hybrid\";\r\n\r\n\r\n// legacy screens\r\nimport '@legacy/Index';\r\nimport '@legacy/AppConstant';\r\nimport '@legacy/version';\r\nimport '@legacy/Entities/Notification';\r\nimport '@legacy/Entities/Login';\r\nimport '@legacy/Entities/logout';\r\nimport '@legacy/Entities/AdditionalFields';\r\nimport '@legacy/Entities/AuditLog';\r\nimport '@legacy/Entities/BankAccount';\r\nimport '@legacy/Entities/Company';\r\nimport '@legacy/Entities/ConfigurationGroup';\r\nimport '@legacy/Entities/Customer';\r\nimport '@legacy/Entities/CustomerDataArea';\r\nimport '@legacy/Entities/StrappingChartProfiles';\r\nimport '@legacy/Entities/DataArea';\r\nimport '@legacy/Entities/DeviceProduct';\r\nimport '@legacy/Entities/DeviceProductGroup';\r\nimport '@legacy/Entities/Driver';\r\nimport '@legacy/Entities/ExportTransPacConfiguration';\r\nimport '@legacy/Entities/Fleet';\r\nimport '@legacy/Entities/Factor';\r\nimport '@legacy/Entities/ImportTransPacConfiguration';\r\nimport '@legacy/Entities/LoadPoint';\r\nimport '@legacy/Entities/PaymentTerm';\r\nimport '@legacy/Entities/PriceGroup';\r\nimport '@legacy/Entities/Product';\r\nimport '@legacy/Entities/ProductGroup';\r\nimport '@legacy/Entities/PriceGroup';\r\nimport '@legacy/Entities/SafetyCheckText';\r\nimport '@legacy/Entities/SalesTax';\r\nimport '@legacy/Entities/TimeLog';\r\nimport '@legacy/Entities/TransPacConfiguration';\r\nimport '@legacy/Entities/User';\r\nimport '@legacy/Entities/Vehicle';\r\n\r\n\r\n// legacy directives\r\nimport '@legacy/Scripts/Directives/datetimepicker-directive';\r\nimport '@legacy/Scripts/Directives/input-number';\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 } from '@pdi/platform-angular-template';\r\nimport { PdiButtonsModule } from '@pdi/platform-angular-template';\r\nimport { PdiFooterModule } from \"@pdi/platform-angular-template\";\r\nimport { PdiNotificationsModule } from '@pdi/platform-angular-template';\r\n\r\n\r\n@NgModule({\r\n declarations: [\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 UpgradeModule,\r\n UIRouterUpgradeModule.forRoot(),\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\r\n ],\r\n providers: [NgxSmartModalService],\r\n bootstrap: [] // hybrid starts ng1 below\r\n})\r\nexport class AppModule {\r\n constructor(private upgrade: UpgradeModule) { }\r\n ngDoBootstrap() {\r\n this.upgrade.bootstrap(document.getElementById('FleetAtlasApp'), ['FleetAtlasApp'], { strictDi: false });\r\n }\r\n}\r\n","import { Injectable, Inject } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { BehaviorSubject, forkJoin, Subject } from \"rxjs\";\r\n\r\n\r\nimport { UIRouter } from '@uirouter/core';\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AppService {\r\n \r\n $rootScope: any;\r\n\r\n constructor(private _http: HttpClient, @Inject('$injector') $injector, private router: UIRouter) {\r\n\r\n this.$rootScope = $injector.get('$rootScope');\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\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.$rootScope.pageTitle = title;\r\n }\r\n redirectToLogin(): any {\r\n this.router.stateService.go('login');\r\n }\r\n redirectTo(page): any {\r\n this.router.stateService.go(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}\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}","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 { 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 ) { }\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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 }, (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.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 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 { 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 } 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 ) { }\r\n\r\n @ViewChild('dataGrid', { static: true }) dataGrid: DxDataGridComponent;\r\n\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\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: \"\" };\r\n\r\n popoverVisibility: boolean[] = [];\r\n\r\n ngOnInit(): void {\r\n\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.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.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 this.originalId = res.Id;\r\n this.originalPos = res.Position;\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 }, (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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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\r\n let data = selectedRowsInfo.selectedRowsData[0];\r\n this.unloadPoint = this.entityData.value.UnloadPoints.find(a => a.Id == data.Id);\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 }, (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 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 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
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\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
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
\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
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\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
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\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
\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
\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 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 \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\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\r\n
\r\n
{{ item.Name }}
\r\n
{{ item.Code }}
\r\n
\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
\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
\r\n
\r\n \r\n
\r\n
\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 \r\n Error! \r\n {{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}\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, DxDropDownBoxModule, 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 DxDropDownBoxModule,\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 { 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 { 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 ) { }\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$.loginUserInfo.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 this.app$.setScreenTitle(this.entityName);\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.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.isAddForm = 0;\r\n this.collapseColor = 'green';\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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 Profile 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 Description 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 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: boolean;\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 { 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 ) { }\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.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.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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 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 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
\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
\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 { 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 } 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) {\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 this.currentFieldsList = this.assessment.value.FormSections[this.currentSectionTab].SectionFields.filter(f => !f.deleted);\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 }\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\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\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 this.dataGrid.loadPanel.indicatorSrc = 'assets/Content/Images/spinner.gif';\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 {{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
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n\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 { 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 ) { }\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 }\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 }, (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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 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\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 } 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\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\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 });\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 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.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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 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
\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 \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
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\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 \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\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\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 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 { MatDatepickerModule } from '@angular/material/datepicker';\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\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 MatDatepickerModule,\r\n MatInputModule,\r\n MatNativeDateModule,\r\n MatSelectModule,\r\n DxTagBoxModule,\r\n NgxSmartModalModule.forRoot()\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
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
0\">\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\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 this.dataGrid.loadPanel.indicatorSrc = 'assets/Content/Images/spinner.gif';\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 {{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 { 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 ) { }\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.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.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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 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\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
\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\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
\r\n \r\n Error! \r\n {{ serverErrors.message }}\r\n
{{ 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\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
\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 } 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\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 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
\r\n
\r\n \r\n
\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 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}\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 return this._http.delete(e.endpoint.fleet.vehicle + '/vehicletypes/' + param, {\r\n headers: this.header\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 { 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 _ 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\r\n\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\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 ) {\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 }\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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 }\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 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\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\r\n this.errors$.handleNetworkError(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 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\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
\r\n
\r\n
\r\n
\r\n Build Type\r\n
\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
\r\n
\r\n
\r\n
\r\n Carrier\r\n
\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
\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 Box Config\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
\r\n
\r\n Data Area\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
\r\n
\r\n
\r\n
\r\n State\r\n
\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
\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
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \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 Vehicle Type\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 Build Type\r\n
\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
\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
\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
\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
\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
\r\n
\r\n
\r\n
\r\n State\r\n
\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 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
\r\n
\r\n
\r\n Timezone value\r\n
\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
\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 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 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
\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
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\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\nimport { PdiFooterComponent } from \"@pdi/platform-angular-template\";\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 currentYear: number;\r\n BuildVersionFull = clientVersion.BuildVersionFull;\r\n @ViewChild(PdiFooterComponent) pdiFooter: any;\r\n\r\n constructor(private app$: AppService) { }\r\n\r\n ngOnInit(): void {\r\n this.currentYear = moment().year();\r\n this.app$.APIVersionDetails.subscribe(\r\n (res: any) => {\r\n this.ApiFileVersion = res.connectionFailed ? res.ApiFileVersion : 'API v.' + res.ApiFileVersion;\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.pdiFooter.currentYear = this.currentYear;\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\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) { } \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.app$.redirectTo(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('logout');\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","
\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 { 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 { 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 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 }\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\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 });\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 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
\r\n
\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 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
\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 Bulk Plant\r\n 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 Product\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","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\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 ) { }\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 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 },\r\n (err) => {\r\n this.app$.notifyScreenReady();\r\n this.error = err.message;\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\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 app$: AppService, \r\n private loginService$: LoginService, \r\n private loginSSOService$: LoginSSOService,\r\n private el: ElementRef\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.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.app$.redirectTo('home');\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 submitSSOLogin(){\r\n this.app$.notifyScreenBusy();\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 },\r\n (err) => {\r\n this.app$.notifyScreenReady();\r\n this.error = err.message;\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 { 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,) { }\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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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.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.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 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\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 { 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 ) { }\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 }\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 }, (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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 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 { 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 } 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 ) { }\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 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 }\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 }, (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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 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 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 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 { 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 ) { }\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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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.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.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 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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 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 { 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) {\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\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\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 this.dataGrid.loadPanel.indicatorSrc = 'assets/Content/Images/spinner.gif';\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 {{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\"\r\n src=\"assets/Content/Images/Icons/arrow_green_left.png\">\r\n 0\"\r\n (click)=\"addProducts()\"\r\n class=\"img-button pt-5 mt-5\"\r\n src=\"assets/Content/Images/Icons/arrow_yellow_left.png\">\r\n\r\n \r\n 0\"\r\n (click)=\"removeProducts()\"\r\n class=\"img-button pt-5 mt-5\"\r\n src=\"assets/Content/Images/Icons/arrow_dark_gray_right.png\">\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\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 { 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 ) { }\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 this.deSelectEntity();\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 }, (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 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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 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 { 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) {\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\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\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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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('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 { 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 { dxDataGridHeightAdjustment } 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\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 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 }\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 this.app$.notifyScreenReady();\r\n this.isAddForm = 0;\r\n this.collapseColor = 'green';\r\n });\r\n }\r\n\r\n onInitialized(e: any) {\r\n this.resizeScreenContent();\r\n this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 }, (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 }\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 }, (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 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 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
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\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
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\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 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 \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 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 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 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 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
\r\n \r\n Error! \r\n {{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
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
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\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 ],\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 } 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 indicatorSrc = \"assets/Content/Images/spinner.gif\";\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\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 this.gridSafetyCheckCustomer.loadPanel.indicatorSrc = this.indicatorSrc;\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 this.gridSafetyCheckLoginLogout.loadPanel.indicatorSrc = this.indicatorSrc;\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 this.gridSafetyCheckProduct.loadPanel.indicatorSrc = this.indicatorSrc;\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 this.gridSafetyCheckVehicleInspection.loadPanel.indicatorSrc = this.indicatorSrc;\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 this.gridSafetyCheckOthers.loadPanel.indicatorSrc = this.indicatorSrc;\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 this.gridSafetyCheckDevices.loadPanel.indicatorSrc = this.indicatorSrc;\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
\r\n
\r\n
Safety check group
\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
Data area
\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
\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 \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \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 { 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\r\n constructor(\r\n private auditLog$: AuditLogInterface,\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.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 }\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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 },\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 }\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 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
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\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\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 { 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 ) { }\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 }\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 }\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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 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 { 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 ) { }\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 }\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 }, (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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 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 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 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
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\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 { 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 ) { }\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 }\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 }, (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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 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 { 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) {\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 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 }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \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 { 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 ) { }\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.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 }, (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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\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\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\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\r\n this.searchDateFrom_PrintTemplateTestData.setDate(this.searchDateFrom_PrintTemplateTestData.getDate() - 7);\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 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 this.dataGridTestData.instance().option('loadPanel').indicatorSrc = 'assets/Content/Images/spinner.gif';\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 this.dataGridLogData.instance().option('loadPanel').indicatorSrc = 'assets/Content/Images/spinner.gif';\r\n\r\n this.resizeScreenContent();\r\n }\r\n\r\n onInitialized_Attribute(e) {\r\n this.dataGridAttributeData = e.component.instance();\r\n this.dataGridAttributeData.instance().option('loadPanel').indicatorSrc = 'assets/Content/Images/spinner.gif';\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].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 isBankCardTemplate = () => [11].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 this.printTemplateEditor.height = h - 200;\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\r\n}\r\n","
\r\n\r\n\r\n
\r\n\r\n
\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 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: '#1cbb9b', defaultLength: 80, additionalColor: '#beb6b6'\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 } 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\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.currentCompanyId = this.companies[0].Id;\r\n\r\n this.allTemplatesNames = multipleData[1];\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\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\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
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
\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
\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}\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\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\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 = t);\r\n this.printTemplates$.getTemplatesTypes().subscribe(t => this.printTemplateTypes = t);\r\n this.shared$.getVehicleTypes().subscribe(t => this.vehicleTypes = t);\r\n this.shared$.getSafetyGroups().subscribe(t => this.safetyGroups = t);\r\n this.printTexts$.getSafetySummaryTypes().subscribe(t => this.safetySummaryTypes = t);\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
\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
\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 this.dataGrid.loadPanel.indicatorSrc = 'assets/Content/Images/spinner.gif';\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 {{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
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 { 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) {\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 }\r\n}\r\n","
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \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 \r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n
\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 { MatDatepickerModule } from '@angular/material/datepicker';\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\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 MatDatepickerModule\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 { 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\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 this.dataGrid.loadPanel.indicatorSrc = 'assets/Content/Images/spinner.gif';\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 {{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\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 { 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 { 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) {\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 }\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 this.user = new Entity();\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 this.dataGrid.loadPanel.indicatorSrc = \"assets/Content/Images/spinner.gif\";\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 }, (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 }\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 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
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\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 {{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.11.0.11',\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 'zone.js';\r\nimport { NgZone } from '@angular/core';\r\n\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nimport { UIRouter, UrlService } from '@uirouter/core';\r\n\r\nimport {default as FacnmAppJs} from './app-legacy/App';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\n// Using AngularJS config block, call `deferIntercept()`.\r\n// This tells UI-Router to delay the initial URL sync (until all bootstrapping is complete)\r\nFacnmAppJs.config([ '$urlServiceProvider', ($urlService: UrlService) => $urlService.deferIntercept() ]);\r\n\r\n\r\n// Manually bootstrap the Angular app\r\nplatformBrowserDynamic().bootstrapModule(AppModule).then(platformRef => {\r\n // Initialize the Angular Module\r\n // get() the UIRouter instance from DI to initialize the router\r\n const urlService: UrlService = platformRef.injector.get(UIRouter).urlService;\r\n \r\n // Instruct UIRouter to listen to URL changes\r\n function startUIRouter() {\r\n urlService.listen();\r\n urlService.sync();\r\n }\r\n \r\n platformRef.injector.get(NgZone).run(startUIRouter);\r\n\r\n});\r\n\r\n"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[]}