@hitsoft/kadooglu-keops 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/config/enums/route-names.d.ts +2 -1
  2. package/esm2020/config/enums/route-names.mjs +1 -1
  3. package/esm2020/config/providers/route.provider.mjs +10 -1
  4. package/esm2020/lib/features/cost-calculation/components/cost-calculation-inputs.component.mjs +12 -10
  5. package/esm2020/lib/features/cost-calculation/components/cost-calculation-results.component.mjs +3 -3
  6. package/esm2020/lib/features/cost-calculation/components/cost-calculation.component.mjs +86 -31
  7. package/esm2020/lib/features/cost-calculation/engine/currency.utils.mjs +10 -10
  8. package/esm2020/lib/features/cost-calculation/engine/formulas.mjs +10 -10
  9. package/esm2020/lib/features/cost-calculation/engine/item-resolver.mjs +16 -16
  10. package/esm2020/lib/features/cost-calculation/engine/stage-builder.mjs +8 -8
  11. package/esm2020/lib/features/cost-parameter-categories/components/cost-parameter-categories.component.mjs +3 -7
  12. package/esm2020/lib/features/cost-parameter-categories/components/cost-parameter-category-form.component.mjs +4 -14
  13. package/esm2020/lib/features/cost-parameters/components/cost-parameter-form.component.mjs +5 -6
  14. package/esm2020/lib/features/cost-parameters/components/cost-parameters.component.mjs +7 -10
  15. package/esm2020/lib/features/item-classifications/components/item-classifications.component.mjs +199 -0
  16. package/esm2020/lib/features/item-classifications/hit-item-classifications-routing.module.mjs +29 -0
  17. package/esm2020/lib/features/item-classifications/hit-item-classifications.module.mjs +60 -0
  18. package/esm2020/lib/features/price-parameters/components/price-parameter-form-items.component.mjs +6 -6
  19. package/esm2020/lib/features/price-parameters/components/price-parameter-form-price-lists.component.mjs +6 -6
  20. package/esm2020/lib/features/price-parameters/components/price-parameter-form.component.mjs +114 -46
  21. package/esm2020/lib/features/price-parameters/components/price-parameter-price-update-preview-modal.component.mjs +26 -0
  22. package/esm2020/lib/features/price-parameters/components/price-parameters.component.mjs +24 -17
  23. package/esm2020/lib/features/price-parameters/hit-price-parameters.module.mjs +5 -2
  24. package/esm2020/lib/features/price-parameters/price-parameter-cost-match.service.mjs +3 -3
  25. package/esm2020/lib/features/price-parameters/price-parameter-form-data.service.mjs +1 -2
  26. package/esm2020/lib/features/price-parameters/price-parameter-lookups.service.mjs +5 -10
  27. package/esm2020/lib/features/price-parameters/price-parameter-price-update.service.mjs +119 -0
  28. package/esm2020/lib/features/settings/components/cost-settings.component.mjs +8 -4
  29. package/esm2020/lib/kadooglu-keops-routing.module.mjs +3 -1
  30. package/esm2020/lib/shared/amount-currency-input/amount-currency-input.component.mjs +5 -3
  31. package/esm2020/lib/shared/cost-item-classification.utils.mjs +5 -2
  32. package/esm2020/lib/utils/business-region.utils.mjs +12 -0
  33. package/esm2020/lib/utils/currency.utils.mjs +3 -1
  34. package/esm2020/proxy/business-region.enum.mjs +9 -0
  35. package/esm2020/proxy/controllers/index.mjs +2 -1
  36. package/esm2020/proxy/controllers/item-classification.service.mjs +42 -0
  37. package/esm2020/proxy/controllers/item.service.mjs +7 -3
  38. package/esm2020/proxy/controllers/price-list.service.mjs +5 -5
  39. package/esm2020/proxy/controllers/price-parameter.service.mjs +6 -1
  40. package/esm2020/proxy/cost-parameter-categories/dtos/models.mjs +1 -1
  41. package/esm2020/proxy/cost-parameters/dtos/models.mjs +1 -1
  42. package/esm2020/proxy/item-classifications/dtos/index.mjs +2 -0
  43. package/esm2020/proxy/item-classifications/dtos/models.mjs +2 -0
  44. package/esm2020/proxy/price-parameters/dtos/models.mjs +1 -1
  45. package/esm2020/proxy/public-api.mjs +3 -2
  46. package/esm2020/proxy/settings/models.mjs +1 -1
  47. package/fesm2015/hitsoft-kadooglu-keops-config.mjs +9 -0
  48. package/fesm2015/hitsoft-kadooglu-keops-config.mjs.map +1 -1
  49. package/fesm2015/hitsoft-kadooglu-keops-proxy.mjs +63 -14
  50. package/fesm2015/hitsoft-kadooglu-keops-proxy.mjs.map +1 -1
  51. package/fesm2015/hitsoft-kadooglu-keops.mjs +795 -287
  52. package/fesm2015/hitsoft-kadooglu-keops.mjs.map +1 -1
  53. package/fesm2020/hitsoft-kadooglu-keops-config.mjs +9 -0
  54. package/fesm2020/hitsoft-kadooglu-keops-config.mjs.map +1 -1
  55. package/fesm2020/hitsoft-kadooglu-keops-proxy.mjs +63 -14
  56. package/fesm2020/hitsoft-kadooglu-keops-proxy.mjs.map +1 -1
  57. package/fesm2020/hitsoft-kadooglu-keops.mjs +776 -272
  58. package/fesm2020/hitsoft-kadooglu-keops.mjs.map +1 -1
  59. package/lib/features/cost-calculation/components/cost-calculation-inputs.component.d.ts +9 -7
  60. package/lib/features/cost-calculation/components/cost-calculation.component.d.ts +16 -8
  61. package/lib/features/cost-calculation/engine/currency.utils.d.ts +2 -2
  62. package/lib/features/cost-calculation/engine/formulas.d.ts +2 -2
  63. package/lib/features/cost-parameter-categories/components/cost-parameter-categories.component.d.ts +0 -1
  64. package/lib/features/cost-parameter-categories/components/cost-parameter-category-form.component.d.ts +1 -5
  65. package/lib/features/cost-parameters/components/cost-parameter-form.component.d.ts +2 -2
  66. package/lib/features/cost-parameters/components/cost-parameters.component.d.ts +1 -2
  67. package/lib/features/item-classifications/components/item-classifications.component.d.ts +66 -0
  68. package/lib/features/item-classifications/hit-item-classifications-routing.module.d.ts +7 -0
  69. package/lib/features/item-classifications/hit-item-classifications.module.d.ts +17 -0
  70. package/lib/features/price-parameters/components/price-parameter-form-items.component.d.ts +3 -3
  71. package/lib/features/price-parameters/components/price-parameter-form-price-lists.component.d.ts +3 -3
  72. package/lib/features/price-parameters/components/price-parameter-form.component.d.ts +16 -9
  73. package/lib/features/price-parameters/components/price-parameter-price-update-preview-modal.component.d.ts +11 -0
  74. package/lib/features/price-parameters/components/price-parameters.component.d.ts +5 -2
  75. package/lib/features/price-parameters/hit-price-parameters.module.d.ts +12 -11
  76. package/lib/features/price-parameters/price-parameter-cost-match.service.d.ts +2 -2
  77. package/lib/features/price-parameters/price-parameter-form-data.service.d.ts +0 -1
  78. package/lib/features/price-parameters/price-parameter-lookups.service.d.ts +0 -1
  79. package/lib/features/price-parameters/price-parameter-price-update.service.d.ts +30 -0
  80. package/lib/shared/amount-currency-input/amount-currency-input.component.d.ts +2 -2
  81. package/lib/shared/cost-item-classification.utils.d.ts +5 -1
  82. package/lib/utils/business-region.utils.d.ts +7 -0
  83. package/lib/utils/currency.utils.d.ts +1 -0
  84. package/package.json +1 -1
  85. package/proxy/business-region.enum.d.ts +6 -0
  86. package/proxy/controllers/index.d.ts +1 -0
  87. package/proxy/controllers/item-classification.service.d.ts +17 -0
  88. package/proxy/controllers/item.service.d.ts +3 -1
  89. package/proxy/controllers/price-list.service.d.ts +3 -2
  90. package/proxy/controllers/price-parameter.service.d.ts +2 -1
  91. package/proxy/cost-parameter-categories/dtos/models.d.ts +0 -4
  92. package/proxy/cost-parameters/dtos/models.d.ts +4 -3
  93. package/proxy/item-classifications/dtos/index.d.ts +1 -0
  94. package/proxy/item-classifications/dtos/models.d.ts +34 -0
  95. package/proxy/price-parameters/dtos/models.d.ts +38 -12
  96. package/proxy/public-api.d.ts +2 -1
  97. package/proxy/settings/models.d.ts +1 -0
  98. package/esm2020/lib/features/cost-parameter-categories/cost-parameter-category-l10n-helper.mjs +0 -6
  99. package/esm2020/proxy/cost-parameter-categories/cost-parameter-category-parent-code.enum.mjs +0 -8
  100. package/lib/features/cost-parameter-categories/cost-parameter-category-l10n-helper.d.ts +0 -2
  101. package/proxy/cost-parameter-categories/cost-parameter-category-parent-code.enum.d.ts +0 -5
@@ -1,7 +1,7 @@
1
1
  import * as i3 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { EventEmitter, Component, Input, Output, NgModule, forwardRef, Pipe, ViewEncapsulation, Injectable, ViewChild } from '@angular/core';
4
+ import { EventEmitter, Component, Input, Output, NgModule, forwardRef, Pipe, Injectable, ViewEncapsulation, ViewChild } from '@angular/core';
5
5
  import * as i1 from '@angular/forms';
6
6
  import { Validators, FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';
7
7
  import * as i4 from '@abp/ng.core';
@@ -17,13 +17,13 @@ import { CommercialUiModule } from '@volo/abp.commercial.ng.ui';
17
17
  import * as i6 from '@ng-bootstrap/ng-bootstrap';
18
18
  import { NgbDropdownModule, NgbNavModule, NgbModalModule } from '@ng-bootstrap/ng-bootstrap';
19
19
  import * as i1$1 from '@hitsoft/kadooglu-keops/proxy';
20
- import { CostItemCalculationType, CostGroupRole, ExchangeRateSource, Currency, CostItemSystemCode, CostParameterCategoryParentCode, CostParameterStatus, costParameterCategoryParentCodeOptions, PriceParameterStatus, LoadingTargetKind, PalletStatus } from '@hitsoft/kadooglu-keops/proxy';
20
+ import { CostItemCalculationType, CostGroupRole, ExchangeRateSource, Currency, CostItemSystemCode, BusinessRegion, CostParameterStatus, PriceParameterStatus, LoadingTargetKind, PalletStatus } from '@hitsoft/kadooglu-keops/proxy';
21
21
  import * as i7 from 'devextreme-angular';
22
22
  import { DxDataGridModule, DxTextBoxModule, DxButtonModule, DxCheckBoxModule, DxSelectBoxModule, DxDateBoxModule, DxDataGridComponent } from 'devextreme-angular';
23
23
  import * as i8 from 'devextreme-angular/ui/nested';
24
24
  import * as i9 from 'devextreme-angular/core';
25
- import { finalize, map } from 'rxjs/operators';
26
- import { forkJoin, of } from 'rxjs';
25
+ import { finalize, map, switchMap, tap, catchError, takeWhile } from 'rxjs/operators';
26
+ import { forkJoin, of, throwError, timer } from 'rxjs';
27
27
  import DataSource from 'devextreme/data/data_source';
28
28
  import ArrayStore from 'devextreme/data/array_store';
29
29
  import * as i2$1 from '@volo/abp.ng.identity/proxy';
@@ -171,7 +171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
171
171
  args: [{ selector: 'lib-cost-items', template: "<abp-page [title]=\"'Keops::CostItems:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"CostItemsToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsCost.CostItems.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::CostItems:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"CostItemsWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsCost.CostItems.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <ng-container *abpPermission=\"'KeopsCost.CostItems.Delete'\">\r\n <button\r\n *ngIf=\"!row.data.isSystem\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"displayOrder\"\r\n dataType=\"number\"\r\n width=\"100\"\r\n caption=\"{{ 'Keops::CostItems:DisplayOrder' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"name\"\r\n caption=\"{{ 'Keops::CostItems:Name' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"calculationType\"\r\n cellTemplate=\"calculationTypeTpl\"\r\n alignment=\"left\"\r\n caption=\"{{ 'Keops::CostItems:CalculationType' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'calculationTypeTpl'\">\r\n <span>{{ getCalculationTypeLabel(row.data.calculationType) | abpLocalization }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"isSystem\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n cellTemplate=\"isSystemTpl\"\r\n caption=\"{{ 'Keops::CostItems:IsSystem' | abpLocalization }}\"\r\n width=\"120\"\r\n alignment=\"center\"\r\n >\r\n <div *dxTemplate=\"let row of 'isSystemTpl'\">\r\n <i [class]=\"row.data.isSystem ? 'fa fa-check text-success' : 'fa fa-times text-danger'\"></i>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-cost-item-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n (saved)=\"onSaved()\"\r\n></lib-cost-item-form>\r\n" }]
172
172
  }], ctorParameters: function () { return [{ type: i1$1.CostItemService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
173
173
 
174
- const routes$t = [
174
+ const routes$u = [
175
175
  {
176
176
  path: '',
177
177
  component: CostItemsComponent,
@@ -185,11 +185,11 @@ class HitCostItemsRoutingModule {
185
185
  }
186
186
  HitCostItemsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostItemsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
187
187
  HitCostItemsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitCostItemsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
188
- HitCostItemsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostItemsRoutingModule, imports: [RouterModule.forChild(routes$t), RouterModule] });
188
+ HitCostItemsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostItemsRoutingModule, imports: [RouterModule.forChild(routes$u), RouterModule] });
189
189
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostItemsRoutingModule, decorators: [{
190
190
  type: NgModule,
191
191
  args: [{
192
- imports: [RouterModule.forChild(routes$t)],
192
+ imports: [RouterModule.forChild(routes$u)],
193
193
  exports: [RouterModule],
194
194
  }]
195
195
  }] });
@@ -445,7 +445,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
445
445
  args: [{ selector: 'lib-cost-groups', template: "<abp-page [title]=\"'Keops::CostGroups:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"CostGroupsToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsCost.CostGroups.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::CostGroups:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"CostGroupsWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsCost.CostGroups.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsCost.CostGroups.Delete'\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"displayOrder\"\r\n dataType=\"number\"\r\n width=\"100\"\r\n caption=\"{{ 'Keops::CostGroups:DisplayOrder' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"code\"\r\n width=\"160\"\r\n caption=\"{{ 'Keops::CostGroups:Code' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"name\"\r\n width=\"200\"\r\n caption=\"{{ 'Keops::CostGroups:Name' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"groupRole\"\r\n width=\"150\"\r\n cellTemplate=\"groupRoleTpl\"\r\n caption=\"{{ 'Keops::CostGroups:GroupRole' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'groupRoleTpl'\">\r\n {{ roleLabel(row.data.groupRole) | abpLocalization }}\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"itemCodes\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"itemCodesTpl\"\r\n caption=\"{{ 'Keops::CostGroups:ItemCodes' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'itemCodesTpl'\">\r\n <div *ngFor=\"let label of getItemsLabels(row.data.itemCodes)\">{{ label }}</div>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-cost-group-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n [allCostItems]=\"costItems\"\r\n (saved)=\"onSaved()\"\r\n></lib-cost-group-form>\r\n" }]
446
446
  }], ctorParameters: function () { return [{ type: i1$1.CostGroupService }, { type: i1$1.CostItemService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
447
447
 
448
- const routes$s = [
448
+ const routes$t = [
449
449
  {
450
450
  path: '',
451
451
  component: CostGroupsComponent,
@@ -459,11 +459,11 @@ class HitCostGroupsRoutingModule {
459
459
  }
460
460
  HitCostGroupsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostGroupsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
461
461
  HitCostGroupsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitCostGroupsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
462
- HitCostGroupsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostGroupsRoutingModule, imports: [RouterModule.forChild(routes$s), RouterModule] });
462
+ HitCostGroupsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostGroupsRoutingModule, imports: [RouterModule.forChild(routes$t), RouterModule] });
463
463
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostGroupsRoutingModule, decorators: [{
464
464
  type: NgModule,
465
465
  args: [{
466
- imports: [RouterModule.forChild(routes$s)],
466
+ imports: [RouterModule.forChild(routes$t)],
467
467
  exports: [RouterModule],
468
468
  }]
469
469
  }] });
@@ -625,7 +625,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
625
625
  args: [{ selector: 'lib-exchange-rates', template: "<abp-page [title]=\"'Keops::ExchangeRates:Title' | abpLocalization\">\n <div id=\"ExchangeRatesWrapper\">\n <lib-central-bank-rates\n [cbExchangeRate]=\"exchangeRate?.cbExchangeRate\"\n ></lib-central-bank-rates>\n <lib-fixed-rates-form\n [exchangeRate]=\"exchangeRate\"\n (saved)=\"loadExchangeRate()\"\n ></lib-fixed-rates-form>\n </div>\n</abp-page>\n" }]
626
626
  }], ctorParameters: function () { return [{ type: i1$1.ExchangeRateService }]; } });
627
627
 
628
- const routes$r = [
628
+ const routes$s = [
629
629
  {
630
630
  path: '',
631
631
  component: ExchangeRatesComponent,
@@ -639,11 +639,11 @@ class HitExchangeRatesRoutingModule {
639
639
  }
640
640
  HitExchangeRatesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitExchangeRatesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
641
641
  HitExchangeRatesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitExchangeRatesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
642
- HitExchangeRatesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitExchangeRatesRoutingModule, imports: [RouterModule.forChild(routes$r), RouterModule] });
642
+ HitExchangeRatesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitExchangeRatesRoutingModule, imports: [RouterModule.forChild(routes$s), RouterModule] });
643
643
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitExchangeRatesRoutingModule, decorators: [{
644
644
  type: NgModule,
645
645
  args: [{
646
- imports: [RouterModule.forChild(routes$r)],
646
+ imports: [RouterModule.forChild(routes$s)],
647
647
  exports: [RouterModule],
648
648
  }]
649
649
  }] });
@@ -706,15 +706,17 @@ const CURRENCY_OPTIONS = [
706
706
  { value: Currency.EUR, label: 'EUR' },
707
707
  ];
708
708
  // Foreign-exchange-only subset (no TRY) for fields that express a rate against TRY.
709
- const CURRENCY_OPTIONS_FX_ONLY = CURRENCY_OPTIONS.filter(o => o.value === Currency.USD || o.value === Currency.EUR);
709
+ const CURRENCY_OPTIONS_FX_ONLY = CURRENCY_OPTIONS.filter(o => o.value === Currency.USD || o.value === Currency.EUR);
710
+ // TRY/USD-only subset (no EUR) for fields that may only be expressed in TRY or USD.
711
+ const CURRENCY_OPTIONS_TRY_USD = CURRENCY_OPTIONS.filter(o => o.value === Currency.TRY || o.value === Currency.USD);
710
712
 
711
713
  class AmountCurrencyInputComponent {
712
714
  constructor() {
713
715
  this.currencyOptions = CURRENCY_OPTIONS;
714
716
  this.currency = Currency.TRY;
715
717
  this.currencyChange = new EventEmitter();
716
- this.value = null;
717
718
  this.disabled = false;
719
+ this.value = null;
718
720
  this.onChange = () => undefined;
719
721
  this.onTouched = () => undefined;
720
722
  }
@@ -743,7 +745,7 @@ class AmountCurrencyInputComponent {
743
745
  }
744
746
  }
745
747
  AmountCurrencyInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AmountCurrencyInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
746
- AmountCurrencyInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AmountCurrencyInputComponent, selector: "lib-amount-currency-input", inputs: { currencyOptions: "currencyOptions", currency: "currency" }, outputs: { currencyChange: "currencyChange" }, providers: [
748
+ AmountCurrencyInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AmountCurrencyInputComponent, selector: "lib-amount-currency-input", inputs: { currencyOptions: "currencyOptions", currency: "currency", disabled: "disabled" }, outputs: { currencyChange: "currencyChange" }, providers: [
747
749
  {
748
750
  provide: NG_VALUE_ACCESSOR,
749
751
  useExisting: forwardRef(() => AmountCurrencyInputComponent),
@@ -765,6 +767,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
765
767
  type: Input
766
768
  }], currencyChange: [{
767
769
  type: Output
770
+ }], disabled: [{
771
+ type: Input
768
772
  }] } });
769
773
 
770
774
  class ResolveCodeNamePipe {
@@ -814,21 +818,21 @@ function buildRoleGroups(rawOil, stages) {
814
818
  });
815
819
  }
816
820
 
817
- function toAmount(baseUsd, rateUsd, rateEur) {
821
+ function toAmount(baseTry, rateUsd, rateEur) {
818
822
  return {
819
- usd: baseUsd,
820
- try: baseUsd * rateUsd,
821
- eur: rateEur > 0 ? (baseUsd * rateUsd) / rateEur : 0,
823
+ try: baseTry,
824
+ usd: rateUsd > 0 ? baseTry / rateUsd : 0,
825
+ eur: rateEur > 0 ? baseTry / rateEur : 0,
822
826
  };
823
827
  }
824
- function toBaseUsd(value, currency, rateUsd, rateEur) {
828
+ function toBaseTry(value, currency, rateUsd, rateEur) {
825
829
  switch (currency) {
826
- case Currency.USD:
827
- return value;
828
830
  case Currency.TRY:
829
- return rateUsd <= 0 ? 0 : value / rateUsd;
831
+ return value;
832
+ case Currency.USD:
833
+ return value * rateUsd;
830
834
  case Currency.EUR:
831
- return rateUsd <= 0 ? 0 : (value * rateEur) / rateUsd;
835
+ return value * rateEur;
832
836
  default:
833
837
  return value;
834
838
  }
@@ -855,25 +859,25 @@ function indexItemsBySystemCode(stages) {
855
859
  return map;
856
860
  }
857
861
  function resolveItems(itemsByCode, rateUsd, rateEur) {
858
- const baseUsd = (code) => {
862
+ const baseTry = (code) => {
859
863
  const item = itemsByCode.get(code);
860
- return item ? toBaseUsd(parseDecimal(item.value), item.currency, rateUsd, rateEur) : 0;
864
+ return item ? toBaseTry(parseDecimal(item.value), item.currency, rateUsd, rateEur) : 0;
861
865
  };
862
866
  const ratePercent = (code) => parseDecimal(itemsByCode.get(code)?.value ?? 0);
863
867
  return {
864
- port: baseUsd(CostItemSystemCode.Port),
865
- inspectionCustoms: baseUsd(CostItemSystemCode.InspectionCustoms),
866
- freight: baseUsd(CostItemSystemCode.Freight),
868
+ port: baseTry(CostItemSystemCode.Port),
869
+ inspectionCustoms: baseTry(CostItemSystemCode.InspectionCustoms),
870
+ freight: baseTry(CostItemSystemCode.Freight),
867
871
  lossRate: ratePercent(CostItemSystemCode.Loss),
868
- refineryOverhead: baseUsd(CostItemSystemCode.RefineryOverhead),
869
- refineryAuxMaterials: baseUsd(CostItemSystemCode.RefineryAuxMaterials),
870
- fillingPackagingOverhead: baseUsd(CostItemSystemCode.FillingPackagingOverhead),
871
- packaging: baseUsd(CostItemSystemCode.Packaging),
872
- salesMarketing: baseUsd(CostItemSystemCode.SalesMarketing),
873
- generalAdmin: baseUsd(CostItemSystemCode.GeneralAdmin),
874
- finance: baseUsd(CostItemSystemCode.Finance),
875
- contingency: baseUsd(CostItemSystemCode.Contingency),
876
- variableDepreciation: baseUsd(CostItemSystemCode.VariableDepreciation),
872
+ refineryOverhead: baseTry(CostItemSystemCode.RefineryOverhead),
873
+ refineryAuxMaterials: baseTry(CostItemSystemCode.RefineryAuxMaterials),
874
+ fillingPackagingOverhead: baseTry(CostItemSystemCode.FillingPackagingOverhead),
875
+ packaging: baseTry(CostItemSystemCode.Packaging),
876
+ salesMarketing: baseTry(CostItemSystemCode.SalesMarketing),
877
+ generalAdmin: baseTry(CostItemSystemCode.GeneralAdmin),
878
+ finance: baseTry(CostItemSystemCode.Finance),
879
+ contingency: baseTry(CostItemSystemCode.Contingency),
880
+ variableDepreciation: baseTry(CostItemSystemCode.VariableDepreciation),
877
881
  profitRate: ratePercent(CostItemSystemCode.ProfitRate),
878
882
  };
879
883
  }
@@ -887,6 +891,9 @@ function isCustomCostItem(item) {
887
891
  function currencyApplies(calculationType) {
888
892
  return (calculationType !== CostItemCalculationType.Rate &&
889
893
  calculationType !== CostItemCalculationType.Custom);
894
+ }
895
+ function isPackagingCostItem(item) {
896
+ return item.systemCode === CostItemSystemCode.Packaging;
890
897
  }
891
898
 
892
899
  function buildComputedBaseByCode(resolvedItems, loss, profit) {
@@ -912,12 +919,12 @@ function buildCostStages(stages, computedBaseByCode, itemsByCode, rateUsd, rateE
912
919
  .slice()
913
920
  .sort((a, b) => a.displayOrder - b.displayOrder)
914
921
  .map(stage => {
915
- let stageTotalUsd = 0;
922
+ let stageTotalTry = 0;
916
923
  const lines = stage.items.map(item => {
917
- const itemUsd = item.systemCode != null
924
+ const itemTry = item.systemCode != null
918
925
  ? (computedBaseByCode.get(item.systemCode) ?? 0)
919
- : toBaseUsd(parseDecimal(item.value), item.currency, rateUsd, rateEur);
920
- stageTotalUsd += itemUsd;
926
+ : toBaseTry(parseDecimal(item.value), item.currency, rateUsd, rateEur);
927
+ stageTotalTry += itemTry;
921
928
  return {
922
929
  costItemCode: item.costItemCode,
923
930
  costItemName: item.costItemName,
@@ -927,7 +934,7 @@ function buildCostStages(stages, computedBaseByCode, itemsByCode, rateUsd, rateE
927
934
  ratePercent: isRateCostItem(item)
928
935
  ? parseDecimal(itemsByCode.get(item.systemCode)?.value ?? 0)
929
936
  : undefined,
930
- amount: toAmount(itemUsd, rateUsd, rateEur),
937
+ amount: toAmount(itemTry, rateUsd, rateEur),
931
938
  };
932
939
  });
933
940
  return {
@@ -936,18 +943,18 @@ function buildCostStages(stages, computedBaseByCode, itemsByCode, rateUsd, rateE
936
943
  displayOrder: stage.displayOrder,
937
944
  groupRole: stage.groupRole,
938
945
  lines,
939
- subtotal: toAmount(stageTotalUsd, rateUsd, rateEur),
946
+ subtotal: toAmount(stageTotalTry, rateUsd, rateEur),
940
947
  };
941
948
  });
942
949
  }
943
950
 
944
- function calculateLoss(rawOilUsd, resolvedItems) {
945
- return (((rawOilUsd + resolvedItems.port + resolvedItems.inspectionCustoms + resolvedItems.freight) *
951
+ function calculateLoss(rawOilTry, resolvedItems) {
952
+ return (((rawOilTry + resolvedItems.port + resolvedItems.inspectionCustoms + resolvedItems.freight) *
946
953
  resolvedItems.lossRate) /
947
954
  100);
948
955
  }
949
- function calculateProductionCost(rawOilUsd, resolvedItems, loss) {
950
- return (rawOilUsd +
956
+ function calculateProductionCost(rawOilTry, resolvedItems, loss) {
957
+ return (rawOilTry +
951
958
  resolvedItems.port +
952
959
  resolvedItems.inspectionCustoms +
953
960
  resolvedItems.freight +
@@ -973,18 +980,18 @@ function calculateTotalSalePrice(totalCost, profit) {
973
980
  }
974
981
  function calculateCost(request) {
975
982
  const { rateUsd, rateEur } = request;
976
- const rawOilUsd = toBaseUsd(request.rawOilPrice, request.rawOilCurrency, rateUsd, rateEur);
983
+ const rawOilTry = toBaseTry(request.rawOilPrice, request.rawOilCurrency, rateUsd, rateEur);
977
984
  const itemsByCode = indexItemsBySystemCode(request.stages);
978
985
  const resolvedItems = resolveItems(itemsByCode, rateUsd, rateEur);
979
- const loss = calculateLoss(rawOilUsd, resolvedItems);
980
- const productionCost = calculateProductionCost(rawOilUsd, resolvedItems, loss);
986
+ const loss = calculateLoss(rawOilTry, resolvedItems);
987
+ const productionCost = calculateProductionCost(rawOilTry, resolvedItems, loss);
981
988
  const totalCost = calculateTotalCost(productionCost, resolvedItems);
982
989
  const profit = calculateProfit(totalCost, resolvedItems.profitRate);
983
990
  const totalSalePrice = calculateTotalSalePrice(totalCost, profit);
984
991
  const computedBaseByCode = buildComputedBaseByCode(resolvedItems, loss, profit);
985
992
  const stages = buildCostStages(request.stages, computedBaseByCode, itemsByCode, rateUsd, rateEur);
986
993
  return {
987
- rawOil: toAmount(rawOilUsd, rateUsd, rateEur),
994
+ rawOil: toAmount(rawOilTry, rateUsd, rateEur),
988
995
  stages,
989
996
  productionCost: toAmount(productionCost, rateUsd, rateEur),
990
997
  totalCost: toAmount(totalCost, rateUsd, rateEur),
@@ -1004,17 +1011,52 @@ function resolveSystemRates(rate) {
1004
1011
  return [rate.cbExchangeRate?.usdBuyingRate ?? 0, rate.cbExchangeRate?.eurBuyingRate ?? 0];
1005
1012
  }
1006
1013
 
1014
+ const businessRegionLabels = {
1015
+ [BusinessRegion.Undefined]: 'Keops::BusinessRegions:Undefined',
1016
+ [BusinessRegion.Domestic]: 'Keops::BusinessRegions:Domestic',
1017
+ [BusinessRegion.International]: 'Keops::BusinessRegions:International',
1018
+ };
1019
+ // Single source of truth for the business region dropdown options shared across feature forms.
1020
+ const BUSINESS_REGION_OPTIONS = [
1021
+ { value: BusinessRegion.Domestic, label: businessRegionLabels[BusinessRegion.Domestic] },
1022
+ { value: BusinessRegion.International, label: businessRegionLabels[BusinessRegion.International] },
1023
+ ];
1024
+
1025
+ class PriceParameterLookupsService {
1026
+ constructor(priceParameterTypeService, costParameterCategoryService) {
1027
+ this.priceParameterTypeService = priceParameterTypeService;
1028
+ this.costParameterCategoryService = costParameterCategoryService;
1029
+ }
1030
+ loadTypeAndCategoryLookups() {
1031
+ return forkJoin({
1032
+ types: this.priceParameterTypeService.getLookup(),
1033
+ categories: this.costParameterCategoryService.getList(),
1034
+ }).pipe(map(({ types, categories }) => ({
1035
+ typeOptions: types ?? [],
1036
+ groupOptions: categories ?? [],
1037
+ })));
1038
+ }
1039
+ }
1040
+ PriceParameterLookupsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterLookupsService, deps: [{ token: i1$1.PriceParameterTypeService }, { token: i1$1.CostParameterCategoryService }], target: i0.ɵɵFactoryTarget.Injectable });
1041
+ PriceParameterLookupsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterLookupsService, providedIn: 'root' });
1042
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterLookupsService, decorators: [{
1043
+ type: Injectable,
1044
+ args: [{ providedIn: 'root' }]
1045
+ }], ctorParameters: function () { return [{ type: i1$1.PriceParameterTypeService }, { type: i1$1.CostParameterCategoryService }]; } });
1046
+
1007
1047
  class CostCalculationInputsComponent {
1008
1048
  constructor() {
1009
1049
  this.isRate = isRateCostItem;
1050
+ this.isPackaging = isPackagingCostItem;
1010
1051
  this.currencyOptions = CURRENCY_OPTIONS;
1052
+ this.tryUsdCurrencyOptions = CURRENCY_OPTIONS_TRY_USD;
1011
1053
  this.itemsDataSource = null;
1012
1054
  this.parameters = [];
1013
1055
  this.stages = [];
1014
1056
  this.selectedItemCode = null;
1015
1057
  this.selectedItemCodeChange = new EventEmitter();
1016
- this.selectedParameterCode = null;
1017
- this.selectedParameterCodeChange = new EventEmitter();
1058
+ this.selectedParameterDocEntry = null;
1059
+ this.selectedParameterDocEntryChange = new EventEmitter();
1018
1060
  this.rawOilPrice = 0;
1019
1061
  this.rawOilPriceChange = new EventEmitter();
1020
1062
  this.rawOilCurrency = Currency.USD;
@@ -1034,7 +1076,7 @@ class CostCalculationInputsComponent {
1034
1076
  this.itemChange.emit();
1035
1077
  }
1036
1078
  onParameterSelected() {
1037
- this.selectedParameterCodeChange.emit(this.selectedParameterCode);
1079
+ this.selectedParameterDocEntryChange.emit(this.selectedParameterDocEntry);
1038
1080
  this.parameterChange.emit();
1039
1081
  }
1040
1082
  onRawOilPriceChange() {
@@ -1055,10 +1097,10 @@ class CostCalculationInputsComponent {
1055
1097
  }
1056
1098
  }
1057
1099
  CostCalculationInputsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostCalculationInputsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1058
- CostCalculationInputsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostCalculationInputsComponent, selector: "lib-cost-calculation-inputs", inputs: { itemsDataSource: "itemsDataSource", itemDisplayExpr: "itemDisplayExpr", parameters: "parameters", parameterDisplayExpr: "parameterDisplayExpr", stages: "stages", selectedItemCode: "selectedItemCode", selectedParameterCode: "selectedParameterCode", rawOilPrice: "rawOilPrice", rawOilCurrency: "rawOilCurrency", systemRateUsd: "systemRateUsd", systemRateEur: "systemRateEur", rateUsd: "rateUsd", rateEur: "rateEur" }, outputs: { selectedItemCodeChange: "selectedItemCodeChange", selectedParameterCodeChange: "selectedParameterCodeChange", rawOilPriceChange: "rawOilPriceChange", rawOilCurrencyChange: "rawOilCurrencyChange", rateUsdChange: "rateUsdChange", rateEurChange: "rateEurChange", itemChange: "itemChange", parameterChange: "parameterChange", recalc: "recalc" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header fw-bold\">{{ 'Keops::CostCalculations:Inputs' | abpLocalization }}</div>\r\n <div class=\"card-body pt-0\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'Keops::CostCalculations:Item' | abpLocalization }}</label>\r\n <dx-select-box\r\n [dataSource]=\"itemsDataSource\"\r\n valueExpr=\"code\"\r\n [displayExpr]=\"itemDisplayExpr\"\r\n [searchEnabled]=\"true\"\r\n [searchExpr]=\"['code', 'name']\"\r\n searchMode=\"contains\"\r\n [searchTimeout]=\"200\"\r\n [minSearchLength]=\"0\"\r\n [showDataBeforeSearch]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"selectedItemCode\"\r\n (onValueChanged)=\"onItemSelected()\"\r\n [placeholder]=\"'Keops::SelectAnOption' | abpLocalization\"\r\n >\r\n <div *dxTemplate=\"let it of 'item'\" class=\"text-truncate\" [title]=\"itemDisplayExpr(it)\">\r\n {{ itemDisplayExpr(it) }}\r\n </div>\r\n </dx-select-box>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'Keops::CostCalculations:CostParameter' | abpLocalization }}</label>\r\n <dx-select-box\r\n [dataSource]=\"parameters\"\r\n valueExpr=\"code\"\r\n [displayExpr]=\"parameterDisplayExpr\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"selectedParameterCode\"\r\n (onValueChanged)=\"onParameterSelected()\"\r\n [placeholder]=\"'Keops::SelectAnOption' | abpLocalization\"\r\n ></dx-select-box>\r\n </div>\r\n\r\n <div class=\"border rounded p-2 mb-3\">\r\n <div class=\"text-uppercase small mb-2\">{{ 'Keops::CostCalculations:Rates' | abpLocalization }}</div>\r\n\r\n <div class=\"row g-2 mb-2\">\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:SystemUsdRate' | abpLocalization }}</label>\r\n <div class=\"text-muted\">{{ systemRateUsd | number }}</div>\r\n </div>\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:SystemEurRate' | abpLocalization }}</label>\r\n <div class=\"text-muted\">{{ systemRateEur | number }}</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row g-2\">\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:UsdRate' | abpLocalization }}</label>\r\n <input type=\"number\" class=\"form-control form-control-sm\" [(ngModel)]=\"rateUsd\" (ngModelChange)=\"onRateUsdChange()\" />\r\n </div>\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:EurRate' | abpLocalization }}</label>\r\n <input type=\"number\" class=\"form-control form-control-sm\" [(ngModel)]=\"rateEur\" (ngModelChange)=\"onRateEurChange()\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'Keops::CostCalculations:RawOilPrice' | abpLocalization }}</label>\r\n <lib-amount-currency-input\r\n [(ngModel)]=\"rawOilPrice\"\r\n (ngModelChange)=\"onRawOilPriceChange()\"\r\n [(currency)]=\"rawOilCurrency\"\r\n (currencyChange)=\"onRawOilCurrencyChange()\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let stage of stages\">\r\n <div class=\"mb-2\">\r\n <div class=\"text-muted text-uppercase small fw-bold border-bottom pb-1\">\r\n <span>{{ stage.groupCode }} - </span>\r\n <span>{{ stage.groupName }}</span>\r\n </div>\r\n </div>\r\n <div class=\"mb-2\" *ngFor=\"let item of stage.items\">\r\n <label class=\"form-label small mb-1\">\r\n {{ item.costItemName }}\r\n </label>\r\n <div class=\"input-group\">\r\n <input type=\"number\" class=\"form-control\" [(ngModel)]=\"item.value\" (ngModelChange)=\"recalc.emit()\" />\r\n <span class=\"input-group-text\" *ngIf=\"isRate(item)\">%</span>\r\n <select\r\n *ngIf=\"!isRate(item)\"\r\n class=\"form-select flex-grow-0 w-auto\"\r\n [(ngModel)]=\"item.currency\"\r\n (ngModelChange)=\"recalc.emit()\"\r\n >\r\n <option *ngFor=\"let c of currencyOptions\" [ngValue]=\"c.value\">{{ c.label }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"mb-2 text-muted small fst-italic\" *ngIf=\"stage.items.length === 0\">\r\n \u2014 {{ 'Keops::CostCalculations:NoItems' | abpLocalization }} \u2014\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "directive", type: i9.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: AmountCurrencyInputComponent, selector: "lib-amount-currency-input", inputs: ["currencyOptions", "currency"], outputs: ["currencyChange"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
1100
+ CostCalculationInputsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostCalculationInputsComponent, selector: "lib-cost-calculation-inputs", inputs: { itemsDataSource: "itemsDataSource", itemDisplayExpr: "itemDisplayExpr", parameters: "parameters", parameterDisplayExpr: "parameterDisplayExpr", stages: "stages", selectedItemCode: "selectedItemCode", selectedParameterDocEntry: "selectedParameterDocEntry", rawOilPrice: "rawOilPrice", rawOilCurrency: "rawOilCurrency", systemRateUsd: "systemRateUsd", systemRateEur: "systemRateEur", rateUsd: "rateUsd", rateEur: "rateEur" }, outputs: { selectedItemCodeChange: "selectedItemCodeChange", selectedParameterDocEntryChange: "selectedParameterDocEntryChange", rawOilPriceChange: "rawOilPriceChange", rawOilCurrencyChange: "rawOilCurrencyChange", rateUsdChange: "rateUsdChange", rateEurChange: "rateEurChange", itemChange: "itemChange", parameterChange: "parameterChange", recalc: "recalc" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header fw-bold\">{{ 'Keops::CostCalculations:Inputs' | abpLocalization }}</div>\r\n <div class=\"card-body pt-0\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'Keops::CostCalculations:PriceParameter' | abpLocalization }}</label>\r\n <dx-select-box\r\n [dataSource]=\"parameters\"\r\n valueExpr=\"docEntry\"\r\n [displayExpr]=\"parameterDisplayExpr\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"selectedParameterDocEntry\"\r\n (onValueChanged)=\"onParameterSelected()\"\r\n [placeholder]=\"'Keops::SelectAnOption' | abpLocalization\"\r\n ></dx-select-box>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'Keops::CostCalculations:Item' | abpLocalization }}</label>\r\n <dx-select-box\r\n [dataSource]=\"itemsDataSource\"\r\n valueExpr=\"code\"\r\n [displayExpr]=\"itemDisplayExpr\"\r\n [searchEnabled]=\"true\"\r\n [searchExpr]=\"['code', 'name']\"\r\n searchMode=\"contains\"\r\n [searchTimeout]=\"200\"\r\n [minSearchLength]=\"0\"\r\n [showDataBeforeSearch]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"selectedItemCode\"\r\n (onValueChanged)=\"onItemSelected()\"\r\n [placeholder]=\"'Keops::SelectAnOption' | abpLocalization\"\r\n >\r\n <div *dxTemplate=\"let it of 'item'\" class=\"text-truncate\" [title]=\"itemDisplayExpr(it)\">\r\n {{ itemDisplayExpr(it) }}\r\n </div>\r\n </dx-select-box>\r\n </div>\r\n\r\n <div class=\"border rounded p-2 mb-3\">\r\n <div class=\"text-uppercase small mb-2\">{{ 'Keops::CostCalculations:Rates' | abpLocalization }}</div>\r\n\r\n <div class=\"row g-2 mb-2\">\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:SystemUsdRate' | abpLocalization }}</label>\r\n <div class=\"text-muted\">{{ systemRateUsd | number }}</div>\r\n </div>\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:SystemEurRate' | abpLocalization }}</label>\r\n <div class=\"text-muted\">{{ systemRateEur | number }}</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row g-2\">\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:UsdRate' | abpLocalization }}</label>\r\n <input type=\"number\" class=\"form-control form-control-sm\" [(ngModel)]=\"rateUsd\" (ngModelChange)=\"onRateUsdChange()\" />\r\n </div>\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:EurRate' | abpLocalization }}</label>\r\n <input type=\"number\" class=\"form-control form-control-sm\" [(ngModel)]=\"rateEur\" (ngModelChange)=\"onRateEurChange()\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'Keops::CostCalculations:RawOilPrice' | abpLocalization }}</label>\r\n <lib-amount-currency-input\r\n [(ngModel)]=\"rawOilPrice\"\r\n (ngModelChange)=\"onRawOilPriceChange()\"\r\n [(currency)]=\"rawOilCurrency\"\r\n [currencyOptions]=\"tryUsdCurrencyOptions\"\r\n (currencyChange)=\"onRawOilCurrencyChange()\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let stage of stages\">\r\n <div class=\"mb-2\">\r\n <div class=\"text-muted text-uppercase small fw-bold border-bottom pb-1\">\r\n <span>{{ stage.groupCode }} - </span>\r\n <span>{{ stage.groupName }}</span>\r\n </div>\r\n </div>\r\n <div class=\"mb-2\" *ngFor=\"let item of stage.items\">\r\n <label class=\"form-label small mb-1\">\r\n {{ item.costItemName }}\r\n </label>\r\n <div class=\"input-group\" *ngIf=\"isRate(item); else amountCurrency\">\r\n <input type=\"number\" class=\"form-control\" [(ngModel)]=\"item.value\" (ngModelChange)=\"recalc.emit()\" />\r\n <span class=\"input-group-text\">%</span>\r\n </div>\r\n <ng-template #amountCurrency>\r\n <lib-amount-currency-input\r\n [(ngModel)]=\"item.value\"\r\n (ngModelChange)=\"recalc.emit()\"\r\n [(currency)]=\"item.currency\"\r\n (currencyChange)=\"recalc.emit()\"\r\n [currencyOptions]=\"isPackaging(item) ? tryUsdCurrencyOptions : currencyOptions\"\r\n [disabled]=\"isPackaging(item)\"\r\n ></lib-amount-currency-input>\r\n </ng-template>\r\n </div>\r\n <div class=\"mb-2 text-muted small fst-italic\" *ngIf=\"stage.items.length === 0\">\r\n \u2014 {{ 'Keops::CostCalculations:NoItems' | abpLocalization }} \u2014\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "directive", type: i9.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: AmountCurrencyInputComponent, selector: "lib-amount-currency-input", inputs: ["currencyOptions", "currency", "disabled"], outputs: ["currencyChange"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
1059
1101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostCalculationInputsComponent, decorators: [{
1060
1102
  type: Component,
1061
- args: [{ selector: 'lib-cost-calculation-inputs', template: "<div class=\"card\">\r\n <div class=\"card-header fw-bold\">{{ 'Keops::CostCalculations:Inputs' | abpLocalization }}</div>\r\n <div class=\"card-body pt-0\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'Keops::CostCalculations:Item' | abpLocalization }}</label>\r\n <dx-select-box\r\n [dataSource]=\"itemsDataSource\"\r\n valueExpr=\"code\"\r\n [displayExpr]=\"itemDisplayExpr\"\r\n [searchEnabled]=\"true\"\r\n [searchExpr]=\"['code', 'name']\"\r\n searchMode=\"contains\"\r\n [searchTimeout]=\"200\"\r\n [minSearchLength]=\"0\"\r\n [showDataBeforeSearch]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"selectedItemCode\"\r\n (onValueChanged)=\"onItemSelected()\"\r\n [placeholder]=\"'Keops::SelectAnOption' | abpLocalization\"\r\n >\r\n <div *dxTemplate=\"let it of 'item'\" class=\"text-truncate\" [title]=\"itemDisplayExpr(it)\">\r\n {{ itemDisplayExpr(it) }}\r\n </div>\r\n </dx-select-box>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'Keops::CostCalculations:CostParameter' | abpLocalization }}</label>\r\n <dx-select-box\r\n [dataSource]=\"parameters\"\r\n valueExpr=\"code\"\r\n [displayExpr]=\"parameterDisplayExpr\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"selectedParameterCode\"\r\n (onValueChanged)=\"onParameterSelected()\"\r\n [placeholder]=\"'Keops::SelectAnOption' | abpLocalization\"\r\n ></dx-select-box>\r\n </div>\r\n\r\n <div class=\"border rounded p-2 mb-3\">\r\n <div class=\"text-uppercase small mb-2\">{{ 'Keops::CostCalculations:Rates' | abpLocalization }}</div>\r\n\r\n <div class=\"row g-2 mb-2\">\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:SystemUsdRate' | abpLocalization }}</label>\r\n <div class=\"text-muted\">{{ systemRateUsd | number }}</div>\r\n </div>\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:SystemEurRate' | abpLocalization }}</label>\r\n <div class=\"text-muted\">{{ systemRateEur | number }}</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row g-2\">\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:UsdRate' | abpLocalization }}</label>\r\n <input type=\"number\" class=\"form-control form-control-sm\" [(ngModel)]=\"rateUsd\" (ngModelChange)=\"onRateUsdChange()\" />\r\n </div>\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:EurRate' | abpLocalization }}</label>\r\n <input type=\"number\" class=\"form-control form-control-sm\" [(ngModel)]=\"rateEur\" (ngModelChange)=\"onRateEurChange()\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'Keops::CostCalculations:RawOilPrice' | abpLocalization }}</label>\r\n <lib-amount-currency-input\r\n [(ngModel)]=\"rawOilPrice\"\r\n (ngModelChange)=\"onRawOilPriceChange()\"\r\n [(currency)]=\"rawOilCurrency\"\r\n (currencyChange)=\"onRawOilCurrencyChange()\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let stage of stages\">\r\n <div class=\"mb-2\">\r\n <div class=\"text-muted text-uppercase small fw-bold border-bottom pb-1\">\r\n <span>{{ stage.groupCode }} - </span>\r\n <span>{{ stage.groupName }}</span>\r\n </div>\r\n </div>\r\n <div class=\"mb-2\" *ngFor=\"let item of stage.items\">\r\n <label class=\"form-label small mb-1\">\r\n {{ item.costItemName }}\r\n </label>\r\n <div class=\"input-group\">\r\n <input type=\"number\" class=\"form-control\" [(ngModel)]=\"item.value\" (ngModelChange)=\"recalc.emit()\" />\r\n <span class=\"input-group-text\" *ngIf=\"isRate(item)\">%</span>\r\n <select\r\n *ngIf=\"!isRate(item)\"\r\n class=\"form-select flex-grow-0 w-auto\"\r\n [(ngModel)]=\"item.currency\"\r\n (ngModelChange)=\"recalc.emit()\"\r\n >\r\n <option *ngFor=\"let c of currencyOptions\" [ngValue]=\"c.value\">{{ c.label }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"mb-2 text-muted small fst-italic\" *ngIf=\"stage.items.length === 0\">\r\n \u2014 {{ 'Keops::CostCalculations:NoItems' | abpLocalization }} \u2014\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n" }]
1103
+ args: [{ selector: 'lib-cost-calculation-inputs', template: "<div class=\"card\">\r\n <div class=\"card-header fw-bold\">{{ 'Keops::CostCalculations:Inputs' | abpLocalization }}</div>\r\n <div class=\"card-body pt-0\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'Keops::CostCalculations:PriceParameter' | abpLocalization }}</label>\r\n <dx-select-box\r\n [dataSource]=\"parameters\"\r\n valueExpr=\"docEntry\"\r\n [displayExpr]=\"parameterDisplayExpr\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"selectedParameterDocEntry\"\r\n (onValueChanged)=\"onParameterSelected()\"\r\n [placeholder]=\"'Keops::SelectAnOption' | abpLocalization\"\r\n ></dx-select-box>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'Keops::CostCalculations:Item' | abpLocalization }}</label>\r\n <dx-select-box\r\n [dataSource]=\"itemsDataSource\"\r\n valueExpr=\"code\"\r\n [displayExpr]=\"itemDisplayExpr\"\r\n [searchEnabled]=\"true\"\r\n [searchExpr]=\"['code', 'name']\"\r\n searchMode=\"contains\"\r\n [searchTimeout]=\"200\"\r\n [minSearchLength]=\"0\"\r\n [showDataBeforeSearch]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"selectedItemCode\"\r\n (onValueChanged)=\"onItemSelected()\"\r\n [placeholder]=\"'Keops::SelectAnOption' | abpLocalization\"\r\n >\r\n <div *dxTemplate=\"let it of 'item'\" class=\"text-truncate\" [title]=\"itemDisplayExpr(it)\">\r\n {{ itemDisplayExpr(it) }}\r\n </div>\r\n </dx-select-box>\r\n </div>\r\n\r\n <div class=\"border rounded p-2 mb-3\">\r\n <div class=\"text-uppercase small mb-2\">{{ 'Keops::CostCalculations:Rates' | abpLocalization }}</div>\r\n\r\n <div class=\"row g-2 mb-2\">\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:SystemUsdRate' | abpLocalization }}</label>\r\n <div class=\"text-muted\">{{ systemRateUsd | number }}</div>\r\n </div>\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:SystemEurRate' | abpLocalization }}</label>\r\n <div class=\"text-muted\">{{ systemRateEur | number }}</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row g-2\">\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:UsdRate' | abpLocalization }}</label>\r\n <input type=\"number\" class=\"form-control form-control-sm\" [(ngModel)]=\"rateUsd\" (ngModelChange)=\"onRateUsdChange()\" />\r\n </div>\r\n <div class=\"col-6\">\r\n <label class=\"form-label small mb-1\">{{ 'Keops::CostCalculations:EurRate' | abpLocalization }}</label>\r\n <input type=\"number\" class=\"form-control form-control-sm\" [(ngModel)]=\"rateEur\" (ngModelChange)=\"onRateEurChange()\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'Keops::CostCalculations:RawOilPrice' | abpLocalization }}</label>\r\n <lib-amount-currency-input\r\n [(ngModel)]=\"rawOilPrice\"\r\n (ngModelChange)=\"onRawOilPriceChange()\"\r\n [(currency)]=\"rawOilCurrency\"\r\n [currencyOptions]=\"tryUsdCurrencyOptions\"\r\n (currencyChange)=\"onRawOilCurrencyChange()\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let stage of stages\">\r\n <div class=\"mb-2\">\r\n <div class=\"text-muted text-uppercase small fw-bold border-bottom pb-1\">\r\n <span>{{ stage.groupCode }} - </span>\r\n <span>{{ stage.groupName }}</span>\r\n </div>\r\n </div>\r\n <div class=\"mb-2\" *ngFor=\"let item of stage.items\">\r\n <label class=\"form-label small mb-1\">\r\n {{ item.costItemName }}\r\n </label>\r\n <div class=\"input-group\" *ngIf=\"isRate(item); else amountCurrency\">\r\n <input type=\"number\" class=\"form-control\" [(ngModel)]=\"item.value\" (ngModelChange)=\"recalc.emit()\" />\r\n <span class=\"input-group-text\">%</span>\r\n </div>\r\n <ng-template #amountCurrency>\r\n <lib-amount-currency-input\r\n [(ngModel)]=\"item.value\"\r\n (ngModelChange)=\"recalc.emit()\"\r\n [(currency)]=\"item.currency\"\r\n (currencyChange)=\"recalc.emit()\"\r\n [currencyOptions]=\"isPackaging(item) ? tryUsdCurrencyOptions : currencyOptions\"\r\n [disabled]=\"isPackaging(item)\"\r\n ></lib-amount-currency-input>\r\n </ng-template>\r\n </div>\r\n <div class=\"mb-2 text-muted small fst-italic\" *ngIf=\"stage.items.length === 0\">\r\n \u2014 {{ 'Keops::CostCalculations:NoItems' | abpLocalization }} \u2014\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n" }]
1062
1104
  }], propDecorators: { itemsDataSource: [{
1063
1105
  type: Input
1064
1106
  }], itemDisplayExpr: [{
@@ -1073,9 +1115,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1073
1115
  type: Input
1074
1116
  }], selectedItemCodeChange: [{
1075
1117
  type: Output
1076
- }], selectedParameterCode: [{
1118
+ }], selectedParameterDocEntry: [{
1077
1119
  type: Input
1078
- }], selectedParameterCodeChange: [{
1120
+ }], selectedParameterDocEntryChange: [{
1079
1121
  type: Output
1080
1122
  }], rawOilPrice: [{
1081
1123
  type: Input
@@ -1116,10 +1158,10 @@ class CostCalculationResultsComponent {
1116
1158
  }
1117
1159
  }
1118
1160
  CostCalculationResultsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostCalculationResultsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1119
- CostCalculationResultsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostCalculationResultsComponent, selector: "lib-cost-calculation-results", inputs: { result: "result", roleGroups: "roleGroups", itemName: "itemName", rateUsd: "rateUsd", rateEur: "rateEur" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header d-flex justify-content-between align-items-center\">\r\n <span class=\"fw-bold\">{{ 'Keops::CostCalculations:Results' | abpLocalization }}</span>\r\n <span class=\"text-muted small\">\r\n <span>{{ 'Keops::CostCalculations:UsdRate' | abpLocalization }}: <strong>{{ rateUsd | number }}</strong></span>\r\n <span class=\"mx-2\">\u00B7</span>\r\n <span>{{ 'Keops::CostCalculations:EurRate' | abpLocalization }}: <strong>{{ rateEur | number }}</strong></span>\r\n </span>\r\n </div>\r\n <div class=\"card-body\" *ngIf=\"result; else noResult\">\r\n <table class=\"table table-bordered mb-0\">\r\n <thead class=\"table-dark\">\r\n <tr>\r\n <th>{{ itemName || ('Keops::CostCalculations:Item' | abpLocalization) }}</th>\r\n <th class=\"text-end\">TRY</th>\r\n <th class=\"text-end\">USD</th>\r\n <th class=\"text-end\">EUR</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr class=\"table-light fw-bold\">\r\n <td>{{ 'Keops::CostCalculations:RawOil' | abpLocalization }}</td>\r\n <td class=\"text-end\">{{ result.rawOil.try | number }}</td>\r\n <td class=\"text-end\">{{ result.rawOil.usd | number }}</td>\r\n <td class=\"text-end\">{{ result.rawOil.eur | number }}</td>\r\n </tr>\r\n\r\n <ng-container *ngFor=\"let group of roleGroups\">\r\n <ng-container *ngFor=\"let stage of group.stages\">\r\n <tr class=\"table-secondary fw-semibold\">\r\n <td colspan=\"4\">{{ stage.groupCode }} - {{ stage.groupName }}</td>\r\n </tr>\r\n <tr *ngFor=\"let line of stage.lines\">\r\n <td class=\"ps-3\">\r\n {{ line.costItemName }}\r\n <span *ngIf=\"line.ratePercent != null\" class=\"text-muted\">(%{{ line.ratePercent }})</span>\r\n </td>\r\n <td class=\"text-end\">{{ line.amount.try | number }}</td>\r\n <td class=\"text-end\">{{ line.amount.usd | number }}</td>\r\n <td class=\"text-end\">{{ line.amount.eur | number }}</td>\r\n </tr>\r\n </ng-container>\r\n <tr class=\"table-info fw-bold\">\r\n <td>{{ costGroupRoleTotalLabels[group.role] | abpLocalization }}</td>\r\n <td class=\"text-end\">{{ group.roleTotal.try | number }}</td>\r\n <td class=\"text-end\">{{ group.roleTotal.usd | number }}</td>\r\n <td class=\"text-end\">{{ group.roleTotal.eur | number }}</td>\r\n </tr>\r\n </ng-container>\r\n\r\n <tr class=\"table-warning fw-bold\" *ngIf=\"result\">\r\n <td>{{ 'Keops::CostCalculations:TotalSalePrice' | abpLocalization }}</td>\r\n <td class=\"text-end\">{{ result.totalSalePrice.try | number }}</td>\r\n <td class=\"text-end\">{{ result.totalSalePrice.usd | number }}</td>\r\n <td class=\"text-end\">{{ result.totalSalePrice.eur | number }}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <ng-template #noResult>\r\n <div class=\"card-body p-4 text-center text-muted\">\r\n {{ 'Keops::CostCalculations:CostParameter' | abpLocalization }} \u2026\r\n </div>\r\n </ng-template>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
1161
+ CostCalculationResultsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostCalculationResultsComponent, selector: "lib-cost-calculation-results", inputs: { result: "result", roleGroups: "roleGroups", itemName: "itemName", rateUsd: "rateUsd", rateEur: "rateEur" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header d-flex justify-content-between align-items-center\">\r\n <span class=\"fw-bold\">{{ 'Keops::CostCalculations:Results' | abpLocalization }}</span>\r\n <span class=\"text-muted small\">\r\n <span>{{ 'Keops::CostCalculations:UsdRate' | abpLocalization }}: <strong>{{ rateUsd | number }}</strong></span>\r\n <span class=\"mx-2\">\u00B7</span>\r\n <span>{{ 'Keops::CostCalculations:EurRate' | abpLocalization }}: <strong>{{ rateEur | number }}</strong></span>\r\n </span>\r\n </div>\r\n <div class=\"card-body\" *ngIf=\"result; else noResult\">\r\n <table class=\"table table-bordered mb-0\">\r\n <thead class=\"table-dark\">\r\n <tr>\r\n <th>{{ itemName || ('Keops::CostCalculations:Item' | abpLocalization) }}</th>\r\n <th class=\"text-end\">TRY</th>\r\n <th class=\"text-end\">USD</th>\r\n <th class=\"text-end\">EUR</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr class=\"table-light fw-bold\">\r\n <td>{{ 'Keops::CostCalculations:RawOil' | abpLocalization }}</td>\r\n <td class=\"text-end\">{{ result.rawOil.try | number }}</td>\r\n <td class=\"text-end\">{{ result.rawOil.usd | number }}</td>\r\n <td class=\"text-end\">{{ result.rawOil.eur | number }}</td>\r\n </tr>\r\n\r\n <ng-container *ngFor=\"let group of roleGroups\">\r\n <ng-container *ngFor=\"let stage of group.stages\">\r\n <tr class=\"table-secondary fw-semibold\">\r\n <td colspan=\"4\">{{ stage.groupCode }} - {{ stage.groupName }}</td>\r\n </tr>\r\n <tr *ngFor=\"let line of stage.lines\">\r\n <td class=\"ps-3\">\r\n {{ line.costItemName }}\r\n <span *ngIf=\"line.ratePercent != null\" class=\"text-muted\">(%{{ line.ratePercent }})</span>\r\n </td>\r\n <td class=\"text-end\">{{ line.amount.try | number }}</td>\r\n <td class=\"text-end\">{{ line.amount.usd | number }}</td>\r\n <td class=\"text-end\">{{ line.amount.eur | number }}</td>\r\n </tr>\r\n </ng-container>\r\n <tr class=\"table-info fw-bold\">\r\n <td>{{ costGroupRoleTotalLabels[group.role] | abpLocalization }}</td>\r\n <td class=\"text-end\">{{ group.roleTotal.try | number }}</td>\r\n <td class=\"text-end\">{{ group.roleTotal.usd | number }}</td>\r\n <td class=\"text-end\">{{ group.roleTotal.eur | number }}</td>\r\n </tr>\r\n </ng-container>\r\n\r\n <tr class=\"table-warning fw-bold\" *ngIf=\"result\">\r\n <td>{{ 'Keops::CostCalculations:TotalSalePrice' | abpLocalization }}</td>\r\n <td class=\"text-end\">{{ result.totalSalePrice.try | number }}</td>\r\n <td class=\"text-end\">{{ result.totalSalePrice.usd | number }}</td>\r\n <td class=\"text-end\">{{ result.totalSalePrice.eur | number }}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <ng-template #noResult>\r\n <div class=\"card-body p-4 text-center text-muted\">\r\n {{ 'Keops::CostCalculations:PriceParameter' | abpLocalization }} \u2026\r\n </div>\r\n </ng-template>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
1120
1162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostCalculationResultsComponent, decorators: [{
1121
1163
  type: Component,
1122
- args: [{ selector: 'lib-cost-calculation-results', template: "<div class=\"card\">\r\n <div class=\"card-header d-flex justify-content-between align-items-center\">\r\n <span class=\"fw-bold\">{{ 'Keops::CostCalculations:Results' | abpLocalization }}</span>\r\n <span class=\"text-muted small\">\r\n <span>{{ 'Keops::CostCalculations:UsdRate' | abpLocalization }}: <strong>{{ rateUsd | number }}</strong></span>\r\n <span class=\"mx-2\">\u00B7</span>\r\n <span>{{ 'Keops::CostCalculations:EurRate' | abpLocalization }}: <strong>{{ rateEur | number }}</strong></span>\r\n </span>\r\n </div>\r\n <div class=\"card-body\" *ngIf=\"result; else noResult\">\r\n <table class=\"table table-bordered mb-0\">\r\n <thead class=\"table-dark\">\r\n <tr>\r\n <th>{{ itemName || ('Keops::CostCalculations:Item' | abpLocalization) }}</th>\r\n <th class=\"text-end\">TRY</th>\r\n <th class=\"text-end\">USD</th>\r\n <th class=\"text-end\">EUR</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr class=\"table-light fw-bold\">\r\n <td>{{ 'Keops::CostCalculations:RawOil' | abpLocalization }}</td>\r\n <td class=\"text-end\">{{ result.rawOil.try | number }}</td>\r\n <td class=\"text-end\">{{ result.rawOil.usd | number }}</td>\r\n <td class=\"text-end\">{{ result.rawOil.eur | number }}</td>\r\n </tr>\r\n\r\n <ng-container *ngFor=\"let group of roleGroups\">\r\n <ng-container *ngFor=\"let stage of group.stages\">\r\n <tr class=\"table-secondary fw-semibold\">\r\n <td colspan=\"4\">{{ stage.groupCode }} - {{ stage.groupName }}</td>\r\n </tr>\r\n <tr *ngFor=\"let line of stage.lines\">\r\n <td class=\"ps-3\">\r\n {{ line.costItemName }}\r\n <span *ngIf=\"line.ratePercent != null\" class=\"text-muted\">(%{{ line.ratePercent }})</span>\r\n </td>\r\n <td class=\"text-end\">{{ line.amount.try | number }}</td>\r\n <td class=\"text-end\">{{ line.amount.usd | number }}</td>\r\n <td class=\"text-end\">{{ line.amount.eur | number }}</td>\r\n </tr>\r\n </ng-container>\r\n <tr class=\"table-info fw-bold\">\r\n <td>{{ costGroupRoleTotalLabels[group.role] | abpLocalization }}</td>\r\n <td class=\"text-end\">{{ group.roleTotal.try | number }}</td>\r\n <td class=\"text-end\">{{ group.roleTotal.usd | number }}</td>\r\n <td class=\"text-end\">{{ group.roleTotal.eur | number }}</td>\r\n </tr>\r\n </ng-container>\r\n\r\n <tr class=\"table-warning fw-bold\" *ngIf=\"result\">\r\n <td>{{ 'Keops::CostCalculations:TotalSalePrice' | abpLocalization }}</td>\r\n <td class=\"text-end\">{{ result.totalSalePrice.try | number }}</td>\r\n <td class=\"text-end\">{{ result.totalSalePrice.usd | number }}</td>\r\n <td class=\"text-end\">{{ result.totalSalePrice.eur | number }}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <ng-template #noResult>\r\n <div class=\"card-body p-4 text-center text-muted\">\r\n {{ 'Keops::CostCalculations:CostParameter' | abpLocalization }} \u2026\r\n </div>\r\n </ng-template>\r\n</div>\r\n" }]
1164
+ args: [{ selector: 'lib-cost-calculation-results', template: "<div class=\"card\">\r\n <div class=\"card-header d-flex justify-content-between align-items-center\">\r\n <span class=\"fw-bold\">{{ 'Keops::CostCalculations:Results' | abpLocalization }}</span>\r\n <span class=\"text-muted small\">\r\n <span>{{ 'Keops::CostCalculations:UsdRate' | abpLocalization }}: <strong>{{ rateUsd | number }}</strong></span>\r\n <span class=\"mx-2\">\u00B7</span>\r\n <span>{{ 'Keops::CostCalculations:EurRate' | abpLocalization }}: <strong>{{ rateEur | number }}</strong></span>\r\n </span>\r\n </div>\r\n <div class=\"card-body\" *ngIf=\"result; else noResult\">\r\n <table class=\"table table-bordered mb-0\">\r\n <thead class=\"table-dark\">\r\n <tr>\r\n <th>{{ itemName || ('Keops::CostCalculations:Item' | abpLocalization) }}</th>\r\n <th class=\"text-end\">TRY</th>\r\n <th class=\"text-end\">USD</th>\r\n <th class=\"text-end\">EUR</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr class=\"table-light fw-bold\">\r\n <td>{{ 'Keops::CostCalculations:RawOil' | abpLocalization }}</td>\r\n <td class=\"text-end\">{{ result.rawOil.try | number }}</td>\r\n <td class=\"text-end\">{{ result.rawOil.usd | number }}</td>\r\n <td class=\"text-end\">{{ result.rawOil.eur | number }}</td>\r\n </tr>\r\n\r\n <ng-container *ngFor=\"let group of roleGroups\">\r\n <ng-container *ngFor=\"let stage of group.stages\">\r\n <tr class=\"table-secondary fw-semibold\">\r\n <td colspan=\"4\">{{ stage.groupCode }} - {{ stage.groupName }}</td>\r\n </tr>\r\n <tr *ngFor=\"let line of stage.lines\">\r\n <td class=\"ps-3\">\r\n {{ line.costItemName }}\r\n <span *ngIf=\"line.ratePercent != null\" class=\"text-muted\">(%{{ line.ratePercent }})</span>\r\n </td>\r\n <td class=\"text-end\">{{ line.amount.try | number }}</td>\r\n <td class=\"text-end\">{{ line.amount.usd | number }}</td>\r\n <td class=\"text-end\">{{ line.amount.eur | number }}</td>\r\n </tr>\r\n </ng-container>\r\n <tr class=\"table-info fw-bold\">\r\n <td>{{ costGroupRoleTotalLabels[group.role] | abpLocalization }}</td>\r\n <td class=\"text-end\">{{ group.roleTotal.try | number }}</td>\r\n <td class=\"text-end\">{{ group.roleTotal.usd | number }}</td>\r\n <td class=\"text-end\">{{ group.roleTotal.eur | number }}</td>\r\n </tr>\r\n </ng-container>\r\n\r\n <tr class=\"table-warning fw-bold\" *ngIf=\"result\">\r\n <td>{{ 'Keops::CostCalculations:TotalSalePrice' | abpLocalization }}</td>\r\n <td class=\"text-end\">{{ result.totalSalePrice.try | number }}</td>\r\n <td class=\"text-end\">{{ result.totalSalePrice.usd | number }}</td>\r\n <td class=\"text-end\">{{ result.totalSalePrice.eur | number }}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <ng-template #noResult>\r\n <div class=\"card-body p-4 text-center text-muted\">\r\n {{ 'Keops::CostCalculations:PriceParameter' | abpLocalization }} \u2026\r\n </div>\r\n </ng-template>\r\n</div>\r\n" }]
1123
1165
  }], propDecorators: { result: [{
1124
1166
  type: Input
1125
1167
  }], roleGroups: [{
@@ -1162,20 +1204,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1162
1204
  }] } });
1163
1205
 
1164
1206
  class CostCalculationComponent {
1165
- constructor(parameterService, costParameterCategoryService, costItemService, costGroupService, exchangeRateService, itemService) {
1207
+ constructor(parameterService, priceParameterLookupsService, costItemService, costGroupService, exchangeRateService, itemService, localization) {
1166
1208
  this.parameterService = parameterService;
1167
- this.costParameterCategoryService = costParameterCategoryService;
1209
+ this.priceParameterLookupsService = priceParameterLookupsService;
1168
1210
  this.costItemService = costItemService;
1169
1211
  this.costGroupService = costGroupService;
1170
1212
  this.exchangeRateService = exchangeRateService;
1171
1213
  this.itemService = itemService;
1214
+ this.localization = localization;
1172
1215
  this.itemCodePrefix = '05';
1173
1216
  this.productItems = [];
1174
1217
  this.itemsDataSource = null;
1175
1218
  this.selectedItemCode = null;
1176
1219
  this.selectedItemName = null;
1177
1220
  this.parameters = [];
1178
- this.selectedParameterCode = null;
1221
+ this.selectedParameterDocEntry = null;
1179
1222
  this.rawOilPrice = 0;
1180
1223
  this.rawOilCurrency = Currency.USD;
1181
1224
  this.systemRateUsd = 0;
@@ -1185,10 +1228,11 @@ class CostCalculationComponent {
1185
1228
  this.stages = [];
1186
1229
  this.result = null;
1187
1230
  this.roleGroups = [];
1231
+ this.packagingBaseTry = 0;
1188
1232
  this.costItemsByCode = new Map();
1189
1233
  this.groups = [];
1190
1234
  this.productGroupNames = new Map();
1191
- this.regionNames = new Map();
1235
+ this.typeNames = new Map();
1192
1236
  this.itemDisplayExpr = (item) => item ? [item.code, item.name].filter(Boolean).join(' — ') : '';
1193
1237
  this.parameterDisplayExpr = (p) => p ? this.parameterLabel(p) : '';
1194
1238
  }
@@ -1199,19 +1243,11 @@ class CostCalculationComponent {
1199
1243
  costItems: this.costItemService.getList(),
1200
1244
  groups: this.costGroupService.getList(),
1201
1245
  rate: this.exchangeRateService.get(),
1202
- lookups: this.costParameterCategoryService.getList(),
1203
- items: this.itemService.getList(this.itemCodePrefix),
1204
- }).subscribe(({ parameters, costItems, groups, rate, lookups, items }) => {
1246
+ lookups: this.priceParameterLookupsService.loadTypeAndCategoryLookups(),
1247
+ }).subscribe(({ parameters, costItems, groups, rate, lookups }) => {
1205
1248
  this.parameters = parameters ?? [];
1206
- this.productItems = items ?? [];
1207
- this.itemsDataSource = new DataSource({
1208
- store: new ArrayStore({ key: 'code', data: this.productItems }),
1209
- paginate: true,
1210
- pageSize: 50,
1211
- });
1212
- const categories = lookups ?? [];
1213
- this.productGroupNames = this.toNameMap(categories.filter(x => x.parentCode === CostParameterCategoryParentCode.Code1));
1214
- this.regionNames = this.toNameMap(categories.filter(x => x.parentCode === CostParameterCategoryParentCode.Code4));
1249
+ this.productGroupNames = this.toNameMap(lookups.groupOptions);
1250
+ this.typeNames = this.toNameMap(lookups.typeOptions);
1215
1251
  this.costItemsByCode = new Map();
1216
1252
  for (const ci of costItems ?? []) {
1217
1253
  if (ci.code)
@@ -1227,13 +1263,42 @@ class CostCalculationComponent {
1227
1263
  });
1228
1264
  }
1229
1265
  parameterLabel(p) {
1230
- const productGroup = this.productGroupNames.get(p.productGroup ?? '') ?? p.productGroup;
1231
- const region = this.regionNames.get(p.region ?? '') ?? p.region;
1232
- return [productGroup, region].filter(Boolean).join(' — ') || (p.code ?? '');
1266
+ const groupName = this.productGroupNames.get(p.groupCode ?? '') ?? p.groupCode;
1267
+ const typeName = this.typeNames.get(p.typeCode ?? '') ?? p.typeCode;
1268
+ const region = this.localization.instant(businessRegionLabels[p.region]);
1269
+ return [typeName, groupName, region].filter(Boolean).join(' — ') || String(p.docEntry ?? '');
1233
1270
  }
1234
1271
  onItemChange() {
1235
1272
  const item = this.productItems.find(x => x.code === this.selectedItemCode);
1236
1273
  this.selectedItemName = item?.name ?? null;
1274
+ this.loadPackagingCost();
1275
+ }
1276
+ loadPackagingCost() {
1277
+ if (!this.selectedItemCode) {
1278
+ this.packagingBaseTry = 0;
1279
+ this.calculate();
1280
+ return;
1281
+ }
1282
+ this.itemService.getPackagingCost(this.selectedItemCode).subscribe(amount => {
1283
+ this.packagingBaseTry = amount ?? 0;
1284
+ this.calculate();
1285
+ });
1286
+ }
1287
+ findPackagingItem() {
1288
+ for (const stage of this.stages) {
1289
+ const found = stage.items.find(item => item.systemCode === CostItemSystemCode.Packaging);
1290
+ if (found)
1291
+ return found;
1292
+ }
1293
+ return undefined;
1294
+ }
1295
+ applyPackagingAmount() {
1296
+ const item = this.findPackagingItem();
1297
+ if (!item)
1298
+ return;
1299
+ const amounts = toAmount(this.packagingBaseTry, this.rateUsd, this.rateEur);
1300
+ item.value =
1301
+ item.currency === Currency.TRY ? amounts.try : item.currency === Currency.EUR ? amounts.eur : amounts.usd;
1237
1302
  }
1238
1303
  toNameMap(options) {
1239
1304
  const map = new Map();
@@ -1244,10 +1309,38 @@ class CostCalculationComponent {
1244
1309
  return map;
1245
1310
  }
1246
1311
  onParameterChange() {
1247
- const parameter = this.parameters.find(p => p.code === this.selectedParameterCode);
1312
+ const parameter = this.parameters.find(p => p.docEntry === this.selectedParameterDocEntry);
1248
1313
  this.stages = parameter ? this.buildStages(parameter) : [];
1314
+ this.selectedItemCode = null;
1315
+ this.selectedItemName = null;
1316
+ this.packagingBaseTry = 0;
1317
+ if (parameter) {
1318
+ this.rawOilPrice = parameter.rawOilPrice ?? 0;
1319
+ this.rawOilCurrency = parameter.rawOilCurrency ?? Currency.USD;
1320
+ this.rateUsd = parameter.exchangeRateUsd || this.systemRateUsd;
1321
+ this.rateEur = parameter.exchangeRateEur || this.systemRateEur;
1322
+ this.loadProductItems(parameter.region, parameter.groupCode);
1323
+ }
1324
+ else {
1325
+ this.productItems = [];
1326
+ this.itemsDataSource = new DataSource({
1327
+ store: new ArrayStore({ key: 'code', data: [] }),
1328
+ paginate: true,
1329
+ pageSize: 50,
1330
+ });
1331
+ }
1249
1332
  this.calculate();
1250
1333
  }
1334
+ loadProductItems(region, groupCode) {
1335
+ this.itemService.getList(this.itemCodePrefix, region, groupCode).subscribe(items => {
1336
+ this.productItems = items ?? [];
1337
+ this.itemsDataSource = new DataSource({
1338
+ store: new ArrayStore({ key: 'code', data: this.productItems }),
1339
+ paginate: true,
1340
+ pageSize: 50,
1341
+ });
1342
+ });
1343
+ }
1251
1344
  buildValuesByCode(parameter) {
1252
1345
  const map = new Map();
1253
1346
  for (const item of parameter.items ?? []) {
@@ -1286,6 +1379,7 @@ class CostCalculationComponent {
1286
1379
  });
1287
1380
  }
1288
1381
  calculate() {
1382
+ this.applyPackagingAmount();
1289
1383
  this.result = calculateCost({
1290
1384
  rawOilPrice: parseDecimal(this.rawOilPrice),
1291
1385
  rawOilCurrency: this.rawOilCurrency,
@@ -1299,14 +1393,14 @@ class CostCalculationComponent {
1299
1393
  window.print();
1300
1394
  }
1301
1395
  }
1302
- CostCalculationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostCalculationComponent, deps: [{ token: i1$1.CostParameterService }, { token: i1$1.CostParameterCategoryService }, { token: i1$1.CostItemService }, { token: i1$1.CostGroupService }, { token: i1$1.ExchangeRateService }, { token: i1$1.ItemService }], target: i0.ɵɵFactoryTarget.Component });
1303
- CostCalculationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostCalculationComponent, selector: "lib-cost-calculation", ngImport: i0, template: "<abp-page [title]=\"'Keops::CostCalculations:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2\">\r\n <button class=\"btn btn-outline-primary\" type=\"button\" (click)=\"print()\" [disabled]=\"!result\">\r\n <i class=\"fa fa-print me-1\"></i>\r\n <span>{{ 'Keops::CostCalculations:Print' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-lg-4 mb-3\">\r\n <lib-cost-calculation-inputs\r\n [itemsDataSource]=\"itemsDataSource\"\r\n [itemDisplayExpr]=\"itemDisplayExpr\"\r\n [parameters]=\"parameters\"\r\n [parameterDisplayExpr]=\"parameterDisplayExpr\"\r\n [stages]=\"stages\"\r\n [(selectedItemCode)]=\"selectedItemCode\"\r\n [(selectedParameterCode)]=\"selectedParameterCode\"\r\n [(rawOilPrice)]=\"rawOilPrice\"\r\n [(rawOilCurrency)]=\"rawOilCurrency\"\r\n [systemRateUsd]=\"systemRateUsd\"\r\n [systemRateEur]=\"systemRateEur\"\r\n [(rateUsd)]=\"rateUsd\"\r\n [(rateEur)]=\"rateEur\"\r\n (itemChange)=\"onItemChange()\"\r\n (parameterChange)=\"onParameterChange()\"\r\n (recalc)=\"calculate()\"\r\n ></lib-cost-calculation-inputs>\r\n </div>\r\n\r\n <div class=\"col-lg-8 mb-3\">\r\n <div class=\"d-print-none\">\r\n <lib-cost-calculation-result-sum [roleGroups]=\"roleGroups\"></lib-cost-calculation-result-sum>\r\n </div>\r\n <div id=\"cost-calculation-results\">\r\n <lib-cost-calculation-results [result]=\"result\" [roleGroups]=\"roleGroups\" [itemName]=\"selectedItemName\" [rateUsd]=\"rateUsd\" [rateEur]=\"rateEur\"></lib-cost-calculation-results>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: ["@media print{body *{visibility:hidden}#cost-calculation-results,#cost-calculation-results *{visibility:visible}#cost-calculation-results{position:absolute;inset:0;width:100%}}\n"], dependencies: [{ kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: CostCalculationInputsComponent, selector: "lib-cost-calculation-inputs", inputs: ["itemsDataSource", "itemDisplayExpr", "parameters", "parameterDisplayExpr", "stages", "selectedItemCode", "selectedParameterCode", "rawOilPrice", "rawOilCurrency", "systemRateUsd", "systemRateEur", "rateUsd", "rateEur"], outputs: ["selectedItemCodeChange", "selectedParameterCodeChange", "rawOilPriceChange", "rawOilCurrencyChange", "rateUsdChange", "rateEurChange", "itemChange", "parameterChange", "recalc"] }, { kind: "component", type: CostCalculationResultsComponent, selector: "lib-cost-calculation-results", inputs: ["result", "roleGroups", "itemName", "rateUsd", "rateEur"] }, { kind: "component", type: CostCalculationResultSumComponent, selector: "lib-cost-calculation-result-sum", inputs: ["roleGroups"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }], encapsulation: i0.ViewEncapsulation.None });
1396
+ CostCalculationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostCalculationComponent, deps: [{ token: i1$1.PriceParameterService }, { token: PriceParameterLookupsService }, { token: i1$1.CostItemService }, { token: i1$1.CostGroupService }, { token: i1$1.ExchangeRateService }, { token: i1$1.ItemService }, { token: i4.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
1397
+ CostCalculationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostCalculationComponent, selector: "lib-cost-calculation", ngImport: i0, template: "<abp-page [title]=\"'Keops::CostCalculations:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2\">\r\n <button class=\"btn btn-outline-primary\" type=\"button\" (click)=\"print()\" [disabled]=\"!result\">\r\n <i class=\"fa fa-print me-1\"></i>\r\n <span>{{ 'Keops::CostCalculations:Print' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-lg-4 mb-3\">\r\n <lib-cost-calculation-inputs\r\n [itemsDataSource]=\"itemsDataSource\"\r\n [itemDisplayExpr]=\"itemDisplayExpr\"\r\n [parameters]=\"parameters\"\r\n [parameterDisplayExpr]=\"parameterDisplayExpr\"\r\n [stages]=\"stages\"\r\n [(selectedItemCode)]=\"selectedItemCode\"\r\n [(selectedParameterDocEntry)]=\"selectedParameterDocEntry\"\r\n [(rawOilPrice)]=\"rawOilPrice\"\r\n [(rawOilCurrency)]=\"rawOilCurrency\"\r\n [systemRateUsd]=\"systemRateUsd\"\r\n [systemRateEur]=\"systemRateEur\"\r\n [(rateUsd)]=\"rateUsd\"\r\n [(rateEur)]=\"rateEur\"\r\n (itemChange)=\"onItemChange()\"\r\n (parameterChange)=\"onParameterChange()\"\r\n (recalc)=\"calculate()\"\r\n ></lib-cost-calculation-inputs>\r\n </div>\r\n\r\n <div class=\"col-lg-8 mb-3\">\r\n <div class=\"d-print-none\">\r\n <lib-cost-calculation-result-sum [roleGroups]=\"roleGroups\"></lib-cost-calculation-result-sum>\r\n </div>\r\n <div id=\"cost-calculation-results\">\r\n <lib-cost-calculation-results [result]=\"result\" [roleGroups]=\"roleGroups\" [itemName]=\"selectedItemName\" [rateUsd]=\"rateUsd\" [rateEur]=\"rateEur\"></lib-cost-calculation-results>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: ["@media print{body *{visibility:hidden}#cost-calculation-results,#cost-calculation-results *{visibility:visible}#cost-calculation-results{position:absolute;inset:0;width:100%}}\n"], dependencies: [{ kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: CostCalculationInputsComponent, selector: "lib-cost-calculation-inputs", inputs: ["itemsDataSource", "itemDisplayExpr", "parameters", "parameterDisplayExpr", "stages", "selectedItemCode", "selectedParameterDocEntry", "rawOilPrice", "rawOilCurrency", "systemRateUsd", "systemRateEur", "rateUsd", "rateEur"], outputs: ["selectedItemCodeChange", "selectedParameterDocEntryChange", "rawOilPriceChange", "rawOilCurrencyChange", "rateUsdChange", "rateEurChange", "itemChange", "parameterChange", "recalc"] }, { kind: "component", type: CostCalculationResultsComponent, selector: "lib-cost-calculation-results", inputs: ["result", "roleGroups", "itemName", "rateUsd", "rateEur"] }, { kind: "component", type: CostCalculationResultSumComponent, selector: "lib-cost-calculation-result-sum", inputs: ["roleGroups"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }], encapsulation: i0.ViewEncapsulation.None });
1304
1398
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostCalculationComponent, decorators: [{
1305
1399
  type: Component,
1306
- args: [{ selector: 'lib-cost-calculation', encapsulation: ViewEncapsulation.None, template: "<abp-page [title]=\"'Keops::CostCalculations:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2\">\r\n <button class=\"btn btn-outline-primary\" type=\"button\" (click)=\"print()\" [disabled]=\"!result\">\r\n <i class=\"fa fa-print me-1\"></i>\r\n <span>{{ 'Keops::CostCalculations:Print' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-lg-4 mb-3\">\r\n <lib-cost-calculation-inputs\r\n [itemsDataSource]=\"itemsDataSource\"\r\n [itemDisplayExpr]=\"itemDisplayExpr\"\r\n [parameters]=\"parameters\"\r\n [parameterDisplayExpr]=\"parameterDisplayExpr\"\r\n [stages]=\"stages\"\r\n [(selectedItemCode)]=\"selectedItemCode\"\r\n [(selectedParameterCode)]=\"selectedParameterCode\"\r\n [(rawOilPrice)]=\"rawOilPrice\"\r\n [(rawOilCurrency)]=\"rawOilCurrency\"\r\n [systemRateUsd]=\"systemRateUsd\"\r\n [systemRateEur]=\"systemRateEur\"\r\n [(rateUsd)]=\"rateUsd\"\r\n [(rateEur)]=\"rateEur\"\r\n (itemChange)=\"onItemChange()\"\r\n (parameterChange)=\"onParameterChange()\"\r\n (recalc)=\"calculate()\"\r\n ></lib-cost-calculation-inputs>\r\n </div>\r\n\r\n <div class=\"col-lg-8 mb-3\">\r\n <div class=\"d-print-none\">\r\n <lib-cost-calculation-result-sum [roleGroups]=\"roleGroups\"></lib-cost-calculation-result-sum>\r\n </div>\r\n <div id=\"cost-calculation-results\">\r\n <lib-cost-calculation-results [result]=\"result\" [roleGroups]=\"roleGroups\" [itemName]=\"selectedItemName\" [rateUsd]=\"rateUsd\" [rateEur]=\"rateEur\"></lib-cost-calculation-results>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: ["@media print{body *{visibility:hidden}#cost-calculation-results,#cost-calculation-results *{visibility:visible}#cost-calculation-results{position:absolute;inset:0;width:100%}}\n"] }]
1307
- }], ctorParameters: function () { return [{ type: i1$1.CostParameterService }, { type: i1$1.CostParameterCategoryService }, { type: i1$1.CostItemService }, { type: i1$1.CostGroupService }, { type: i1$1.ExchangeRateService }, { type: i1$1.ItemService }]; } });
1400
+ args: [{ selector: 'lib-cost-calculation', encapsulation: ViewEncapsulation.None, template: "<abp-page [title]=\"'Keops::CostCalculations:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2\">\r\n <button class=\"btn btn-outline-primary\" type=\"button\" (click)=\"print()\" [disabled]=\"!result\">\r\n <i class=\"fa fa-print me-1\"></i>\r\n <span>{{ 'Keops::CostCalculations:Print' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-lg-4 mb-3\">\r\n <lib-cost-calculation-inputs\r\n [itemsDataSource]=\"itemsDataSource\"\r\n [itemDisplayExpr]=\"itemDisplayExpr\"\r\n [parameters]=\"parameters\"\r\n [parameterDisplayExpr]=\"parameterDisplayExpr\"\r\n [stages]=\"stages\"\r\n [(selectedItemCode)]=\"selectedItemCode\"\r\n [(selectedParameterDocEntry)]=\"selectedParameterDocEntry\"\r\n [(rawOilPrice)]=\"rawOilPrice\"\r\n [(rawOilCurrency)]=\"rawOilCurrency\"\r\n [systemRateUsd]=\"systemRateUsd\"\r\n [systemRateEur]=\"systemRateEur\"\r\n [(rateUsd)]=\"rateUsd\"\r\n [(rateEur)]=\"rateEur\"\r\n (itemChange)=\"onItemChange()\"\r\n (parameterChange)=\"onParameterChange()\"\r\n (recalc)=\"calculate()\"\r\n ></lib-cost-calculation-inputs>\r\n </div>\r\n\r\n <div class=\"col-lg-8 mb-3\">\r\n <div class=\"d-print-none\">\r\n <lib-cost-calculation-result-sum [roleGroups]=\"roleGroups\"></lib-cost-calculation-result-sum>\r\n </div>\r\n <div id=\"cost-calculation-results\">\r\n <lib-cost-calculation-results [result]=\"result\" [roleGroups]=\"roleGroups\" [itemName]=\"selectedItemName\" [rateUsd]=\"rateUsd\" [rateEur]=\"rateEur\"></lib-cost-calculation-results>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: ["@media print{body *{visibility:hidden}#cost-calculation-results,#cost-calculation-results *{visibility:visible}#cost-calculation-results{position:absolute;inset:0;width:100%}}\n"] }]
1401
+ }], ctorParameters: function () { return [{ type: i1$1.PriceParameterService }, { type: PriceParameterLookupsService }, { type: i1$1.CostItemService }, { type: i1$1.CostGroupService }, { type: i1$1.ExchangeRateService }, { type: i1$1.ItemService }, { type: i4.LocalizationService }]; } });
1308
1402
 
1309
- const routes$q = [
1403
+ const routes$r = [
1310
1404
  {
1311
1405
  path: '',
1312
1406
  component: CostCalculationComponent,
@@ -1320,11 +1414,11 @@ class HitCostCalculationRoutingModule {
1320
1414
  }
1321
1415
  HitCostCalculationRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostCalculationRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1322
1416
  HitCostCalculationRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitCostCalculationRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
1323
- HitCostCalculationRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostCalculationRoutingModule, imports: [RouterModule.forChild(routes$q), RouterModule] });
1417
+ HitCostCalculationRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostCalculationRoutingModule, imports: [RouterModule.forChild(routes$r), RouterModule] });
1324
1418
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostCalculationRoutingModule, decorators: [{
1325
1419
  type: NgModule,
1326
1420
  args: [{
1327
- imports: [RouterModule.forChild(routes$q)],
1421
+ imports: [RouterModule.forChild(routes$r)],
1328
1422
  exports: [RouterModule],
1329
1423
  }]
1330
1424
  }] });
@@ -1438,13 +1532,13 @@ class CostParameterFormComponent {
1438
1532
  this.mode = 'create';
1439
1533
  this.current = null;
1440
1534
  this.productGroupOptions = [];
1441
- this.regionOptions = [];
1442
1535
  this.visibleChange = new EventEmitter();
1443
1536
  this.saved = new EventEmitter();
1444
1537
  this.saving = false;
1445
1538
  this.costItems = [];
1446
1539
  this.statusOptions = statusOptions$1;
1447
1540
  this.currencyOptions = CURRENCY_OPTIONS;
1541
+ this.regionOptions = BUSINESS_REGION_OPTIONS;
1448
1542
  this.customLabel = calculationTypeLabels[CostItemCalculationType.Custom];
1449
1543
  this.isRate = isRateCostItem;
1450
1544
  this.isCustom = isCustomCostItem;
@@ -1500,10 +1594,10 @@ class CostParameterFormComponent {
1500
1594
  }
1501
1595
  }
1502
1596
  CostParameterFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostParameterFormComponent, deps: [{ token: i1.FormBuilder }, { token: i1$1.CostParameterService }, { token: i1$1.CostItemService }, { token: CostItemRowsBuilder }], target: i0.ɵɵFactoryTarget.Component });
1503
- CostParameterFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostParameterFormComponent, selector: "lib-cost-parameter-form", inputs: { visible: "visible", mode: "mode", current: "current", productGroupOptions: "productGroupOptions", regionOptions: "regionOptions" }, outputs: { visibleChange: "visibleChange", saved: "saved" }, ngImport: i0, template: "<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'xl' }\"\r\n>\r\n <ng-template #abpHeader>\r\n <h3>{{ title | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav-tabs\">\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::CostParameters:Info' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"mb-3\">\r\n <label for=\"region\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:Region' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"region\" class=\"form-select\" formControlName=\"region\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let region of regionOptions\" [ngValue]=\"region.code\">\r\n {{ region.name }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"productGroup\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:ProductGroup' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"productGroup\" class=\"form-select\" formControlName=\"productGroup\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let productGroup of productGroupOptions\" [ngValue]=\"productGroup.code\">\r\n {{ productGroup.name }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"status\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:Status' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"status\" class=\"form-select\" formControlName=\"status\">\r\n <option *ngFor=\"let opt of statusOptions\" [ngValue]=\"opt.value\">\r\n {{ opt.label | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"description\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:Description' | abpLocalization }}\r\n </label>\r\n <textarea\r\n id=\"description\"\r\n class=\"form-control\"\r\n formControlName=\"description\"\r\n rows=\"3\"\r\n ></textarea>\r\n </div>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::CostParameters:ItemValues' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <table class=\"table table-sm align-middle\">\r\n <colgroup>\r\n <col style=\"width: 50%\" />\r\n <col style=\"width: 30%\" />\r\n <col style=\"width: 20%\" />\r\n </colgroup>\r\n <tbody formArrayName=\"items\">\r\n <tr *ngFor=\"let costItem of costItems; let i = index\" [formGroupName]=\"i\">\r\n <td>\r\n {{ costItem.name }}\r\n <span class=\"badge bg-info ms-1\" *ngIf=\"isCustom(costItem)\">\r\n {{ customLabel | abpLocalization }}\r\n </span>\r\n </td>\r\n <td>\r\n <input\r\n *ngIf=\"isCustom(costItem); else valueInput\"\r\n type=\"text\"\r\n class=\"form-control form-control-sm\"\r\n disabled\r\n [placeholder]=\"'Keops::CostParameters:AutoCalculated' | abpLocalization\"\r\n />\r\n <ng-template #valueInput>\r\n <div class=\"input-group input-group-sm\">\r\n <input type=\"number\" class=\"form-control\" formControlName=\"value\" />\r\n <span class=\"input-group-text px-3\" *ngIf=\"isRate(costItem)\">%</span>\r\n </div>\r\n </ng-template>\r\n </td>\r\n <td>\r\n <select\r\n *ngIf=\"!isRate(costItem) && !isCustom(costItem)\"\r\n class=\"form-select form-select-sm\"\r\n formControlName=\"currency\"\r\n >\r\n <option *ngFor=\"let currency of currencyOptions\" [ngValue]=\"currency.value\">\r\n {{ currency.label }}\r\n </option>\r\n </select>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary\"\r\n [loading]=\"saving\"\r\n [disabled]=\"form?.invalid\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i4.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "component", type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i2.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i6.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i6.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i6.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i6.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "component", type: i6.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
1597
+ CostParameterFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostParameterFormComponent, selector: "lib-cost-parameter-form", inputs: { visible: "visible", mode: "mode", current: "current", productGroupOptions: "productGroupOptions" }, outputs: { visibleChange: "visibleChange", saved: "saved" }, ngImport: i0, template: "<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'xl' }\"\r\n>\r\n <ng-template #abpHeader>\r\n <h3>{{ title | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav-tabs\">\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::CostParameters:Info' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"mb-3\">\r\n <label for=\"region\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:Region' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"region\" class=\"form-select\" formControlName=\"region\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let region of regionOptions\" [ngValue]=\"region.value\">\r\n {{ region.label | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"productGroup\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:ProductGroup' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"productGroup\" class=\"form-select\" formControlName=\"productGroup\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let productGroup of productGroupOptions\" [ngValue]=\"productGroup.code\">\r\n {{ productGroup.name }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"status\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:Status' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"status\" class=\"form-select\" formControlName=\"status\">\r\n <option *ngFor=\"let opt of statusOptions\" [ngValue]=\"opt.value\">\r\n {{ opt.label | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"description\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:Description' | abpLocalization }}\r\n </label>\r\n <textarea\r\n id=\"description\"\r\n class=\"form-control\"\r\n formControlName=\"description\"\r\n rows=\"3\"\r\n ></textarea>\r\n </div>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::CostParameters:ItemValues' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <table class=\"table table-sm align-middle\">\r\n <colgroup>\r\n <col style=\"width: 50%\" />\r\n <col style=\"width: 30%\" />\r\n <col style=\"width: 20%\" />\r\n </colgroup>\r\n <tbody formArrayName=\"items\">\r\n <tr *ngFor=\"let costItem of costItems; let i = index\" [formGroupName]=\"i\">\r\n <td>\r\n {{ costItem.name }}\r\n <span class=\"badge bg-info ms-1\" *ngIf=\"isCustom(costItem)\">\r\n {{ customLabel | abpLocalization }}\r\n </span>\r\n </td>\r\n <td>\r\n <input\r\n *ngIf=\"isCustom(costItem); else valueInput\"\r\n type=\"text\"\r\n class=\"form-control form-control-sm\"\r\n disabled\r\n [placeholder]=\"'Keops::CostParameters:AutoCalculated' | abpLocalization\"\r\n />\r\n <ng-template #valueInput>\r\n <div class=\"input-group input-group-sm\">\r\n <input type=\"number\" class=\"form-control\" formControlName=\"value\" />\r\n <span class=\"input-group-text px-3\" *ngIf=\"isRate(costItem)\">%</span>\r\n </div>\r\n </ng-template>\r\n </td>\r\n <td>\r\n <select\r\n *ngIf=\"!isRate(costItem) && !isCustom(costItem)\"\r\n class=\"form-select form-select-sm\"\r\n formControlName=\"currency\"\r\n >\r\n <option *ngFor=\"let currency of currencyOptions\" [ngValue]=\"currency.value\">\r\n {{ currency.label }}\r\n </option>\r\n </select>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary\"\r\n [loading]=\"saving\"\r\n [disabled]=\"form?.invalid\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i4.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "component", type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i2.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i6.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i6.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i6.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i6.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "component", type: i6.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
1504
1598
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostParameterFormComponent, decorators: [{
1505
1599
  type: Component,
1506
- args: [{ selector: 'lib-cost-parameter-form', template: "<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'xl' }\"\r\n>\r\n <ng-template #abpHeader>\r\n <h3>{{ title | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav-tabs\">\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::CostParameters:Info' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"mb-3\">\r\n <label for=\"region\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:Region' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"region\" class=\"form-select\" formControlName=\"region\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let region of regionOptions\" [ngValue]=\"region.code\">\r\n {{ region.name }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"productGroup\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:ProductGroup' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"productGroup\" class=\"form-select\" formControlName=\"productGroup\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let productGroup of productGroupOptions\" [ngValue]=\"productGroup.code\">\r\n {{ productGroup.name }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"status\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:Status' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"status\" class=\"form-select\" formControlName=\"status\">\r\n <option *ngFor=\"let opt of statusOptions\" [ngValue]=\"opt.value\">\r\n {{ opt.label | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"description\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:Description' | abpLocalization }}\r\n </label>\r\n <textarea\r\n id=\"description\"\r\n class=\"form-control\"\r\n formControlName=\"description\"\r\n rows=\"3\"\r\n ></textarea>\r\n </div>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::CostParameters:ItemValues' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <table class=\"table table-sm align-middle\">\r\n <colgroup>\r\n <col style=\"width: 50%\" />\r\n <col style=\"width: 30%\" />\r\n <col style=\"width: 20%\" />\r\n </colgroup>\r\n <tbody formArrayName=\"items\">\r\n <tr *ngFor=\"let costItem of costItems; let i = index\" [formGroupName]=\"i\">\r\n <td>\r\n {{ costItem.name }}\r\n <span class=\"badge bg-info ms-1\" *ngIf=\"isCustom(costItem)\">\r\n {{ customLabel | abpLocalization }}\r\n </span>\r\n </td>\r\n <td>\r\n <input\r\n *ngIf=\"isCustom(costItem); else valueInput\"\r\n type=\"text\"\r\n class=\"form-control form-control-sm\"\r\n disabled\r\n [placeholder]=\"'Keops::CostParameters:AutoCalculated' | abpLocalization\"\r\n />\r\n <ng-template #valueInput>\r\n <div class=\"input-group input-group-sm\">\r\n <input type=\"number\" class=\"form-control\" formControlName=\"value\" />\r\n <span class=\"input-group-text px-3\" *ngIf=\"isRate(costItem)\">%</span>\r\n </div>\r\n </ng-template>\r\n </td>\r\n <td>\r\n <select\r\n *ngIf=\"!isRate(costItem) && !isCustom(costItem)\"\r\n class=\"form-select form-select-sm\"\r\n formControlName=\"currency\"\r\n >\r\n <option *ngFor=\"let currency of currencyOptions\" [ngValue]=\"currency.value\">\r\n {{ currency.label }}\r\n </option>\r\n </select>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary\"\r\n [loading]=\"saving\"\r\n [disabled]=\"form?.invalid\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
1600
+ args: [{ selector: 'lib-cost-parameter-form', template: "<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'xl' }\"\r\n>\r\n <ng-template #abpHeader>\r\n <h3>{{ title | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav-tabs\">\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::CostParameters:Info' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <div class=\"mb-3\">\r\n <label for=\"region\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:Region' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"region\" class=\"form-select\" formControlName=\"region\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let region of regionOptions\" [ngValue]=\"region.value\">\r\n {{ region.label | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"productGroup\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:ProductGroup' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"productGroup\" class=\"form-select\" formControlName=\"productGroup\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let productGroup of productGroupOptions\" [ngValue]=\"productGroup.code\">\r\n {{ productGroup.name }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"status\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:Status' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"status\" class=\"form-select\" formControlName=\"status\">\r\n <option *ngFor=\"let opt of statusOptions\" [ngValue]=\"opt.value\">\r\n {{ opt.label | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"description\" class=\"form-label\">\r\n {{ 'Keops::CostParameters:Description' | abpLocalization }}\r\n </label>\r\n <textarea\r\n id=\"description\"\r\n class=\"form-control\"\r\n formControlName=\"description\"\r\n rows=\"3\"\r\n ></textarea>\r\n </div>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::CostParameters:ItemValues' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <table class=\"table table-sm align-middle\">\r\n <colgroup>\r\n <col style=\"width: 50%\" />\r\n <col style=\"width: 30%\" />\r\n <col style=\"width: 20%\" />\r\n </colgroup>\r\n <tbody formArrayName=\"items\">\r\n <tr *ngFor=\"let costItem of costItems; let i = index\" [formGroupName]=\"i\">\r\n <td>\r\n {{ costItem.name }}\r\n <span class=\"badge bg-info ms-1\" *ngIf=\"isCustom(costItem)\">\r\n {{ customLabel | abpLocalization }}\r\n </span>\r\n </td>\r\n <td>\r\n <input\r\n *ngIf=\"isCustom(costItem); else valueInput\"\r\n type=\"text\"\r\n class=\"form-control form-control-sm\"\r\n disabled\r\n [placeholder]=\"'Keops::CostParameters:AutoCalculated' | abpLocalization\"\r\n />\r\n <ng-template #valueInput>\r\n <div class=\"input-group input-group-sm\">\r\n <input type=\"number\" class=\"form-control\" formControlName=\"value\" />\r\n <span class=\"input-group-text px-3\" *ngIf=\"isRate(costItem)\">%</span>\r\n </div>\r\n </ng-template>\r\n </td>\r\n <td>\r\n <select\r\n *ngIf=\"!isRate(costItem) && !isCustom(costItem)\"\r\n class=\"form-select form-select-sm\"\r\n formControlName=\"currency\"\r\n >\r\n <option *ngFor=\"let currency of currencyOptions\" [ngValue]=\"currency.value\">\r\n {{ currency.label }}\r\n </option>\r\n </select>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div [ngbNavOutlet]=\"nav\"></div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary\"\r\n [loading]=\"saving\"\r\n [disabled]=\"form?.invalid\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
1507
1601
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i1$1.CostParameterService }, { type: i1$1.CostItemService }, { type: CostItemRowsBuilder }]; }, propDecorators: { visible: [{
1508
1602
  type: Input
1509
1603
  }], mode: [{
@@ -1512,8 +1606,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1512
1606
  type: Input
1513
1607
  }], productGroupOptions: [{
1514
1608
  type: Input
1515
- }], regionOptions: [{
1516
- type: Input
1517
1609
  }], visibleChange: [{
1518
1610
  type: Output
1519
1611
  }], saved: [{
@@ -1528,7 +1620,6 @@ class CostParametersComponent {
1528
1620
  this.confirmation = confirmation;
1529
1621
  this.items = [];
1530
1622
  this.productGroupOptions = [];
1531
- this.regionOptions = [];
1532
1623
  this.selected = null;
1533
1624
  this.formVisible = false;
1534
1625
  this.formMode = 'create';
@@ -1542,8 +1633,8 @@ class CostParametersComponent {
1542
1633
  getProductGroupName(code) {
1543
1634
  return this.resolveName(this.productGroupOptions, code);
1544
1635
  }
1545
- getRegionName(code) {
1546
- return this.resolveName(this.regionOptions, code);
1636
+ getRegionLabel(value) {
1637
+ return businessRegionLabels[value] ?? '';
1547
1638
  }
1548
1639
  resolveName(options, code) {
1549
1640
  if (!code)
@@ -1555,9 +1646,7 @@ class CostParametersComponent {
1555
1646
  categories: this.categoryService.getList(),
1556
1647
  items: this.service.getList(),
1557
1648
  }).subscribe(({ categories, items }) => {
1558
- const categoryList = categories ?? [];
1559
- this.productGroupOptions = categoryList.filter(x => x.parentCode === CostParameterCategoryParentCode.Code1);
1560
- this.regionOptions = categoryList.filter(x => x.parentCode === CostParameterCategoryParentCode.Code4);
1649
+ this.productGroupOptions = categories ?? [];
1561
1650
  this.items = items;
1562
1651
  });
1563
1652
  }
@@ -1598,13 +1687,13 @@ class CostParametersComponent {
1598
1687
  }
1599
1688
  }
1600
1689
  CostParametersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostParametersComponent, deps: [{ token: i1$1.CostParameterService }, { token: i1$1.CostParameterCategoryService }, { token: i2.ToasterService }, { token: i2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
1601
- CostParametersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostParametersComponent, selector: "lib-cost-parameters", ngImport: i0, template: "<abp-page [title]=\"'Keops::CostParameters:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"CostParametersToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::CostParameters:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"CostParametersWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"region\"\n cellTemplate=\"regionTpl\"\n caption=\"{{ 'Keops::CostParameters:Region' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'regionTpl'\">\n <span>{{ getRegionName(row.data.region) }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"productGroup\"\n cellTemplate=\"productGroupTpl\"\n caption=\"{{ 'Keops::CostParameters:ProductGroup' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'productGroupTpl'\">\n <span>{{ getProductGroupName(row.data.productGroup) }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"status\"\n width=\"160\"\n cellTemplate=\"statusTpl\"\n caption=\"{{ 'Keops::CostParameters:Status' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'statusTpl'\">\n <span>{{ getStatusLabel(row.data.status) | abpLocalization }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"description\"\n caption=\"{{ 'Keops::CostParameters:Description' | abpLocalization }}\"\n ></dxi-column>\n <dxi-column\n dataField=\"updateDate\"\n cellTemplate=\"updateTpl\"\n caption=\"{{ 'Keops::CostParameters:LastUpdate' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'updateTpl'\">\n <span>{{ row.data.updateDate | shortDate }} {{ row.data.updateTime?.substring(0, 5) }}</span>\n </div>\n </dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-cost-parameter-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n [productGroupOptions]=\"productGroupOptions\"\n [regionOptions]=\"regionOptions\"\n (saved)=\"onSaved()\"\n></lib-cost-parameter-form>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "directive", type: i6.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i6.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i6.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i6.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i8.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i8.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "directive", type: i9.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: CostParameterFormComponent, selector: "lib-cost-parameter-form", inputs: ["visible", "mode", "current", "productGroupOptions", "regionOptions"], outputs: ["visibleChange", "saved"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: i4.ShortDatePipe, name: "shortDate" }] });
1690
+ CostParametersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostParametersComponent, selector: "lib-cost-parameters", ngImport: i0, template: "<abp-page [title]=\"'Keops::CostParameters:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"CostParametersToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::CostParameters:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"CostParametersWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"region\"\n cellTemplate=\"regionTpl\"\n caption=\"{{ 'Keops::CostParameters:Region' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'regionTpl'\">\n <span>{{ getRegionLabel(row.data.region) | abpLocalization }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"productGroup\"\n cellTemplate=\"productGroupTpl\"\n caption=\"{{ 'Keops::CostParameters:ProductGroup' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'productGroupTpl'\">\n <span>{{ getProductGroupName(row.data.productGroup) }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"status\"\n width=\"160\"\n cellTemplate=\"statusTpl\"\n caption=\"{{ 'Keops::CostParameters:Status' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'statusTpl'\">\n <span>{{ getStatusLabel(row.data.status) | abpLocalization }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"description\"\n caption=\"{{ 'Keops::CostParameters:Description' | abpLocalization }}\"\n ></dxi-column>\n <dxi-column\n dataField=\"updateDate\"\n cellTemplate=\"updateTpl\"\n caption=\"{{ 'Keops::CostParameters:LastUpdate' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'updateTpl'\">\n <span>{{ row.data.updateDate | shortDate }} {{ row.data.updateTime?.substring(0, 5) }}</span>\n </div>\n </dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-cost-parameter-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n [productGroupOptions]=\"productGroupOptions\"\n (saved)=\"onSaved()\"\n></lib-cost-parameter-form>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "directive", type: i6.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i6.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i6.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i6.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i8.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i8.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "directive", type: i9.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: CostParameterFormComponent, selector: "lib-cost-parameter-form", inputs: ["visible", "mode", "current", "productGroupOptions"], outputs: ["visibleChange", "saved"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: i4.ShortDatePipe, name: "shortDate" }] });
1602
1691
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostParametersComponent, decorators: [{
1603
1692
  type: Component,
1604
- args: [{ selector: 'lib-cost-parameters', template: "<abp-page [title]=\"'Keops::CostParameters:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"CostParametersToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::CostParameters:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"CostParametersWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"region\"\n cellTemplate=\"regionTpl\"\n caption=\"{{ 'Keops::CostParameters:Region' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'regionTpl'\">\n <span>{{ getRegionName(row.data.region) }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"productGroup\"\n cellTemplate=\"productGroupTpl\"\n caption=\"{{ 'Keops::CostParameters:ProductGroup' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'productGroupTpl'\">\n <span>{{ getProductGroupName(row.data.productGroup) }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"status\"\n width=\"160\"\n cellTemplate=\"statusTpl\"\n caption=\"{{ 'Keops::CostParameters:Status' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'statusTpl'\">\n <span>{{ getStatusLabel(row.data.status) | abpLocalization }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"description\"\n caption=\"{{ 'Keops::CostParameters:Description' | abpLocalization }}\"\n ></dxi-column>\n <dxi-column\n dataField=\"updateDate\"\n cellTemplate=\"updateTpl\"\n caption=\"{{ 'Keops::CostParameters:LastUpdate' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'updateTpl'\">\n <span>{{ row.data.updateDate | shortDate }} {{ row.data.updateTime?.substring(0, 5) }}</span>\n </div>\n </dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-cost-parameter-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n [productGroupOptions]=\"productGroupOptions\"\n [regionOptions]=\"regionOptions\"\n (saved)=\"onSaved()\"\n></lib-cost-parameter-form>\n" }]
1693
+ args: [{ selector: 'lib-cost-parameters', template: "<abp-page [title]=\"'Keops::CostParameters:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"CostParametersToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::CostParameters:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"CostParametersWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.CostParameters.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"region\"\n cellTemplate=\"regionTpl\"\n caption=\"{{ 'Keops::CostParameters:Region' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'regionTpl'\">\n <span>{{ getRegionLabel(row.data.region) | abpLocalization }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"productGroup\"\n cellTemplate=\"productGroupTpl\"\n caption=\"{{ 'Keops::CostParameters:ProductGroup' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'productGroupTpl'\">\n <span>{{ getProductGroupName(row.data.productGroup) }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"status\"\n width=\"160\"\n cellTemplate=\"statusTpl\"\n caption=\"{{ 'Keops::CostParameters:Status' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'statusTpl'\">\n <span>{{ getStatusLabel(row.data.status) | abpLocalization }}</span>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"description\"\n caption=\"{{ 'Keops::CostParameters:Description' | abpLocalization }}\"\n ></dxi-column>\n <dxi-column\n dataField=\"updateDate\"\n cellTemplate=\"updateTpl\"\n caption=\"{{ 'Keops::CostParameters:LastUpdate' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'updateTpl'\">\n <span>{{ row.data.updateDate | shortDate }} {{ row.data.updateTime?.substring(0, 5) }}</span>\n </div>\n </dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-cost-parameter-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n [productGroupOptions]=\"productGroupOptions\"\n (saved)=\"onSaved()\"\n></lib-cost-parameter-form>\n" }]
1605
1694
  }], ctorParameters: function () { return [{ type: i1$1.CostParameterService }, { type: i1$1.CostParameterCategoryService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
1606
1695
 
1607
- const routes$p = [
1696
+ const routes$q = [
1608
1697
  {
1609
1698
  path: '',
1610
1699
  component: CostParametersComponent,
@@ -1618,11 +1707,11 @@ class HitCostParametersRoutingModule {
1618
1707
  }
1619
1708
  HitCostParametersRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParametersRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1620
1709
  HitCostParametersRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitCostParametersRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
1621
- HitCostParametersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParametersRoutingModule, imports: [RouterModule.forChild(routes$p), RouterModule] });
1710
+ HitCostParametersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParametersRoutingModule, imports: [RouterModule.forChild(routes$q), RouterModule] });
1622
1711
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParametersRoutingModule, decorators: [{
1623
1712
  type: NgModule,
1624
1713
  args: [{
1625
- imports: [RouterModule.forChild(routes$p)],
1714
+ imports: [RouterModule.forChild(routes$q)],
1626
1715
  exports: [RouterModule],
1627
1716
  }]
1628
1717
  }] });
@@ -1675,11 +1764,6 @@ function loadHitCostParametersModuleAsChild() {
1675
1764
  return Promise.resolve(HitCostParametersModule);
1676
1765
  }
1677
1766
 
1678
- const parentCodeLabels = {
1679
- [CostParameterCategoryParentCode.Code1]: 'Keops::CostParameterCategories:ParentCode:Code1',
1680
- [CostParameterCategoryParentCode.Code4]: 'Keops::CostParameterCategories:ParentCode:Code4',
1681
- };
1682
-
1683
1767
  class CostParameterCategoryFormComponent {
1684
1768
  constructor(fb, service) {
1685
1769
  this.fb = fb;
@@ -1689,10 +1773,6 @@ class CostParameterCategoryFormComponent {
1689
1773
  this.current = null;
1690
1774
  this.visibleChange = new EventEmitter();
1691
1775
  this.saved = new EventEmitter();
1692
- this.parentCodeOptions = costParameterCategoryParentCodeOptions.map(option => ({
1693
- value: option.value,
1694
- label: parentCodeLabels[option.value] ?? option.key,
1695
- }));
1696
1776
  }
1697
1777
  ngOnInit() {
1698
1778
  this.buildForm();
@@ -1705,7 +1785,6 @@ class CostParameterCategoryFormComponent {
1705
1785
  buildForm() {
1706
1786
  this.form = this.fb.group({
1707
1787
  name: ['', Validators.required],
1708
- parentCode: [null, Validators.required],
1709
1788
  });
1710
1789
  this.resetForm();
1711
1790
  }
@@ -1715,11 +1794,10 @@ class CostParameterCategoryFormComponent {
1715
1794
  if (this.mode === 'edit' && this.current) {
1716
1795
  this.form.patchValue({
1717
1796
  name: this.current.name ?? '',
1718
- parentCode: this.current.parentCode ?? null,
1719
1797
  });
1720
1798
  }
1721
1799
  else {
1722
- this.form.reset({ name: '', parentCode: null });
1800
+ this.form.reset({ name: '' });
1723
1801
  }
1724
1802
  }
1725
1803
  close() {
@@ -1732,7 +1810,6 @@ class CostParameterCategoryFormComponent {
1732
1810
  this.service
1733
1811
  .create({
1734
1812
  name: this.form.get('name')?.value,
1735
- parentCode: this.form.get('parentCode')?.value,
1736
1813
  })
1737
1814
  .subscribe({ next: () => this.saved.emit() });
1738
1815
  }
@@ -1740,17 +1817,16 @@ class CostParameterCategoryFormComponent {
1740
1817
  this.service
1741
1818
  .update(this.current.code, {
1742
1819
  name: this.form.get('name')?.value,
1743
- parentCode: this.form.get('parentCode')?.value,
1744
1820
  })
1745
1821
  .subscribe({ next: () => this.saved.emit() });
1746
1822
  }
1747
1823
  }
1748
1824
  }
1749
1825
  CostParameterCategoryFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostParameterCategoryFormComponent, deps: [{ token: i1.FormBuilder }, { token: i1$1.CostParameterCategoryService }], target: i0.ɵɵFactoryTarget.Component });
1750
- CostParameterCategoryFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostParameterCategoryFormComponent, selector: "lib-cost-parameter-category-form", inputs: { visible: "visible", mode: "mode", current: "current" }, outputs: { visibleChange: "visibleChange", saved: "saved" }, usesOnChanges: true, ngImport: i0, template: "<abp-modal [(visible)]=\"visible\" (disappear)=\"close()\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n <span *ngIf=\"mode === 'create'\">{{ 'Keops::CostParameterCategories:CreateTitle' | abpLocalization }}</span>\r\n <span *ngIf=\"mode === 'edit'\">{{ 'Keops::CostParameterCategories:EditTitle' | abpLocalization }}</span>\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"costParameterCategoryForm\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">\r\n {{ 'Keops::CostParameterCategories:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">\r\n {{ 'Keops::CostParameterCategories:ParentCode' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select class=\"form-select\" formControlName=\"parentCode\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let option of parentCodeOptions\" [ngValue]=\"option.value\">\r\n {{ option.label | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"close()\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
1826
+ CostParameterCategoryFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostParameterCategoryFormComponent, selector: "lib-cost-parameter-category-form", inputs: { visible: "visible", mode: "mode", current: "current" }, outputs: { visibleChange: "visibleChange", saved: "saved" }, usesOnChanges: true, ngImport: i0, template: "<abp-modal [(visible)]=\"visible\" (disappear)=\"close()\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n <span *ngIf=\"mode === 'create'\">{{ 'Keops::CostParameterCategories:CreateTitle' | abpLocalization }}</span>\r\n <span *ngIf=\"mode === 'edit'\">{{ 'Keops::CostParameterCategories:EditTitle' | abpLocalization }}</span>\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"costParameterCategoryForm\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">\r\n {{ 'Keops::CostParameterCategories:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" />\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"close()\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
1751
1827
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostParameterCategoryFormComponent, decorators: [{
1752
1828
  type: Component,
1753
- args: [{ selector: 'lib-cost-parameter-category-form', template: "<abp-modal [(visible)]=\"visible\" (disappear)=\"close()\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n <span *ngIf=\"mode === 'create'\">{{ 'Keops::CostParameterCategories:CreateTitle' | abpLocalization }}</span>\r\n <span *ngIf=\"mode === 'edit'\">{{ 'Keops::CostParameterCategories:EditTitle' | abpLocalization }}</span>\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"costParameterCategoryForm\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">\r\n {{ 'Keops::CostParameterCategories:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">\r\n {{ 'Keops::CostParameterCategories:ParentCode' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select class=\"form-select\" formControlName=\"parentCode\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let option of parentCodeOptions\" [ngValue]=\"option.value\">\r\n {{ option.label | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"close()\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
1829
+ args: [{ selector: 'lib-cost-parameter-category-form', template: "<abp-modal [(visible)]=\"visible\" (disappear)=\"close()\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n <span *ngIf=\"mode === 'create'\">{{ 'Keops::CostParameterCategories:CreateTitle' | abpLocalization }}</span>\r\n <span *ngIf=\"mode === 'edit'\">{{ 'Keops::CostParameterCategories:EditTitle' | abpLocalization }}</span>\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"costParameterCategoryForm\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">\r\n {{ 'Keops::CostParameterCategories:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" />\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"close()\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
1754
1830
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i1$1.CostParameterCategoryService }]; }, propDecorators: { visible: [{
1755
1831
  type: Input
1756
1832
  }], mode: [{
@@ -1776,9 +1852,6 @@ class CostParameterCategoriesComponent {
1776
1852
  ngOnInit() {
1777
1853
  this.loadList();
1778
1854
  }
1779
- getParentCodeLabel(value) {
1780
- return parentCodeLabels[value] ?? '';
1781
- }
1782
1855
  loadList() {
1783
1856
  this.service.getList().subscribe(data => {
1784
1857
  this.items = data;
@@ -1816,13 +1889,13 @@ class CostParameterCategoriesComponent {
1816
1889
  }
1817
1890
  }
1818
1891
  CostParameterCategoriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostParameterCategoriesComponent, deps: [{ token: i1$1.CostParameterCategoryService }, { token: i2.ToasterService }, { token: i2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
1819
- CostParameterCategoriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostParameterCategoriesComponent, selector: "lib-cost-parameter-categories", ngImport: i0, template: "<abp-page [title]=\"'Keops::CostParameterCategories:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"CostParameterCategoriesToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.CostParameterCategories.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::CostParameterCategories:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"CostParameterCategoriesWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.CostParameterCategories.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.CostParameterCategories.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"name\"\n caption=\"{{ 'Keops::CostParameterCategories:Name' | abpLocalization }}\"\n ></dxi-column>\n <dxi-column\n dataField=\"parentCode\"\n cellTemplate=\"parentCodeTpl\"\n alignment=\"left\"\n caption=\"{{ 'Keops::CostParameterCategories:ParentCode' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'parentCodeTpl'\">\n {{ getParentCodeLabel(row.data.parentCode) | abpLocalization }}\n </div>\n </dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-cost-parameter-category-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n (saved)=\"onSaved()\"\n></lib-cost-parameter-category-form>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "directive", type: i6.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i6.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i6.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i6.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i8.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i8.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "directive", type: i9.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: CostParameterCategoryFormComponent, selector: "lib-cost-parameter-category-form", inputs: ["visible", "mode", "current"], outputs: ["visibleChange", "saved"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
1892
+ CostParameterCategoriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostParameterCategoriesComponent, selector: "lib-cost-parameter-categories", ngImport: i0, template: "<abp-page [title]=\"'Keops::CostParameterCategories:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"CostParameterCategoriesToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.CostParameterCategories.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::CostParameterCategories:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"CostParameterCategoriesWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.CostParameterCategories.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.CostParameterCategories.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"name\"\n caption=\"{{ 'Keops::CostParameterCategories:Name' | abpLocalization }}\"\n ></dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-cost-parameter-category-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n (saved)=\"onSaved()\"\n></lib-cost-parameter-category-form>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "directive", type: i6.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i6.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i6.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i6.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i8.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i8.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "directive", type: i9.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: CostParameterCategoryFormComponent, selector: "lib-cost-parameter-category-form", inputs: ["visible", "mode", "current"], outputs: ["visibleChange", "saved"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
1820
1893
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostParameterCategoriesComponent, decorators: [{
1821
1894
  type: Component,
1822
- args: [{ selector: 'lib-cost-parameter-categories', template: "<abp-page [title]=\"'Keops::CostParameterCategories:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"CostParameterCategoriesToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.CostParameterCategories.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::CostParameterCategories:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"CostParameterCategoriesWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.CostParameterCategories.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.CostParameterCategories.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"name\"\n caption=\"{{ 'Keops::CostParameterCategories:Name' | abpLocalization }}\"\n ></dxi-column>\n <dxi-column\n dataField=\"parentCode\"\n cellTemplate=\"parentCodeTpl\"\n alignment=\"left\"\n caption=\"{{ 'Keops::CostParameterCategories:ParentCode' | abpLocalization }}\"\n >\n <div *dxTemplate=\"let row of 'parentCodeTpl'\">\n {{ getParentCodeLabel(row.data.parentCode) | abpLocalization }}\n </div>\n </dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-cost-parameter-category-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n (saved)=\"onSaved()\"\n></lib-cost-parameter-category-form>\n" }]
1895
+ args: [{ selector: 'lib-cost-parameter-categories', template: "<abp-page [title]=\"'Keops::CostParameterCategories:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"CostParameterCategoriesToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.CostParameterCategories.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::CostParameterCategories:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"CostParameterCategoriesWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.CostParameterCategories.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.CostParameterCategories.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"name\"\n caption=\"{{ 'Keops::CostParameterCategories:Name' | abpLocalization }}\"\n ></dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-cost-parameter-category-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n (saved)=\"onSaved()\"\n></lib-cost-parameter-category-form>\n" }]
1823
1896
  }], ctorParameters: function () { return [{ type: i1$1.CostParameterCategoryService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
1824
1897
 
1825
- const routes$o = [
1898
+ const routes$p = [
1826
1899
  {
1827
1900
  path: '',
1828
1901
  component: CostParameterCategoriesComponent,
@@ -1836,11 +1909,11 @@ class HitCostParameterCategoriesRoutingModule {
1836
1909
  }
1837
1910
  HitCostParameterCategoriesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParameterCategoriesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1838
1911
  HitCostParameterCategoriesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitCostParameterCategoriesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
1839
- HitCostParameterCategoriesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParameterCategoriesRoutingModule, imports: [RouterModule.forChild(routes$o), RouterModule] });
1912
+ HitCostParameterCategoriesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParameterCategoriesRoutingModule, imports: [RouterModule.forChild(routes$p), RouterModule] });
1840
1913
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParameterCategoriesRoutingModule, decorators: [{
1841
1914
  type: NgModule,
1842
1915
  args: [{
1843
- imports: [RouterModule.forChild(routes$o)],
1916
+ imports: [RouterModule.forChild(routes$p)],
1844
1917
  exports: [RouterModule],
1845
1918
  }]
1846
1919
  }] });
@@ -2016,7 +2089,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2016
2089
  args: [{ selector: 'lib-packaging-types', template: "<abp-page [title]=\"'Keops::PackagingTypes:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"PackagingTypesToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.PackagingTypes.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::PackagingTypes:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"PackagingTypesWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.PackagingTypes.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.PackagingTypes.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"displayOrder\"\n dataType=\"number\"\n width=\"100\"\n caption=\"{{ 'Keops::PackagingTypes:DisplayOrder' | abpLocalization }}\"\n ></dxi-column>\n <dxi-column\n dataField=\"name\"\n caption=\"{{ 'Keops::PackagingTypes:Name' | abpLocalization }}\"\n ></dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-packaging-type-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n (saved)=\"onSaved()\"\n></lib-packaging-type-form>\n" }]
2017
2090
  }], ctorParameters: function () { return [{ type: i1$1.PackagingTypeService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
2018
2091
 
2019
- const routes$n = [
2092
+ const routes$o = [
2020
2093
  {
2021
2094
  path: '',
2022
2095
  component: PackagingTypesComponent,
@@ -2030,11 +2103,11 @@ class HitPackagingTypesRoutingModule {
2030
2103
  }
2031
2104
  HitPackagingTypesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingTypesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2032
2105
  HitPackagingTypesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingTypesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
2033
- HitPackagingTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingTypesRoutingModule, imports: [RouterModule.forChild(routes$n), RouterModule] });
2106
+ HitPackagingTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingTypesRoutingModule, imports: [RouterModule.forChild(routes$o), RouterModule] });
2034
2107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingTypesRoutingModule, decorators: [{
2035
2108
  type: NgModule,
2036
2109
  args: [{
2037
- imports: [RouterModule.forChild(routes$n)],
2110
+ imports: [RouterModule.forChild(routes$o)],
2038
2111
  exports: [RouterModule],
2039
2112
  }]
2040
2113
  }] });
@@ -2218,7 +2291,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2218
2291
  args: [{ selector: 'lib-packaging-materials', template: "<abp-page [title]=\"'Keops::PackagingMaterials:Title' | abpLocalization\">\n <abp-page-toolbar-container class=\"col\">\n <div class=\"row justify-content-end mx-0\" id=\"PackagingMaterialsToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\n <button\n *abpPermission=\"'KeopsCost.PackagingMaterials.Create'\"\n id=\"create\"\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"openCreate()\"\n >\n <i class=\"fa fa-plus me-1\"></i>\n <span>{{ 'Keops::PackagingMaterials:New' | abpLocalization }}</span>\n </button>\n </div>\n </div>\n </abp-page-toolbar-container>\n\n <div id=\"PackagingMaterialsWrapper\">\n <div class=\"card\">\n <div class=\"card-body\">\n <dx-data-grid\n [columnAutoWidth]=\"true\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [dataSource]=\"items\"\n keyExpr=\"code\"\n columnResizingMode=\"widget\"\n >\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-search-panel\n [width]=\"200\"\n [visible]=\"true\"\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\n ></dxo-search-panel>\n <dxo-pager\n [visible]=\"true\"\n [showInfo]=\"true\"\n [allowedPageSizes]=\"[10, 20, 50]\"\n [showPageSizeSelector]=\"true\"\n [showNavigationButtons]=\"true\"\n ></dxo-pager>\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxi-column\n [fixed]=\"true\"\n [allowFiltering]=\"false\"\n [allowHeaderFiltering]=\"false\"\n [allowReordering]=\"false\"\n [allowHiding]=\"false\"\n [allowGrouping]=\"false\"\n [allowSorting]=\"false\"\n cellTemplate=\"optTpl\"\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\n width=\"120\"\n >\n <div *dxTemplate=\"let row of 'optTpl'\">\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\n <i class=\"fa fa-cog me-1\"></i>\n {{ 'AbpUi::Actions' | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <button\n *abpPermission=\"'KeopsCost.PackagingMaterials.Update'\"\n ngbDropdownItem\n (click)=\"openEdit(row.data)\"\n >\n {{ 'AbpUi::Edit' | abpLocalization }}\n </button>\n <button\n *abpPermission=\"'KeopsCost.PackagingMaterials.Delete'\"\n ngbDropdownItem\n (click)=\"remove(row.data)\"\n >\n {{ 'AbpUi::Delete' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n </dxi-column>\n <dxi-column\n dataField=\"name\"\n caption=\"{{ 'Keops::PackagingMaterials:Name' | abpLocalization }}\"\n ></dxi-column>\n <dxi-column\n dataField=\"typeName\"\n caption=\"{{ 'Keops::PackagingMaterials:Type' | abpLocalization }}\"\n ></dxi-column>\n </dx-data-grid>\n </div>\n </div>\n </div>\n</abp-page>\n\n<lib-packaging-material-form\n *ngIf=\"formVisible\"\n [(visible)]=\"formVisible\"\n [mode]=\"formMode\"\n [current]=\"selected\"\n (saved)=\"onSaved()\"\n></lib-packaging-material-form>\n" }]
2219
2292
  }], ctorParameters: function () { return [{ type: i1$1.PackagingMaterialService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
2220
2293
 
2221
- const routes$m = [
2294
+ const routes$n = [
2222
2295
  {
2223
2296
  path: '',
2224
2297
  component: PackagingMaterialsComponent,
@@ -2232,11 +2305,11 @@ class HitPackagingMaterialsRoutingModule {
2232
2305
  }
2233
2306
  HitPackagingMaterialsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2234
2307
  HitPackagingMaterialsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
2235
- HitPackagingMaterialsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsRoutingModule, imports: [RouterModule.forChild(routes$m), RouterModule] });
2308
+ HitPackagingMaterialsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsRoutingModule, imports: [RouterModule.forChild(routes$n), RouterModule] });
2236
2309
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsRoutingModule, decorators: [{
2237
2310
  type: NgModule,
2238
2311
  args: [{
2239
- imports: [RouterModule.forChild(routes$m)],
2312
+ imports: [RouterModule.forChild(routes$n)],
2240
2313
  exports: [RouterModule],
2241
2314
  }]
2242
2315
  }] });
@@ -2720,7 +2793,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2720
2793
  args: [{ selector: 'lib-packaging-prices', template: "<abp-page [title]=\"'Keops::PackagingPrices:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"PackagingPricesToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsCost.PackagingPrices.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::PackagingPrices:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"PackagingPricesWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"docEntry\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsCost.PackagingPrices.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsCost.PackagingPrices.UpdateSapItemPrices'\"\r\n ngbDropdownItem\r\n (click)=\"updateSapItemPrices(row.data)\"\r\n >\r\n {{ 'Keops::PackagingPrices:UpdateSapItemPrices' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsCost.PackagingPrices.Delete'\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"docNum\"\r\n caption=\"{{ 'Keops::PackagingPrices:DocNum' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"name\"\r\n caption=\"{{ 'Keops::PackagingPrices:Name' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"materialTypeCode\"\r\n caption=\"{{ 'Keops::PackagingPrices:Type' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"typeOptions\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"docDate\"\r\n dataType=\"date\"\r\n caption=\"{{ 'Keops::PackagingPrices:DocDate' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"fromDate\"\r\n dataType=\"date\"\r\n caption=\"{{ 'Keops::PackagingPrices:FromDate' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"toDate\"\r\n dataType=\"date\"\r\n caption=\"{{ 'Keops::PackagingPrices:ToDate' | abpLocalization }}\"\r\n ></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-packaging-price-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n [typeOptions]=\"typeOptions\"\r\n (saved)=\"onSaved()\"\r\n></lib-packaging-price-form>\r\n" }]
2721
2794
  }], ctorParameters: function () { return [{ type: i1$1.PackagingPriceService }, { type: i1$1.PackagingTypeService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
2722
2795
 
2723
- const routes$l = [
2796
+ const routes$m = [
2724
2797
  {
2725
2798
  path: '',
2726
2799
  component: PackagingPricesComponent,
@@ -2734,11 +2807,11 @@ class HitPackagingPricesRoutingModule {
2734
2807
  }
2735
2808
  HitPackagingPricesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingPricesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2736
2809
  HitPackagingPricesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingPricesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
2737
- HitPackagingPricesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingPricesRoutingModule, imports: [RouterModule.forChild(routes$l), RouterModule] });
2810
+ HitPackagingPricesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingPricesRoutingModule, imports: [RouterModule.forChild(routes$m), RouterModule] });
2738
2811
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingPricesRoutingModule, decorators: [{
2739
2812
  type: NgModule,
2740
2813
  args: [{
2741
- imports: [RouterModule.forChild(routes$l)],
2814
+ imports: [RouterModule.forChild(routes$m)],
2742
2815
  exports: [RouterModule],
2743
2816
  }]
2744
2817
  }] });
@@ -2927,7 +3000,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2927
3000
  args: [{ selector: 'lib-price-parameter-types', template: "<abp-page [title]=\"'Keops::PriceParameterTypes:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"PriceParameterTypesToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameterTypes.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::PriceParameterTypes:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"PriceParameterTypesWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameterTypes.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameterTypes.Delete'\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"name\"\r\n caption=\"{{ 'Keops::PriceParameterTypes:Name' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"description\"\r\n caption=\"{{ 'Keops::PriceParameterTypes:Description' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"isActive\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n cellTemplate=\"isActiveTpl\"\r\n caption=\"{{ 'Keops::PriceParameterTypes:IsActive' | abpLocalization }}\"\r\n width=\"100\"\r\n alignment=\"center\"\r\n >\r\n <div *dxTemplate=\"let row of 'isActiveTpl'\">\r\n <i [class]=\"row.data.isActive ? 'fa fa-check text-success' : 'fa fa-times text-danger'\"></i>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-price-parameter-type-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n (saved)=\"onSaved()\"\r\n></lib-price-parameter-type-form>\r\n" }]
2928
3001
  }], ctorParameters: function () { return [{ type: i1$1.PriceParameterTypeService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
2929
3002
 
2930
- const routes$k = [
3003
+ const routes$l = [
2931
3004
  {
2932
3005
  path: '',
2933
3006
  component: PriceParameterTypesComponent,
@@ -2941,11 +3014,11 @@ class HitPriceParameterTypesRoutingModule {
2941
3014
  }
2942
3015
  HitPriceParameterTypesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParameterTypesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2943
3016
  HitPriceParameterTypesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParameterTypesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
2944
- HitPriceParameterTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParameterTypesRoutingModule, imports: [RouterModule.forChild(routes$k), RouterModule] });
3017
+ HitPriceParameterTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParameterTypesRoutingModule, imports: [RouterModule.forChild(routes$l), RouterModule] });
2945
3018
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParameterTypesRoutingModule, decorators: [{
2946
3019
  type: NgModule,
2947
3020
  args: [{
2948
- imports: [RouterModule.forChild(routes$k)],
3021
+ imports: [RouterModule.forChild(routes$l)],
2949
3022
  exports: [RouterModule],
2950
3023
  }]
2951
3024
  }] });
@@ -3001,43 +3074,142 @@ const statusLabels = {
3001
3074
  [PriceParameterStatus.InProgress]: 'Keops::PriceParameters:Status:InProgress',
3002
3075
  };
3003
3076
 
3004
- class PriceParameterLookupsService {
3005
- constructor(priceParameterTypeService, costParameterCategoryService) {
3006
- this.priceParameterTypeService = priceParameterTypeService;
3007
- this.costParameterCategoryService = costParameterCategoryService;
3077
+ class PriceParameterPriceUpdatePreviewModalComponent {
3078
+ constructor(activeModal) {
3079
+ this.activeModal = activeModal;
3080
+ this.items = [];
3081
+ this.priceListNo = null;
3008
3082
  }
3009
- loadTypeAndCategoryLookups() {
3083
+ }
3084
+ PriceParameterPriceUpdatePreviewModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterPriceUpdatePreviewModalComponent, deps: [{ token: i6.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
3085
+ PriceParameterPriceUpdatePreviewModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PriceParameterPriceUpdatePreviewModalComponent, selector: "lib-price-parameter-price-update-preview-modal", inputs: { items: "items", priceListNo: "priceListNo" }, ngImport: i0, template: "<div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n {{ 'Keops::PriceParameters:PriceUpdatePreviewTitle' | abpLocalization }}\r\n </h4>\r\n <button type=\"button\" class=\"btn-close\" (click)=\"activeModal.dismiss()\"></button>\r\n</div>\r\n\r\n<div class=\"modal-body\">\r\n <p class=\"text-muted mb-3\">\r\n {{ 'Keops::PriceParameters:PriceListNo' | abpLocalization }}: <strong>{{ priceListNo }}</strong>\r\n </p>\r\n\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"itemCode\"\r\n [noDataText]=\"'Keops::PriceParameters:NoData' | abpLocalization\"\r\n >\r\n <dxo-paging [pageSize]=\"20\"></dxo-paging>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[20, 50, 100]\"\r\n [showPageSizeSelector]=\"true\"\r\n ></dxo-pager>\r\n\r\n <dxi-column\r\n dataField=\"itemCode\"\r\n caption=\"{{ 'Keops::PriceParameters:ItemCode' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"itemName\"\r\n caption=\"{{ 'Keops::PriceParameters:ItemName' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"inventoryWeight\"\r\n caption=\"{{ 'Keops::PriceParameters:InventoryWeight' | abpLocalization }}\"\r\n ></dxi-column>\r\n\r\n <dxi-column caption=\"{{ 'Keops::PriceParameters:PackagingPrice' | abpLocalization }}\">\r\n <dxi-column dataField=\"packagingPriceTry\" caption=\"TRY\" format=\"#,##0.##\"></dxi-column>\r\n <dxi-column dataField=\"packagingPriceUsd\" caption=\"USD\" format=\"#,##0.##\"></dxi-column>\r\n <dxi-column dataField=\"packagingPriceEur\" caption=\"EUR\" format=\"#,##0.##\"></dxi-column>\r\n </dxi-column>\r\n\r\n <dxi-column caption=\"{{ 'Keops::PriceParameters:CurrentPrice' | abpLocalization }}\">\r\n <dxi-column dataField=\"currentPriceTry\" caption=\"TRY\" format=\"#,##0.##\"></dxi-column>\r\n <dxi-column dataField=\"currentPriceUsd\" caption=\"USD\" format=\"#,##0.##\"></dxi-column>\r\n <dxi-column dataField=\"currentPriceEur\" caption=\"EUR\" format=\"#,##0.##\"></dxi-column>\r\n </dxi-column>\r\n\r\n <dxi-column caption=\"{{ 'Keops::PriceParameters:NewPrice' | abpLocalization }}\">\r\n <dxi-column dataField=\"newPriceTry\" caption=\"TRY\" format=\"#,##0.##\"></dxi-column>\r\n <dxi-column dataField=\"newPriceUsd\" caption=\"USD\" format=\"#,##0.##\"></dxi-column>\r\n <dxi-column dataField=\"newPriceEur\" caption=\"EUR\" format=\"#,##0.##\"></dxi-column>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n cellTemplate=\"statusTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Action' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'statusTpl'\">\r\n <span *ngIf=\"row.data.skipped\" class=\"badge bg-warning text-dark\">\r\n {{ row.data.skipReason || ('Keops::PriceParameters:PriceUpdateSkipped' | abpLocalization) }}\r\n </span>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n</div>\r\n\r\n<div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-outline-secondary\" (click)=\"activeModal.dismiss()\">\r\n {{ 'AbpUi::Close' | abpLocalization }}\r\n </button>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "directive", type: i9.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
3086
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterPriceUpdatePreviewModalComponent, decorators: [{
3087
+ type: Component,
3088
+ args: [{ selector: 'lib-price-parameter-price-update-preview-modal', template: "<div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n {{ 'Keops::PriceParameters:PriceUpdatePreviewTitle' | abpLocalization }}\r\n </h4>\r\n <button type=\"button\" class=\"btn-close\" (click)=\"activeModal.dismiss()\"></button>\r\n</div>\r\n\r\n<div class=\"modal-body\">\r\n <p class=\"text-muted mb-3\">\r\n {{ 'Keops::PriceParameters:PriceListNo' | abpLocalization }}: <strong>{{ priceListNo }}</strong>\r\n </p>\r\n\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"itemCode\"\r\n [noDataText]=\"'Keops::PriceParameters:NoData' | abpLocalization\"\r\n >\r\n <dxo-paging [pageSize]=\"20\"></dxo-paging>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[20, 50, 100]\"\r\n [showPageSizeSelector]=\"true\"\r\n ></dxo-pager>\r\n\r\n <dxi-column\r\n dataField=\"itemCode\"\r\n caption=\"{{ 'Keops::PriceParameters:ItemCode' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"itemName\"\r\n caption=\"{{ 'Keops::PriceParameters:ItemName' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"inventoryWeight\"\r\n caption=\"{{ 'Keops::PriceParameters:InventoryWeight' | abpLocalization }}\"\r\n ></dxi-column>\r\n\r\n <dxi-column caption=\"{{ 'Keops::PriceParameters:PackagingPrice' | abpLocalization }}\">\r\n <dxi-column dataField=\"packagingPriceTry\" caption=\"TRY\" format=\"#,##0.##\"></dxi-column>\r\n <dxi-column dataField=\"packagingPriceUsd\" caption=\"USD\" format=\"#,##0.##\"></dxi-column>\r\n <dxi-column dataField=\"packagingPriceEur\" caption=\"EUR\" format=\"#,##0.##\"></dxi-column>\r\n </dxi-column>\r\n\r\n <dxi-column caption=\"{{ 'Keops::PriceParameters:CurrentPrice' | abpLocalization }}\">\r\n <dxi-column dataField=\"currentPriceTry\" caption=\"TRY\" format=\"#,##0.##\"></dxi-column>\r\n <dxi-column dataField=\"currentPriceUsd\" caption=\"USD\" format=\"#,##0.##\"></dxi-column>\r\n <dxi-column dataField=\"currentPriceEur\" caption=\"EUR\" format=\"#,##0.##\"></dxi-column>\r\n </dxi-column>\r\n\r\n <dxi-column caption=\"{{ 'Keops::PriceParameters:NewPrice' | abpLocalization }}\">\r\n <dxi-column dataField=\"newPriceTry\" caption=\"TRY\" format=\"#,##0.##\"></dxi-column>\r\n <dxi-column dataField=\"newPriceUsd\" caption=\"USD\" format=\"#,##0.##\"></dxi-column>\r\n <dxi-column dataField=\"newPriceEur\" caption=\"EUR\" format=\"#,##0.##\"></dxi-column>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n cellTemplate=\"statusTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Action' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'statusTpl'\">\r\n <span *ngIf=\"row.data.skipped\" class=\"badge bg-warning text-dark\">\r\n {{ row.data.skipReason || ('Keops::PriceParameters:PriceUpdateSkipped' | abpLocalization) }}\r\n </span>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n</div>\r\n\r\n<div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-outline-secondary\" (click)=\"activeModal.dismiss()\">\r\n {{ 'AbpUi::Close' | abpLocalization }}\r\n </button>\r\n</div>\r\n" }]
3089
+ }], ctorParameters: function () { return [{ type: i6.NgbActiveModal }]; }, propDecorators: { items: [{
3090
+ type: Input
3091
+ }], priceListNo: [{
3092
+ type: Input
3093
+ }] } });
3094
+
3095
+ class PriceParameterPriceUpdateService {
3096
+ constructor(service, priceListService, costItemService, modalService, toaster, confirmation) {
3097
+ this.service = service;
3098
+ this.priceListService = priceListService;
3099
+ this.costItemService = costItemService;
3100
+ this.modalService = modalService;
3101
+ this.toaster = toaster;
3102
+ this.confirmation = confirmation;
3103
+ }
3104
+ updateForDocEntry(docEntry) {
3105
+ return this.confirmAndRun(() => this.performUpdateForDocEntry(docEntry));
3106
+ }
3107
+ updateFromValues(source) {
3108
+ return this.confirmAndRun(() => this.performUpdateFromValues(source));
3109
+ }
3110
+ confirmAndRun(action) {
3111
+ return this.confirmation
3112
+ .warn('Keops::PriceParameters:UpdatePriceListConfirm', 'AbpUi::AreYouSure')
3113
+ .pipe(switchMap(status => (status === Confirmation.Status.confirm ? action() : of(void 0))));
3114
+ }
3115
+ performUpdateForDocEntry(docEntry) {
3010
3116
  return forkJoin({
3011
- types: this.priceParameterTypeService.getLookup(),
3012
- categories: this.costParameterCategoryService.getList(),
3013
- }).pipe(map(({ types, categories }) => {
3014
- const categoryList = categories ?? [];
3117
+ current: this.service.get(docEntry),
3118
+ costItems: this.costItemService.getList(),
3119
+ }).pipe(switchMap(({ current, costItems }) => {
3120
+ if (!current.groupCode || !current.typeCode) {
3121
+ return throwError(() => new Error('MissingGroupOrType'));
3122
+ }
3123
+ return this.performUpdateFromValues({
3124
+ region: current.region,
3125
+ groupCode: current.groupCode,
3126
+ typeCode: current.typeCode,
3127
+ ...this.computeSalesPrice(current, costItems ?? []),
3128
+ });
3129
+ }));
3130
+ }
3131
+ performUpdateFromValues(source) {
3132
+ return this.priceListService.getList(source.region, source.typeCode).pipe(switchMap(priceLists => {
3133
+ const factorOne = (priceLists ?? []).find(p => p.factor === 1);
3134
+ if (!factorOne) {
3135
+ return throwError(() => new Error('NoFactorOnePriceList'));
3136
+ }
3137
+ return this.service.previewPriceUpdate({
3138
+ businessRegion: source.region,
3139
+ cpGroupCode: source.groupCode,
3140
+ priceListNo: factorOne.priceListNo,
3141
+ salesPriceExcludingPackagingTry: source.salesPriceExcludingPackagingTry,
3142
+ rateUsd: source.rateUsd,
3143
+ rateEur: source.rateEur,
3144
+ });
3145
+ }), tap(result => {
3146
+ const modalRef = this.modalService.open(PriceParameterPriceUpdatePreviewModalComponent, {
3147
+ size: 'xl',
3148
+ centered: true,
3149
+ });
3150
+ const instance = modalRef.componentInstance;
3151
+ instance.items = result.items ?? [];
3152
+ instance.priceListNo = result.priceListNo;
3153
+ }), map(() => void 0), catchError(() => {
3154
+ this.toaster.error('Keops::PriceParameters:NoFactorOnePriceList');
3155
+ return of(void 0);
3156
+ }));
3157
+ }
3158
+ computeSalesPrice(dto, costItems) {
3159
+ const savedByCode = new Map((dto.items ?? []).map(v => [v.costItemCode, v]));
3160
+ const items = costItems.map(costItem => {
3161
+ const saved = savedByCode.get(costItem.code);
3162
+ const isPackaging = costItem.systemCode === CostItemSystemCode.Packaging;
3015
3163
  return {
3016
- typeOptions: types ?? [],
3017
- groupOptions: categoryList.filter(x => x.parentCode === CostParameterCategoryParentCode.Code1),
3018
- regionOptions: categoryList.filter(x => x.parentCode === CostParameterCategoryParentCode.Code4),
3164
+ costItemCode: costItem.code,
3165
+ costItemName: costItem.name ?? costItem.code,
3166
+ calculationType: costItem.calculationType,
3167
+ systemCode: costItem.systemCode,
3168
+ currency: saved?.currency,
3169
+ value: isPackaging ? 0 : parseDecimal(saved?.value),
3019
3170
  };
3020
- }));
3171
+ });
3172
+ const stage = {
3173
+ groupCode: '',
3174
+ groupName: '',
3175
+ displayOrder: 0,
3176
+ groupRole: CostGroupRole.None,
3177
+ items,
3178
+ };
3179
+ const rateUsd = dto.exchangeRateUsd ?? 0;
3180
+ const rateEur = dto.exchangeRateEur ?? 0;
3181
+ const result = calculateCost({
3182
+ rawOilPrice: dto.rawOilPrice ?? 0,
3183
+ rawOilCurrency: dto.rawOilCurrency,
3184
+ rateUsd,
3185
+ rateEur,
3186
+ stages: [stage],
3187
+ });
3188
+ return {
3189
+ salesPriceExcludingPackagingTry: result.totalSalePrice.try,
3190
+ rateUsd,
3191
+ rateEur,
3192
+ };
3021
3193
  }
3022
3194
  }
3023
- PriceParameterLookupsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterLookupsService, deps: [{ token: i1$1.PriceParameterTypeService }, { token: i1$1.CostParameterCategoryService }], target: i0.ɵɵFactoryTarget.Injectable });
3024
- PriceParameterLookupsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterLookupsService, providedIn: 'root' });
3025
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterLookupsService, decorators: [{
3195
+ PriceParameterPriceUpdateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterPriceUpdateService, deps: [{ token: i1$1.PriceParameterService }, { token: i1$1.PriceListService }, { token: i1$1.CostItemService }, { token: i6.NgbModal }, { token: i2.ToasterService }, { token: i2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Injectable });
3196
+ PriceParameterPriceUpdateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterPriceUpdateService, providedIn: 'root' });
3197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterPriceUpdateService, decorators: [{
3026
3198
  type: Injectable,
3027
3199
  args: [{ providedIn: 'root' }]
3028
- }], ctorParameters: function () { return [{ type: i1$1.PriceParameterTypeService }, { type: i1$1.CostParameterCategoryService }]; } });
3200
+ }], ctorParameters: function () { return [{ type: i1$1.PriceParameterService }, { type: i1$1.PriceListService }, { type: i1$1.CostItemService }, { type: i6.NgbModal }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
3029
3201
 
3030
3202
  class PriceParametersComponent {
3031
- constructor(service, lookupsService, router, toaster, confirmation) {
3203
+ constructor(service, lookupsService, priceUpdateService, router, toaster, confirmation) {
3032
3204
  this.service = service;
3033
3205
  this.lookupsService = lookupsService;
3206
+ this.priceUpdateService = priceUpdateService;
3034
3207
  this.router = router;
3035
3208
  this.toaster = toaster;
3036
3209
  this.confirmation = confirmation;
3037
3210
  this.items = [];
3038
3211
  this.typeOptions = [];
3039
3212
  this.groupOptions = [];
3040
- this.regionOptions = [];
3041
3213
  }
3042
3214
  ngOnInit() {
3043
3215
  this.load();
@@ -3045,6 +3217,9 @@ class PriceParametersComponent {
3045
3217
  getStatusLabel(value) {
3046
3218
  return statusLabels[value] ?? '';
3047
3219
  }
3220
+ getRegionLabel(value) {
3221
+ return businessRegionLabels[value] ?? '';
3222
+ }
3048
3223
  load() {
3049
3224
  forkJoin({
3050
3225
  lookups: this.lookupsService.loadTypeAndCategoryLookups(),
@@ -3052,7 +3227,6 @@ class PriceParametersComponent {
3052
3227
  }).subscribe(({ lookups, items }) => {
3053
3228
  this.typeOptions = lookups.typeOptions;
3054
3229
  this.groupOptions = lookups.groupOptions;
3055
- this.regionOptions = lookups.regionOptions;
3056
3230
  this.items = items;
3057
3231
  });
3058
3232
  }
@@ -3067,6 +3241,9 @@ class PriceParametersComponent {
3067
3241
  openEdit(row) {
3068
3242
  this.router.navigate(['/keops/cost/price-parameters', row.docEntry]);
3069
3243
  }
3244
+ updatePriceList(row) {
3245
+ this.priceUpdateService.updateForDocEntry(row.docEntry).subscribe();
3246
+ }
3070
3247
  remove(row) {
3071
3248
  this.confirmation
3072
3249
  .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')
@@ -3082,12 +3259,12 @@ class PriceParametersComponent {
3082
3259
  });
3083
3260
  }
3084
3261
  }
3085
- PriceParametersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParametersComponent, deps: [{ token: i1$1.PriceParameterService }, { token: PriceParameterLookupsService }, { token: i1$2.Router }, { token: i2.ToasterService }, { token: i2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
3086
- PriceParametersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PriceParametersComponent, selector: "lib-price-parameters", ngImport: i0, template: "<abp-page [title]=\"'Keops::PriceParameters:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"PriceParametersToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameters.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::PriceParameters:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"PriceParametersWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"docEntry\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameters.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameters.Delete'\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"typeCode\"\r\n cellTemplate=\"typeTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Type' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'typeTpl'\">\r\n <span>{{ row.data.typeCode | resolveCodeName: typeOptions }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"regionCode\"\r\n cellTemplate=\"regionTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Region' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'regionTpl'\">\r\n <span>{{ row.data.regionCode | resolveCodeName: regionOptions }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"groupCode\"\r\n cellTemplate=\"groupTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Group' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'groupTpl'\">\r\n <span>{{ row.data.groupCode | resolveCodeName: groupOptions }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"exchangeRate\"\r\n width=\"100\"\r\n caption=\"{{ 'Keops::PriceParameters:ExchangeRate' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"fromDate\"\r\n dataType=\"date\"\r\n width=\"120\"\r\n caption=\"{{ 'Keops::PriceParameters:StartDate' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"toDate\"\r\n dataType=\"date\"\r\n width=\"120\"\r\n caption=\"{{ 'Keops::PriceParameters:EndDate' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"status\"\r\n width=\"140\"\r\n cellTemplate=\"statusTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Status' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'statusTpl'\">\r\n <span>{{ getStatusLabel(row.data.status) | abpLocalization }}</span>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", dependencies: [{ kind: "directive", type: i4.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "directive", type: i6.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i6.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i6.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i6.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i8.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i8.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "directive", type: i9.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: ResolveCodeNamePipe, name: "resolveCodeName" }] });
3262
+ PriceParametersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParametersComponent, deps: [{ token: i1$1.PriceParameterService }, { token: PriceParameterLookupsService }, { token: PriceParameterPriceUpdateService }, { token: i1$2.Router }, { token: i2.ToasterService }, { token: i2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
3263
+ PriceParametersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PriceParametersComponent, selector: "lib-price-parameters", ngImport: i0, template: "<abp-page [title]=\"'Keops::PriceParameters:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"PriceParametersToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameters.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::PriceParameters:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"PriceParametersWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"docEntry\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameters.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameters.Update'\"\r\n ngbDropdownItem\r\n (click)=\"updatePriceList(row.data)\"\r\n >\r\n {{ 'Keops::PriceParameters:UpdatePriceList' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameters.Delete'\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"typeCode\"\r\n cellTemplate=\"typeTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Type' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'typeTpl'\">\r\n <span>{{ row.data.typeCode | resolveCodeName: typeOptions }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"region\"\r\n cellTemplate=\"regionTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Region' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'regionTpl'\">\r\n <span>{{ getRegionLabel(row.data.region) | abpLocalization }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"groupCode\"\r\n cellTemplate=\"groupTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Group' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'groupTpl'\">\r\n <span>{{ row.data.groupCode | resolveCodeName: groupOptions }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"exchangeRateUsd\"\r\n width=\"100\"\r\n caption=\"{{ 'Keops::PriceParameters:ExchangeRateUsd' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"exchangeRateEur\"\r\n width=\"100\"\r\n caption=\"{{ 'Keops::PriceParameters:ExchangeRateEur' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"fromDate\"\r\n dataType=\"date\"\r\n width=\"120\"\r\n caption=\"{{ 'Keops::PriceParameters:StartDate' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"toDate\"\r\n dataType=\"date\"\r\n width=\"120\"\r\n caption=\"{{ 'Keops::PriceParameters:EndDate' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"status\"\r\n width=\"140\"\r\n cellTemplate=\"statusTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Status' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'statusTpl'\">\r\n <span>{{ getStatusLabel(row.data.status) | abpLocalization }}</span>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", dependencies: [{ kind: "directive", type: i4.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "directive", type: i6.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i6.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i6.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i6.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i8.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i8.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "directive", type: i9.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: ResolveCodeNamePipe, name: "resolveCodeName" }] });
3087
3264
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParametersComponent, decorators: [{
3088
3265
  type: Component,
3089
- args: [{ selector: 'lib-price-parameters', template: "<abp-page [title]=\"'Keops::PriceParameters:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"PriceParametersToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameters.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::PriceParameters:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"PriceParametersWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"docEntry\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameters.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameters.Delete'\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"typeCode\"\r\n cellTemplate=\"typeTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Type' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'typeTpl'\">\r\n <span>{{ row.data.typeCode | resolveCodeName: typeOptions }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"regionCode\"\r\n cellTemplate=\"regionTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Region' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'regionTpl'\">\r\n <span>{{ row.data.regionCode | resolveCodeName: regionOptions }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"groupCode\"\r\n cellTemplate=\"groupTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Group' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'groupTpl'\">\r\n <span>{{ row.data.groupCode | resolveCodeName: groupOptions }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"exchangeRate\"\r\n width=\"100\"\r\n caption=\"{{ 'Keops::PriceParameters:ExchangeRate' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"fromDate\"\r\n dataType=\"date\"\r\n width=\"120\"\r\n caption=\"{{ 'Keops::PriceParameters:StartDate' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"toDate\"\r\n dataType=\"date\"\r\n width=\"120\"\r\n caption=\"{{ 'Keops::PriceParameters:EndDate' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"status\"\r\n width=\"140\"\r\n cellTemplate=\"statusTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Status' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'statusTpl'\">\r\n <span>{{ getStatusLabel(row.data.status) | abpLocalization }}</span>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n" }]
3090
- }], ctorParameters: function () { return [{ type: i1$1.PriceParameterService }, { type: PriceParameterLookupsService }, { type: i1$2.Router }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
3266
+ args: [{ selector: 'lib-price-parameters', template: "<abp-page [title]=\"'Keops::PriceParameters:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"PriceParametersToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameters.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::PriceParameters:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"PriceParametersWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"docEntry\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameters.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameters.Update'\"\r\n ngbDropdownItem\r\n (click)=\"updatePriceList(row.data)\"\r\n >\r\n {{ 'Keops::PriceParameters:UpdatePriceList' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsCost.PriceParameters.Delete'\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"typeCode\"\r\n cellTemplate=\"typeTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Type' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'typeTpl'\">\r\n <span>{{ row.data.typeCode | resolveCodeName: typeOptions }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"region\"\r\n cellTemplate=\"regionTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Region' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'regionTpl'\">\r\n <span>{{ getRegionLabel(row.data.region) | abpLocalization }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"groupCode\"\r\n cellTemplate=\"groupTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Group' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'groupTpl'\">\r\n <span>{{ row.data.groupCode | resolveCodeName: groupOptions }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"exchangeRateUsd\"\r\n width=\"100\"\r\n caption=\"{{ 'Keops::PriceParameters:ExchangeRateUsd' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"exchangeRateEur\"\r\n width=\"100\"\r\n caption=\"{{ 'Keops::PriceParameters:ExchangeRateEur' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"fromDate\"\r\n dataType=\"date\"\r\n width=\"120\"\r\n caption=\"{{ 'Keops::PriceParameters:StartDate' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"toDate\"\r\n dataType=\"date\"\r\n width=\"120\"\r\n caption=\"{{ 'Keops::PriceParameters:EndDate' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"status\"\r\n width=\"140\"\r\n cellTemplate=\"statusTpl\"\r\n caption=\"{{ 'Keops::PriceParameters:Status' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'statusTpl'\">\r\n <span>{{ getStatusLabel(row.data.status) | abpLocalization }}</span>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n" }]
3267
+ }], ctorParameters: function () { return [{ type: i1$1.PriceParameterService }, { type: PriceParameterLookupsService }, { type: PriceParameterPriceUpdateService }, { type: i1$2.Router }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
3091
3268
 
3092
3269
  class PriceParameterFormDataService {
3093
3270
  constructor(lookupsService, businessPartnerService, costItemService, exchangeRateService, priceParameterService) {
@@ -3109,7 +3286,6 @@ class PriceParameterFormDataService {
3109
3286
  return {
3110
3287
  typeOptions: lookups.typeOptions,
3111
3288
  groupOptions: lookups.groupOptions,
3112
- regionOptions: lookups.regionOptions,
3113
3289
  businessPartnersDataSource: new DataSource({
3114
3290
  store: new ArrayStore({ key: 'cardCode', data: businessPartners ?? [] }),
3115
3291
  paginate: true,
@@ -3134,10 +3310,10 @@ class PriceParameterCostMatchService {
3134
3310
  constructor(costParameterService) {
3135
3311
  this.costParameterService = costParameterService;
3136
3312
  }
3137
- findMatch(regionCode, groupCode) {
3313
+ findMatch(region, groupCode) {
3138
3314
  return this.costParameterService
3139
3315
  .getList()
3140
- .pipe(map(list => list.find(x => x.region === regionCode && x.productGroup === groupCode)));
3316
+ .pipe(map(list => list.find(x => x.region === region && x.productGroup === groupCode)));
3141
3317
  }
3142
3318
  }
3143
3319
  PriceParameterCostMatchService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterCostMatchService, deps: [{ token: i1$1.CostParameterService }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -3173,7 +3349,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
3173
3349
  class PriceParameterPriceListsTabComponent {
3174
3350
  constructor(priceListService) {
3175
3351
  this.priceListService = priceListService;
3176
- this.cpRegionCode = null;
3352
+ this.businessRegion = null;
3177
3353
  this.ppTypeCode = null;
3178
3354
  this.priceLists = [];
3179
3355
  this.loading = false;
@@ -3182,12 +3358,12 @@ class PriceParameterPriceListsTabComponent {
3182
3358
  this.load();
3183
3359
  }
3184
3360
  load() {
3185
- if (!this.cpRegionCode || !this.ppTypeCode) {
3361
+ if (!this.businessRegion || !this.ppTypeCode) {
3186
3362
  this.priceLists = [];
3187
3363
  return;
3188
3364
  }
3189
3365
  this.loading = true;
3190
- this.priceListService.getList(this.cpRegionCode, this.ppTypeCode).subscribe({
3366
+ this.priceListService.getList(this.businessRegion, this.ppTypeCode).subscribe({
3191
3367
  next: list => {
3192
3368
  this.priceLists = list ?? [];
3193
3369
  this.loading = false;
@@ -3197,11 +3373,11 @@ class PriceParameterPriceListsTabComponent {
3197
3373
  }
3198
3374
  }
3199
3375
  PriceParameterPriceListsTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterPriceListsTabComponent, deps: [{ token: i1$1.PriceListService }], target: i0.ɵɵFactoryTarget.Component });
3200
- PriceParameterPriceListsTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PriceParameterPriceListsTabComponent, selector: "lib-price-parameter-price-lists-tab", inputs: { cpRegionCode: "cpRegionCode", ppTypeCode: "ppTypeCode" }, usesOnChanges: true, ngImport: i0, template: "<table class=\"table table-sm align-middle mt-3\">\r\n <thead>\r\n <tr>\r\n <th style=\"width: 140px\">{{ 'Keops::PriceParameters:PriceListNo' | abpLocalization }}</th>\r\n <th>{{ 'Keops::PriceParameters:PriceListName' | abpLocalization }}</th>\r\n <th style=\"width: 120px\">\r\n {{ 'Keops::PriceParameters:PriceListFactor' | abpLocalization }}\r\n </th>\r\n <th>{{ 'Keops::PriceParameters:PriceListBase' | abpLocalization }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let priceList of priceLists\">\r\n <td>\r\n <span class=\"badge bg-light text-dark border\">{{ priceList.priceListNo }}</span>\r\n </td>\r\n <td>{{ priceList.priceListName }}</td>\r\n <td>{{ priceList.factor }}</td>\r\n <td>{{ priceList.basePriceListName || '\u2014' }}</td>\r\n </tr>\r\n <tr *ngIf=\"!loading && priceLists.length === 0\">\r\n <td colspan=\"4\" class=\"text-center text-muted py-3\">\r\n {{ 'Keops::PriceParameters:NoData' | abpLocalization }}\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
3376
+ PriceParameterPriceListsTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PriceParameterPriceListsTabComponent, selector: "lib-price-parameter-price-lists-tab", inputs: { businessRegion: "businessRegion", ppTypeCode: "ppTypeCode" }, usesOnChanges: true, ngImport: i0, template: "<table class=\"table table-sm align-middle mt-3\">\r\n <thead>\r\n <tr>\r\n <th style=\"width: 140px\">{{ 'Keops::PriceParameters:PriceListNo' | abpLocalization }}</th>\r\n <th>{{ 'Keops::PriceParameters:PriceListName' | abpLocalization }}</th>\r\n <th style=\"width: 120px\">\r\n {{ 'Keops::PriceParameters:PriceListFactor' | abpLocalization }}\r\n </th>\r\n <th>{{ 'Keops::PriceParameters:PriceListBase' | abpLocalization }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let priceList of priceLists\">\r\n <td>\r\n <span class=\"badge bg-light text-dark border\">{{ priceList.priceListNo }}</span>\r\n </td>\r\n <td>{{ priceList.priceListName }}</td>\r\n <td>{{ priceList.factor }}</td>\r\n <td>{{ priceList.basePriceListName || '\u2014' }}</td>\r\n </tr>\r\n <tr *ngIf=\"!loading && priceLists.length === 0\">\r\n <td colspan=\"4\" class=\"text-center text-muted py-3\">\r\n {{ 'Keops::PriceParameters:NoData' | abpLocalization }}\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
3201
3377
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterPriceListsTabComponent, decorators: [{
3202
3378
  type: Component,
3203
3379
  args: [{ selector: 'lib-price-parameter-price-lists-tab', template: "<table class=\"table table-sm align-middle mt-3\">\r\n <thead>\r\n <tr>\r\n <th style=\"width: 140px\">{{ 'Keops::PriceParameters:PriceListNo' | abpLocalization }}</th>\r\n <th>{{ 'Keops::PriceParameters:PriceListName' | abpLocalization }}</th>\r\n <th style=\"width: 120px\">\r\n {{ 'Keops::PriceParameters:PriceListFactor' | abpLocalization }}\r\n </th>\r\n <th>{{ 'Keops::PriceParameters:PriceListBase' | abpLocalization }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let priceList of priceLists\">\r\n <td>\r\n <span class=\"badge bg-light text-dark border\">{{ priceList.priceListNo }}</span>\r\n </td>\r\n <td>{{ priceList.priceListName }}</td>\r\n <td>{{ priceList.factor }}</td>\r\n <td>{{ priceList.basePriceListName || '\u2014' }}</td>\r\n </tr>\r\n <tr *ngIf=\"!loading && priceLists.length === 0\">\r\n <td colspan=\"4\" class=\"text-center text-muted py-3\">\r\n {{ 'Keops::PriceParameters:NoData' | abpLocalization }}\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n" }]
3204
- }], ctorParameters: function () { return [{ type: i1$1.PriceListService }]; }, propDecorators: { cpRegionCode: [{
3380
+ }], ctorParameters: function () { return [{ type: i1$1.PriceListService }]; }, propDecorators: { businessRegion: [{
3205
3381
  type: Input
3206
3382
  }], ppTypeCode: [{
3207
3383
  type: Input
@@ -3210,7 +3386,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
3210
3386
  class PriceParameterItemsTabComponent {
3211
3387
  constructor(priceListService) {
3212
3388
  this.priceListService = priceListService;
3213
- this.cpRegionCode = null;
3389
+ this.businessRegion = null;
3214
3390
  this.cpGroupCode = null;
3215
3391
  this.items = [];
3216
3392
  this.loading = false;
@@ -3219,12 +3395,12 @@ class PriceParameterItemsTabComponent {
3219
3395
  this.load();
3220
3396
  }
3221
3397
  load() {
3222
- if (!this.cpRegionCode || !this.cpGroupCode) {
3398
+ if (!this.businessRegion || !this.cpGroupCode) {
3223
3399
  this.items = [];
3224
3400
  return;
3225
3401
  }
3226
3402
  this.loading = true;
3227
- this.priceListService.getItems(this.cpRegionCode, this.cpGroupCode).subscribe({
3403
+ this.priceListService.getItems(this.businessRegion, this.cpGroupCode).subscribe({
3228
3404
  next: items => {
3229
3405
  this.items = items ?? [];
3230
3406
  this.loading = false;
@@ -3234,11 +3410,11 @@ class PriceParameterItemsTabComponent {
3234
3410
  }
3235
3411
  }
3236
3412
  PriceParameterItemsTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterItemsTabComponent, deps: [{ token: i1$1.PriceListService }], target: i0.ɵɵFactoryTarget.Component });
3237
- PriceParameterItemsTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PriceParameterItemsTabComponent, selector: "lib-price-parameter-items-tab", inputs: { cpRegionCode: "cpRegionCode", cpGroupCode: "cpGroupCode" }, usesOnChanges: true, ngImport: i0, template: "<dx-data-grid\r\n class=\"mt-3\"\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"itemCode\"\r\n columnResizingMode=\"widget\"\r\n [noDataText]=\"'Keops::PriceParameters:NoData' | abpLocalization\"\r\n>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"240\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50, 100]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"20\"></dxo-paging>\r\n\r\n <dxi-column\r\n dataField=\"itemCode\"\r\n width=\"200\"\r\n caption=\"{{ 'Keops::PriceParameters:ItemCode' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"itemName\"\r\n caption=\"{{ 'Keops::PriceParameters:ItemName' | abpLocalization }}\"\r\n ></dxi-column>\r\n</dx-data-grid>\r\n", dependencies: [{ kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i8.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i8.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
3413
+ PriceParameterItemsTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PriceParameterItemsTabComponent, selector: "lib-price-parameter-items-tab", inputs: { businessRegion: "businessRegion", cpGroupCode: "cpGroupCode" }, usesOnChanges: true, ngImport: i0, template: "<dx-data-grid\r\n class=\"mt-3\"\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"itemCode\"\r\n columnResizingMode=\"widget\"\r\n [noDataText]=\"'Keops::PriceParameters:NoData' | abpLocalization\"\r\n>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"240\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50, 100]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"20\"></dxo-paging>\r\n\r\n <dxi-column\r\n dataField=\"itemCode\"\r\n width=\"200\"\r\n caption=\"{{ 'Keops::PriceParameters:ItemCode' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"itemName\"\r\n caption=\"{{ 'Keops::PriceParameters:ItemName' | abpLocalization }}\"\r\n ></dxi-column>\r\n</dx-data-grid>\r\n", dependencies: [{ kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i8.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i8.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
3238
3414
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterItemsTabComponent, decorators: [{
3239
3415
  type: Component,
3240
3416
  args: [{ selector: 'lib-price-parameter-items-tab', template: "<dx-data-grid\r\n class=\"mt-3\"\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"itemCode\"\r\n columnResizingMode=\"widget\"\r\n [noDataText]=\"'Keops::PriceParameters:NoData' | abpLocalization\"\r\n>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"240\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50, 100]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"20\"></dxo-paging>\r\n\r\n <dxi-column\r\n dataField=\"itemCode\"\r\n width=\"200\"\r\n caption=\"{{ 'Keops::PriceParameters:ItemCode' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"itemName\"\r\n caption=\"{{ 'Keops::PriceParameters:ItemName' | abpLocalization }}\"\r\n ></dxi-column>\r\n</dx-data-grid>\r\n" }]
3241
- }], ctorParameters: function () { return [{ type: i1$1.PriceListService }]; }, propDecorators: { cpRegionCode: [{
3417
+ }], ctorParameters: function () { return [{ type: i1$1.PriceListService }]; }, propDecorators: { businessRegion: [{
3242
3418
  type: Input
3243
3419
  }], cpGroupCode: [{
3244
3420
  type: Input
@@ -3373,7 +3549,7 @@ const statusOptions = [
3373
3549
  ].map(value => ({ value, label: statusLabels[value] }));
3374
3550
  const DEFAULT_DISCOUNT_ROWS = 10;
3375
3551
  class PriceParameterFormComponent {
3376
- constructor(fb, route, router, toaster, service, formDataService, costMatchService, rowsBuilder) {
3552
+ constructor(fb, route, router, toaster, service, formDataService, costMatchService, rowsBuilder, priceUpdateService) {
3377
3553
  this.fb = fb;
3378
3554
  this.route = route;
3379
3555
  this.router = router;
@@ -3382,6 +3558,7 @@ class PriceParameterFormComponent {
3382
3558
  this.formDataService = formDataService;
3383
3559
  this.costMatchService = costMatchService;
3384
3560
  this.rowsBuilder = rowsBuilder;
3561
+ this.priceUpdateService = priceUpdateService;
3385
3562
  this.saving = false;
3386
3563
  this.editMode = false;
3387
3564
  this.docEntry = null;
@@ -3390,19 +3567,22 @@ class PriceParameterFormComponent {
3390
3567
  this.allCostItems = [];
3391
3568
  this.typeOptions = [];
3392
3569
  this.groupOptions = [];
3393
- this.regionOptions = [];
3570
+ this.regionOptions = BUSINESS_REGION_OPTIONS;
3394
3571
  this.autoApplyEnabled = false;
3572
+ this.updatingPrices = false;
3573
+ this.salesPriceExcludingPackagingTry = 0;
3574
+ this.salesPriceExcludingPackagingUsd = 0;
3575
+ this.effectiveRateUsd = 0;
3576
+ this.effectiveRateEur = 0;
3395
3577
  this.systemRateUsd = 0;
3396
3578
  this.systemRateEur = 0;
3397
- this.rateCurrency = Currency.USD;
3398
3579
  this.businessPartnersDataSource = null;
3399
3580
  this.selectedCustomerCode = null;
3400
3581
  this.gekapCurrency = Currency.TRY;
3401
3582
  this.rawOilCurrency = Currency.USD;
3402
- this.salesPriceExcludingPackagingCurrency = Currency.USD;
3403
3583
  this.statusOptions = statusOptions;
3404
3584
  this.currencyOptions = CURRENCY_OPTIONS;
3405
- this.rateCurrencyOptions = CURRENCY_OPTIONS_FX_ONLY;
3585
+ this.tryUsdCurrencyOptions = CURRENCY_OPTIONS_TRY_USD;
3406
3586
  this.customerDisplayExpr = (c) => c ? `${c.cardCode} - ${c.cardName}` : '';
3407
3587
  this.isRate = isRateCostItem;
3408
3588
  this.isCustom = isCustomCostItem;
@@ -3413,9 +3593,10 @@ class PriceParameterFormComponent {
3413
3593
  this.editMode = this.docEntry != null && !Number.isNaN(this.docEntry);
3414
3594
  this.form = this.fb.group({
3415
3595
  typeCode: [null, [Validators.required]],
3416
- regionCode: [null, [Validators.required]],
3596
+ region: [null, [Validators.required]],
3417
3597
  groupCode: [null, [Validators.required]],
3418
- exchangeRate: [0],
3598
+ exchangeRateUsd: [0],
3599
+ exchangeRateEur: [0],
3419
3600
  fromDate: [{ value: null, disabled: this.editMode }, [Validators.required]],
3420
3601
  toDate: [null, [Validators.required]],
3421
3602
  status: [null, [Validators.required]],
@@ -3425,13 +3606,16 @@ class PriceParameterFormComponent {
3425
3606
  generalQuota: [0],
3426
3607
  promotionalQuota: [0],
3427
3608
  rawOilPrice: [0],
3428
- salesPriceExcludingPackaging: [0],
3429
3609
  items: this.fb.array([]),
3430
3610
  discounts: this.fb.array([]),
3431
3611
  });
3432
3612
  this.applyDiscounts(null);
3433
- this.form.get('regionCode').valueChanges.subscribe(() => this.onCombinationChange());
3613
+ this.form.get('region').valueChanges.subscribe(() => this.onCombinationChange());
3434
3614
  this.form.get('groupCode').valueChanges.subscribe(() => this.onCombinationChange());
3615
+ this.form.get('rawOilPrice').valueChanges.subscribe(() => this.recalcSalesPriceExcludingPackaging());
3616
+ this.form.get('exchangeRateUsd').valueChanges.subscribe(() => this.recalcSalesPriceExcludingPackaging());
3617
+ this.form.get('exchangeRateEur').valueChanges.subscribe(() => this.recalcSalesPriceExcludingPackaging());
3618
+ this.itemsArray.valueChanges.subscribe(() => this.recalcSalesPriceExcludingPackaging());
3435
3619
  this.load();
3436
3620
  }
3437
3621
  get itemsArray() {
@@ -3445,8 +3629,8 @@ class PriceParameterFormComponent {
3445
3629
  ? 'Keops::PriceParameters:EditTitle'
3446
3630
  : 'Keops::PriceParameters:CreateTitle';
3447
3631
  }
3448
- get selectedRegionCode() {
3449
- return this.form?.get('regionCode')?.value ?? null;
3632
+ get selectedRegion() {
3633
+ return this.form?.get('region')?.value ?? null;
3450
3634
  }
3451
3635
  get selectedTypeCode() {
3452
3636
  return this.form?.get('typeCode')?.value ?? null;
@@ -3454,15 +3638,10 @@ class PriceParameterFormComponent {
3454
3638
  get selectedGroupCode() {
3455
3639
  return this.form?.get('groupCode')?.value ?? null;
3456
3640
  }
3457
- onRateCurrencyChange() {
3458
- this.form
3459
- .get('exchangeRate')
3460
- .setValue(this.rateCurrency === Currency.EUR ? this.systemRateEur : this.systemRateUsd);
3461
- }
3462
3641
  goBack() {
3463
3642
  this.router.navigate(['/keops/cost/price-parameters']);
3464
3643
  }
3465
- save() {
3644
+ save(andUpdatePriceList = false) {
3466
3645
  if (this.form.invalid) {
3467
3646
  this.form.markAllAsTouched();
3468
3647
  return;
@@ -3473,7 +3652,6 @@ class PriceParameterFormComponent {
3473
3652
  customerCode: this.selectedCustomerCode,
3474
3653
  gekapCurrency: this.gekapCurrency,
3475
3654
  rawOilCurrency: this.rawOilCurrency,
3476
- salesPriceExcludingPackagingCurrency: this.salesPriceExcludingPackagingCurrency,
3477
3655
  items: this.rowsBuilder.toInput(this.itemsArray),
3478
3656
  discounts: this.discountsArray.controls
3479
3657
  .map(group => group.value)
@@ -3489,15 +3667,22 @@ class PriceParameterFormComponent {
3489
3667
  request$.pipe(finalize(() => (this.saving = false))).subscribe({
3490
3668
  next: () => {
3491
3669
  this.toaster.success('AbpUi::SuccessfullySaved');
3492
- this.goBack();
3670
+ if (andUpdatePriceList) {
3671
+ this.updatePriceList();
3672
+ }
3673
+ else {
3674
+ this.goBack();
3675
+ }
3493
3676
  },
3494
3677
  });
3495
3678
  }
3679
+ saveAndUpdatePriceList() {
3680
+ this.save(true);
3681
+ }
3496
3682
  load() {
3497
3683
  this.formDataService.load(this.editMode ? this.docEntry : null).subscribe(data => {
3498
3684
  this.typeOptions = data.typeOptions;
3499
3685
  this.groupOptions = data.groupOptions;
3500
- this.regionOptions = data.regionOptions;
3501
3686
  this.businessPartnersDataSource = data.businessPartnersDataSource;
3502
3687
  this.allCostItems = data.costItems;
3503
3688
  this.systemRateUsd = data.systemRateUsd;
@@ -3507,17 +3692,21 @@ class PriceParameterFormComponent {
3507
3692
  this.patchFromCurrent(data.current);
3508
3693
  }
3509
3694
  else {
3695
+ this.form.patchValue({
3696
+ exchangeRateUsd: this.systemRateUsd,
3697
+ exchangeRateEur: this.systemRateEur,
3698
+ });
3510
3699
  this.autoApplyEnabled = true;
3511
- this.onRateCurrencyChange();
3512
3700
  }
3513
3701
  });
3514
3702
  }
3515
3703
  patchFromCurrent(dto) {
3516
3704
  this.form.patchValue({
3517
3705
  typeCode: dto.typeCode ?? null,
3518
- regionCode: dto.regionCode ?? null,
3706
+ region: dto.region ?? null,
3519
3707
  groupCode: dto.groupCode ?? null,
3520
- exchangeRate: dto.exchangeRate ?? 0,
3708
+ exchangeRateUsd: dto.exchangeRateUsd ?? 0,
3709
+ exchangeRateEur: dto.exchangeRateEur ?? 0,
3521
3710
  fromDate: this.toDateInput(dto.fromDate),
3522
3711
  toDate: this.toDateInput(dto.toDate),
3523
3712
  status: dto.status ?? PriceParameterStatus.Active,
@@ -3527,13 +3716,10 @@ class PriceParameterFormComponent {
3527
3716
  generalQuota: dto.generalQuota ?? 0,
3528
3717
  promotionalQuota: dto.promotionalQuota ?? 0,
3529
3718
  rawOilPrice: dto.rawOilPrice ?? 0,
3530
- salesPriceExcludingPackaging: dto.salesPriceExcludingPackaging ?? 0,
3531
3719
  }, { emitEvent: false });
3532
3720
  this.selectedCustomerCode = dto.customerCode ?? null;
3533
3721
  this.gekapCurrency = dto.gekapCurrency ?? Currency.TRY;
3534
3722
  this.rawOilCurrency = dto.rawOilCurrency ?? Currency.USD;
3535
- this.salesPriceExcludingPackagingCurrency =
3536
- dto.salesPriceExcludingPackagingCurrency ?? Currency.USD;
3537
3723
  this.applyItems(dto.items);
3538
3724
  this.applyDiscounts(dto.discounts);
3539
3725
  this.autoApplyEnabled = true;
@@ -3557,22 +3743,76 @@ class PriceParameterFormComponent {
3557
3743
  applyItems(source) {
3558
3744
  this.costItems = this.allCostItems;
3559
3745
  this.rowsBuilder.build(this.itemsArray, this.costItems, source);
3746
+ this.recalcSalesPriceExcludingPackaging();
3560
3747
  }
3561
3748
  clearItems() {
3562
3749
  this.costItems = [];
3563
3750
  this.itemsArray.clear();
3751
+ this.recalcSalesPriceExcludingPackaging();
3752
+ }
3753
+ recalcSalesPriceExcludingPackaging() {
3754
+ const items = this.itemsArray.controls.map((control, i) => {
3755
+ const raw = control.value;
3756
+ const meta = this.costItems[i];
3757
+ const isPackaging = meta?.systemCode === CostItemSystemCode.Packaging;
3758
+ return {
3759
+ costItemCode: raw.costItemCode,
3760
+ costItemName: meta?.name ?? raw.costItemCode,
3761
+ calculationType: raw.calculationType,
3762
+ systemCode: meta?.systemCode ?? undefined,
3763
+ currency: raw.currency,
3764
+ value: isPackaging ? 0 : parseDecimal(raw.value),
3765
+ };
3766
+ });
3767
+ const stage = {
3768
+ groupCode: '',
3769
+ groupName: '',
3770
+ displayOrder: 0,
3771
+ groupRole: CostGroupRole.None,
3772
+ items,
3773
+ };
3774
+ const rateUsd = parseDecimal(this.form.get('exchangeRateUsd').value);
3775
+ const rateEur = parseDecimal(this.form.get('exchangeRateEur').value);
3776
+ const result = calculateCost({
3777
+ rawOilPrice: parseDecimal(this.form.get('rawOilPrice').value),
3778
+ rawOilCurrency: this.rawOilCurrency,
3779
+ rateUsd,
3780
+ rateEur,
3781
+ stages: [stage],
3782
+ });
3783
+ this.salesPriceExcludingPackagingTry = result.totalSalePrice.try;
3784
+ this.salesPriceExcludingPackagingUsd = result.totalSalePrice.usd;
3785
+ this.effectiveRateUsd = rateUsd;
3786
+ this.effectiveRateEur = rateEur;
3787
+ }
3788
+ updatePriceList() {
3789
+ if (!this.selectedRegion || !this.selectedGroupCode || !this.selectedTypeCode) {
3790
+ return;
3791
+ }
3792
+ this.updatingPrices = true;
3793
+ this.priceUpdateService
3794
+ .updateFromValues({
3795
+ region: this.selectedRegion,
3796
+ groupCode: this.selectedGroupCode,
3797
+ typeCode: this.selectedTypeCode,
3798
+ salesPriceExcludingPackagingTry: this.salesPriceExcludingPackagingTry,
3799
+ rateUsd: this.effectiveRateUsd,
3800
+ rateEur: this.effectiveRateEur,
3801
+ })
3802
+ .pipe(finalize(() => (this.updatingPrices = false)))
3803
+ .subscribe();
3564
3804
  }
3565
3805
  onCombinationChange() {
3566
3806
  if (!this.autoApplyEnabled) {
3567
3807
  return;
3568
3808
  }
3569
- const regionCode = this.form.get('regionCode').value;
3809
+ const region = this.form.get('region').value;
3570
3810
  const groupCode = this.form.get('groupCode').value;
3571
- if (!regionCode || !groupCode) {
3811
+ if (!region || !groupCode) {
3572
3812
  this.clearItems();
3573
3813
  return;
3574
3814
  }
3575
- this.costMatchService.findMatch(regionCode, groupCode).subscribe(match => {
3815
+ this.costMatchService.findMatch(region, groupCode).subscribe(match => {
3576
3816
  if (!match) {
3577
3817
  this.clearItems();
3578
3818
  return;
@@ -3586,14 +3826,14 @@ class PriceParameterFormComponent {
3586
3826
  return value.substring(0, 10);
3587
3827
  }
3588
3828
  }
3589
- PriceParameterFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterFormComponent, deps: [{ token: i1.FormBuilder }, { token: i1$2.ActivatedRoute }, { token: i1$2.Router }, { token: i2.ToasterService }, { token: i1$1.PriceParameterService }, { token: PriceParameterFormDataService }, { token: PriceParameterCostMatchService }, { token: CostItemRowsBuilder }], target: i0.ɵɵFactoryTarget.Component });
3590
- PriceParameterFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PriceParameterFormComponent, selector: "lib-price-parameter-form", ngImport: i0, template: "<abp-page [title]=\"title | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0 d-flex gap-2\">\r\n <button type=\"button\" class=\"btn btn-outline-secondary\" (click)=\"goBack()\">\r\n <i class=\"fa fa-arrow-left me-1\"></i>\r\n {{ 'Keops::PriceParameters:BackToList' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-warning\" [disabled]=\"true\">\r\n {{ 'Keops::PriceParameters:UpdatePriceList' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-success\"\r\n [loading]=\"saving\"\r\n [disabled]=\"form?.invalid\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"card mb-3\">\r\n <div class=\"card-header d-flex justify-content-between align-items-center\">\r\n <small class=\"text-muted\" *ngIf=\"editMode\">\r\n {{ 'Keops::PriceParameters:DocNum' | abpLocalization }}: {{ current?.docNum ?? '-' }} \u00B7\r\n {{ 'Keops::PriceParameters:DocDate' | abpLocalization }}:\r\n {{ (current?.docDate | shortDate) ?? '-' }}\r\n </small>\r\n <small class=\"text-muted ms-auto\">\r\n {{ 'Keops::PriceParameters:SystemRates' | abpLocalization }}: USD\r\n {{ systemRateUsd | number }} \u00B7 EUR {{ systemRateEur | number }}\r\n </small>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-lg-6\">\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Type' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"typeCode\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let type of typeOptions\" [ngValue]=\"type.code\">\r\n {{ type.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Region' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"regionCode\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let region of regionOptions\" [ngValue]=\"region.code\">\r\n {{ region.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Group' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"groupCode\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let group of groupOptions\" [ngValue]=\"group.code\">\r\n {{ group.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:ExchangeRate' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <lib-amount-currency-input\r\n formControlName=\"exchangeRate\"\r\n [(currency)]=\"rateCurrency\"\r\n (currencyChange)=\"onRateCurrencyChange()\"\r\n [currencyOptions]=\"rateCurrencyOptions\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:StartDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <dx-date-box\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"fromDate\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:EndDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <dx-date-box\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"toDate\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:SalesPriceExcludingPackaging' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <lib-amount-currency-input\r\n formControlName=\"salesPriceExcludingPackaging\"\r\n [(currency)]=\"salesPriceExcludingPackagingCurrency\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-lg-6\">\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Status' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"status\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let opt of statusOptions\" [ngValue]=\"opt.value\">\r\n {{ opt.label | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:CustomerCode' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <dx-select-box\r\n [dataSource]=\"businessPartnersDataSource\"\r\n valueExpr=\"cardCode\"\r\n [displayExpr]=\"customerDisplayExpr\"\r\n [searchEnabled]=\"true\"\r\n [searchExpr]=\"['cardCode', 'cardName']\"\r\n searchMode=\"contains\"\r\n [searchTimeout]=\"200\"\r\n [minSearchLength]=\"0\"\r\n [showDataBeforeSearch]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"selectedCustomerCode\"\r\n [placeholder]=\"'Keops::SelectAnOption' | abpLocalization\"\r\n ></dx-select-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Gekap' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <lib-amount-currency-input\r\n formControlName=\"gekap\"\r\n [(currency)]=\"gekapCurrency\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:GeneralQuota' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <div class=\"input-group\">\r\n <input type=\"number\" class=\"form-control\" formControlName=\"generalQuota\" />\r\n <span class=\"input-group-text\">{{ 'Keops::PriceParameters:Unit:Ton' | abpLocalization }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:PromotionalQuota' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <div class=\"input-group\">\r\n <input type=\"number\" class=\"form-control\" formControlName=\"promotionalQuota\" />\r\n <span class=\"input-group-text\">{{ 'Keops::PriceParameters:Unit:Ton' | abpLocalization }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:RawOilPrice' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <lib-amount-currency-input\r\n formControlName=\"rawOilPrice\"\r\n [(currency)]=\"rawOilCurrency\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Description' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <textarea class=\"form-control\" rows=\"2\" formControlName=\"description\"></textarea>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav-tabs\" [destroyOnHide]=\"false\">\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:CostParameters' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-cost-items-tab [costItems]=\"costItems\" [itemsArray]=\"itemsArray\">\r\n </lib-price-parameter-cost-items-tab>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:PriceLists' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-price-lists-tab\r\n [cpRegionCode]=\"selectedRegionCode\"\r\n [ppTypeCode]=\"selectedTypeCode\"\r\n ></lib-price-parameter-price-lists-tab>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:Items' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-items-tab\r\n [cpRegionCode]=\"selectedRegionCode\"\r\n [cpGroupCode]=\"selectedGroupCode\"\r\n ></lib-price-parameter-items-tab>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:Discounts' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-discount-rates-tab [discountsArray]=\"discountsArray\">\r\n </lib-price-parameter-discount-rates-tab>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div [ngbNavOutlet]=\"nav\"></div>\r\n </div>\r\n </div>\r\n </form>\r\n</abp-page>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "component", type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "directive", type: i6.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i6.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i6.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i6.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "component", type: i6.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "component", type: i7.DxDateBoxComponent, selector: "dx-date-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "adaptivityEnabled", "applyButtonText", "applyValueMode", "buttons", "calendarOptions", "cancelButtonText", "dateOutOfRangeMessage", "dateSerializationFormat", "deferRendering", "disabled", "disabledDates", "displayFormat", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "interval", "invalidDateMessage", "isValid", "label", "labelMode", "max", "maxLength", "min", "name", "opened", "openOnFieldClick", "pickerType", "placeholder", "readOnly", "rtlEnabled", "showAnalogClock", "showClearButton", "showDropDownButton", "spellcheck", "stylingMode", "tabIndex", "text", "todayButtonText", "type", "useMaskBehavior", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "adaptivityEnabledChange", "applyButtonTextChange", "applyValueModeChange", "buttonsChange", "calendarOptionsChange", "cancelButtonTextChange", "dateOutOfRangeMessageChange", "dateSerializationFormatChange", "deferRenderingChange", "disabledChange", "disabledDatesChange", "displayFormatChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "intervalChange", "invalidDateMessageChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "maxLengthChange", "minChange", "nameChange", "openedChange", "openOnFieldClickChange", "pickerTypeChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showAnalogClockChange", "showClearButtonChange", "showDropDownButtonChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "todayButtonTextChange", "typeChange", "useMaskBehaviorChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i7.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "component", type: AmountCurrencyInputComponent, selector: "lib-amount-currency-input", inputs: ["currencyOptions", "currency"], outputs: ["currencyChange"] }, { kind: "component", type: PriceParameterCostItemsTabComponent, selector: "lib-price-parameter-cost-items-tab", inputs: ["costItems", "itemsArray"] }, { kind: "component", type: PriceParameterPriceListsTabComponent, selector: "lib-price-parameter-price-lists-tab", inputs: ["cpRegionCode", "ppTypeCode"] }, { kind: "component", type: PriceParameterItemsTabComponent, selector: "lib-price-parameter-items-tab", inputs: ["cpRegionCode", "cpGroupCode"] }, { kind: "component", type: PriceParameterDiscountRatesTabComponent, selector: "lib-price-parameter-discount-rates-tab", inputs: ["discountsArray"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: i4.ShortDatePipe, name: "shortDate" }] });
3829
+ PriceParameterFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterFormComponent, deps: [{ token: i1.FormBuilder }, { token: i1$2.ActivatedRoute }, { token: i1$2.Router }, { token: i2.ToasterService }, { token: i1$1.PriceParameterService }, { token: PriceParameterFormDataService }, { token: PriceParameterCostMatchService }, { token: CostItemRowsBuilder }, { token: PriceParameterPriceUpdateService }], target: i0.ɵɵFactoryTarget.Component });
3830
+ PriceParameterFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PriceParameterFormComponent, selector: "lib-price-parameter-form", ngImport: i0, template: "<abp-page>\r\n <abp-page-title-container class=\"col-auto\">\r\n <h1 class=\"content-header-title\">\r\n {{ title | abpLocalization }}\r\n <small style=\"font-size: 0.85rem; font-weight: 400\">\r\n <a href=\"javascript:void(0)\" (click)=\"goBack()\">\r\n <i class=\"fa fa-arrow-circle-left\"></i>\r\n {{ 'Keops::PriceParameters:BackToList' | abpLocalization }}</a\r\n >\r\n </small>\r\n </h1>\r\n </abp-page-title-container>\r\n\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"d-flex justify-content-end\">\r\n <div class=\"btn-group\" role=\"group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form?.invalid || saving || updatingPrices\"\r\n (click)=\"save()\"\r\n >\r\n <span *ngIf=\"saving\" class=\"spinner-border spinner-border-sm me-1\"></span>\r\n <i class=\"fa fa-save me-1\"></i>\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdown class=\"d-inline-block\" container=\"body\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-primary dropdown-toggle-split\"\r\n ngbDropdownToggle\r\n [disabled]=\"form?.invalid || saving || updatingPrices\"\r\n >\r\n <span class=\"visually-hidden\">{{ 'AbpUi::Actions' | abpLocalization }}</span>\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem (click)=\"saveAndUpdatePriceList()\">\r\n <span *ngIf=\"updatingPrices\" class=\"spinner-border spinner-border-sm me-1\"></span>\r\n <i class=\"fa fa-save me-1\"></i>\r\n {{ 'Keops::PriceParameters:SaveAndUpdatePriceList' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"card mb-3\">\r\n <div class=\"card-header d-flex justify-content-between align-items-center\">\r\n <small class=\"text-muted\" *ngIf=\"editMode\">\r\n {{ 'Keops::PriceParameters:DocNum' | abpLocalization }}: {{ current?.docNum ?? '-' }} \u00B7\r\n {{ 'Keops::PriceParameters:DocDate' | abpLocalization }}:\r\n {{ (current?.docDate | shortDate) ?? '-' }}\r\n </small>\r\n <small class=\"text-muted ms-auto\">\r\n {{ 'Keops::PriceParameters:SystemRates' | abpLocalization }}: USD\r\n {{ systemRateUsd | number }} \u00B7 EUR {{ systemRateEur | number }}\r\n </small>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-lg-6\">\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Type' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"typeCode\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let type of typeOptions\" [ngValue]=\"type.code\">\r\n {{ type.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Region' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"region\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let region of regionOptions\" [ngValue]=\"region.value\">\r\n {{ region.label | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Group' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"groupCode\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let group of groupOptions\" [ngValue]=\"group.code\">\r\n {{ group.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:ExchangeRates' | abpLocalization }}\r\n </label>\r\n <div class=\"col-4\">\r\n <div class=\"input-group\">\r\n <span class=\"input-group-text\">USD</span>\r\n <input type=\"number\" class=\"form-control\" formControlName=\"exchangeRateUsd\" />\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"input-group\">\r\n <span class=\"input-group-text\">EUR</span>\r\n <input type=\"number\" class=\"form-control\" formControlName=\"exchangeRateEur\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:StartDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <dx-date-box\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"fromDate\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:EndDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <dx-date-box\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"toDate\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:SalesPriceExcludingPackaging' | abpLocalization }}\r\n </label>\r\n <div class=\"col-4\">\r\n <div class=\"input-group\">\r\n <span class=\"input-group-text\">USD</span>\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"salesPriceExcludingPackagingUsd | number: '1.2-2'\"\r\n readonly\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"input-group\">\r\n <span class=\"input-group-text\">TRY</span>\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"salesPriceExcludingPackagingTry | number: '1.2-2'\"\r\n readonly\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-lg-6\">\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Status' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"status\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let opt of statusOptions\" [ngValue]=\"opt.value\">\r\n {{ opt.label | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:CustomerCode' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <dx-select-box\r\n [dataSource]=\"businessPartnersDataSource\"\r\n valueExpr=\"cardCode\"\r\n [displayExpr]=\"customerDisplayExpr\"\r\n [searchEnabled]=\"true\"\r\n [searchExpr]=\"['cardCode', 'cardName']\"\r\n searchMode=\"contains\"\r\n [searchTimeout]=\"200\"\r\n [minSearchLength]=\"0\"\r\n [showDataBeforeSearch]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"selectedCustomerCode\"\r\n [placeholder]=\"'Keops::SelectAnOption' | abpLocalization\"\r\n ></dx-select-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Gekap' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <lib-amount-currency-input\r\n formControlName=\"gekap\"\r\n [(currency)]=\"gekapCurrency\"\r\n [currencyOptions]=\"tryUsdCurrencyOptions\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:GeneralQuota' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <div class=\"input-group\">\r\n <input type=\"number\" class=\"form-control\" formControlName=\"generalQuota\" />\r\n <span class=\"input-group-text\">{{\r\n 'Keops::PriceParameters:Unit:Ton' | abpLocalization\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:PromotionalQuota' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <div class=\"input-group\">\r\n <input type=\"number\" class=\"form-control\" formControlName=\"promotionalQuota\" />\r\n <span class=\"input-group-text\">{{\r\n 'Keops::PriceParameters:Unit:Ton' | abpLocalization\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:RawOilPrice' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <lib-amount-currency-input\r\n formControlName=\"rawOilPrice\"\r\n [(currency)]=\"rawOilCurrency\"\r\n [currencyOptions]=\"tryUsdCurrencyOptions\"\r\n (currencyChange)=\"recalcSalesPriceExcludingPackaging()\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Description' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <textarea class=\"form-control\" rows=\"2\" formControlName=\"description\"></textarea>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav-tabs\" [destroyOnHide]=\"false\">\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:CostParameters' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-cost-items-tab [costItems]=\"costItems\" [itemsArray]=\"itemsArray\">\r\n </lib-price-parameter-cost-items-tab>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:PriceLists' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-price-lists-tab\r\n [businessRegion]=\"selectedRegion\"\r\n [ppTypeCode]=\"selectedTypeCode\"\r\n ></lib-price-parameter-price-lists-tab>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:Items' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-items-tab\r\n [businessRegion]=\"selectedRegion\"\r\n [cpGroupCode]=\"selectedGroupCode\"\r\n ></lib-price-parameter-items-tab>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:Discounts' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-discount-rates-tab [discountsArray]=\"discountsArray\">\r\n </lib-price-parameter-discount-rates-tab>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div [ngbNavOutlet]=\"nav\"></div>\r\n </div>\r\n </div>\r\n </form>\r\n</abp-page>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.PageTitleContainerComponent, selector: "abp-page-title-container" }, { kind: "component", type: i5.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "directive", type: i6.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i6.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i6.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i6.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "directive", type: i6.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i6.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i6.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i6.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "component", type: i6.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "component", type: i7.DxDateBoxComponent, selector: "dx-date-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "adaptivityEnabled", "applyButtonText", "applyValueMode", "buttons", "calendarOptions", "cancelButtonText", "dateOutOfRangeMessage", "dateSerializationFormat", "deferRendering", "disabled", "disabledDates", "displayFormat", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "interval", "invalidDateMessage", "isValid", "label", "labelMode", "max", "maxLength", "min", "name", "opened", "openOnFieldClick", "pickerType", "placeholder", "readOnly", "rtlEnabled", "showAnalogClock", "showClearButton", "showDropDownButton", "spellcheck", "stylingMode", "tabIndex", "text", "todayButtonText", "type", "useMaskBehavior", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "adaptivityEnabledChange", "applyButtonTextChange", "applyValueModeChange", "buttonsChange", "calendarOptionsChange", "cancelButtonTextChange", "dateOutOfRangeMessageChange", "dateSerializationFormatChange", "deferRenderingChange", "disabledChange", "disabledDatesChange", "displayFormatChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "intervalChange", "invalidDateMessageChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "maxLengthChange", "minChange", "nameChange", "openedChange", "openOnFieldClickChange", "pickerTypeChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showAnalogClockChange", "showClearButtonChange", "showDropDownButtonChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "todayButtonTextChange", "typeChange", "useMaskBehaviorChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i7.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "component", type: AmountCurrencyInputComponent, selector: "lib-amount-currency-input", inputs: ["currencyOptions", "currency", "disabled"], outputs: ["currencyChange"] }, { kind: "component", type: PriceParameterCostItemsTabComponent, selector: "lib-price-parameter-cost-items-tab", inputs: ["costItems", "itemsArray"] }, { kind: "component", type: PriceParameterPriceListsTabComponent, selector: "lib-price-parameter-price-lists-tab", inputs: ["businessRegion", "ppTypeCode"] }, { kind: "component", type: PriceParameterItemsTabComponent, selector: "lib-price-parameter-items-tab", inputs: ["businessRegion", "cpGroupCode"] }, { kind: "component", type: PriceParameterDiscountRatesTabComponent, selector: "lib-price-parameter-discount-rates-tab", inputs: ["discountsArray"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: i4.ShortDatePipe, name: "shortDate" }] });
3591
3831
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterFormComponent, decorators: [{
3592
3832
  type: Component,
3593
- args: [{ selector: 'lib-price-parameter-form', template: "<abp-page [title]=\"title | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0 d-flex gap-2\">\r\n <button type=\"button\" class=\"btn btn-outline-secondary\" (click)=\"goBack()\">\r\n <i class=\"fa fa-arrow-left me-1\"></i>\r\n {{ 'Keops::PriceParameters:BackToList' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-warning\" [disabled]=\"true\">\r\n {{ 'Keops::PriceParameters:UpdatePriceList' | abpLocalization }}\r\n </button>\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-success\"\r\n [loading]=\"saving\"\r\n [disabled]=\"form?.invalid\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"card mb-3\">\r\n <div class=\"card-header d-flex justify-content-between align-items-center\">\r\n <small class=\"text-muted\" *ngIf=\"editMode\">\r\n {{ 'Keops::PriceParameters:DocNum' | abpLocalization }}: {{ current?.docNum ?? '-' }} \u00B7\r\n {{ 'Keops::PriceParameters:DocDate' | abpLocalization }}:\r\n {{ (current?.docDate | shortDate) ?? '-' }}\r\n </small>\r\n <small class=\"text-muted ms-auto\">\r\n {{ 'Keops::PriceParameters:SystemRates' | abpLocalization }}: USD\r\n {{ systemRateUsd | number }} \u00B7 EUR {{ systemRateEur | number }}\r\n </small>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-lg-6\">\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Type' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"typeCode\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let type of typeOptions\" [ngValue]=\"type.code\">\r\n {{ type.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Region' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"regionCode\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let region of regionOptions\" [ngValue]=\"region.code\">\r\n {{ region.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Group' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"groupCode\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let group of groupOptions\" [ngValue]=\"group.code\">\r\n {{ group.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:ExchangeRate' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <lib-amount-currency-input\r\n formControlName=\"exchangeRate\"\r\n [(currency)]=\"rateCurrency\"\r\n (currencyChange)=\"onRateCurrencyChange()\"\r\n [currencyOptions]=\"rateCurrencyOptions\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:StartDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <dx-date-box\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"fromDate\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:EndDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <dx-date-box\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"toDate\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:SalesPriceExcludingPackaging' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <lib-amount-currency-input\r\n formControlName=\"salesPriceExcludingPackaging\"\r\n [(currency)]=\"salesPriceExcludingPackagingCurrency\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-lg-6\">\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Status' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"status\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let opt of statusOptions\" [ngValue]=\"opt.value\">\r\n {{ opt.label | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:CustomerCode' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <dx-select-box\r\n [dataSource]=\"businessPartnersDataSource\"\r\n valueExpr=\"cardCode\"\r\n [displayExpr]=\"customerDisplayExpr\"\r\n [searchEnabled]=\"true\"\r\n [searchExpr]=\"['cardCode', 'cardName']\"\r\n searchMode=\"contains\"\r\n [searchTimeout]=\"200\"\r\n [minSearchLength]=\"0\"\r\n [showDataBeforeSearch]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"selectedCustomerCode\"\r\n [placeholder]=\"'Keops::SelectAnOption' | abpLocalization\"\r\n ></dx-select-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Gekap' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <lib-amount-currency-input\r\n formControlName=\"gekap\"\r\n [(currency)]=\"gekapCurrency\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:GeneralQuota' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <div class=\"input-group\">\r\n <input type=\"number\" class=\"form-control\" formControlName=\"generalQuota\" />\r\n <span class=\"input-group-text\">{{ 'Keops::PriceParameters:Unit:Ton' | abpLocalization }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:PromotionalQuota' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <div class=\"input-group\">\r\n <input type=\"number\" class=\"form-control\" formControlName=\"promotionalQuota\" />\r\n <span class=\"input-group-text\">{{ 'Keops::PriceParameters:Unit:Ton' | abpLocalization }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:RawOilPrice' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <lib-amount-currency-input\r\n formControlName=\"rawOilPrice\"\r\n [(currency)]=\"rawOilCurrency\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Description' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <textarea class=\"form-control\" rows=\"2\" formControlName=\"description\"></textarea>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav-tabs\" [destroyOnHide]=\"false\">\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:CostParameters' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-cost-items-tab [costItems]=\"costItems\" [itemsArray]=\"itemsArray\">\r\n </lib-price-parameter-cost-items-tab>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:PriceLists' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-price-lists-tab\r\n [cpRegionCode]=\"selectedRegionCode\"\r\n [ppTypeCode]=\"selectedTypeCode\"\r\n ></lib-price-parameter-price-lists-tab>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:Items' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-items-tab\r\n [cpRegionCode]=\"selectedRegionCode\"\r\n [cpGroupCode]=\"selectedGroupCode\"\r\n ></lib-price-parameter-items-tab>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:Discounts' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-discount-rates-tab [discountsArray]=\"discountsArray\">\r\n </lib-price-parameter-discount-rates-tab>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div [ngbNavOutlet]=\"nav\"></div>\r\n </div>\r\n </div>\r\n </form>\r\n</abp-page>\r\n" }]
3594
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i1$2.ActivatedRoute }, { type: i1$2.Router }, { type: i2.ToasterService }, { type: i1$1.PriceParameterService }, { type: PriceParameterFormDataService }, { type: PriceParameterCostMatchService }, { type: CostItemRowsBuilder }]; } });
3833
+ args: [{ selector: 'lib-price-parameter-form', template: "<abp-page>\r\n <abp-page-title-container class=\"col-auto\">\r\n <h1 class=\"content-header-title\">\r\n {{ title | abpLocalization }}\r\n <small style=\"font-size: 0.85rem; font-weight: 400\">\r\n <a href=\"javascript:void(0)\" (click)=\"goBack()\">\r\n <i class=\"fa fa-arrow-circle-left\"></i>\r\n {{ 'Keops::PriceParameters:BackToList' | abpLocalization }}</a\r\n >\r\n </small>\r\n </h1>\r\n </abp-page-title-container>\r\n\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"d-flex justify-content-end\">\r\n <div class=\"btn-group\" role=\"group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form?.invalid || saving || updatingPrices\"\r\n (click)=\"save()\"\r\n >\r\n <span *ngIf=\"saving\" class=\"spinner-border spinner-border-sm me-1\"></span>\r\n <i class=\"fa fa-save me-1\"></i>\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdown class=\"d-inline-block\" container=\"body\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-primary dropdown-toggle-split\"\r\n ngbDropdownToggle\r\n [disabled]=\"form?.invalid || saving || updatingPrices\"\r\n >\r\n <span class=\"visually-hidden\">{{ 'AbpUi::Actions' | abpLocalization }}</span>\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem (click)=\"saveAndUpdatePriceList()\">\r\n <span *ngIf=\"updatingPrices\" class=\"spinner-border spinner-border-sm me-1\"></span>\r\n <i class=\"fa fa-save me-1\"></i>\r\n {{ 'Keops::PriceParameters:SaveAndUpdatePriceList' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"card mb-3\">\r\n <div class=\"card-header d-flex justify-content-between align-items-center\">\r\n <small class=\"text-muted\" *ngIf=\"editMode\">\r\n {{ 'Keops::PriceParameters:DocNum' | abpLocalization }}: {{ current?.docNum ?? '-' }} \u00B7\r\n {{ 'Keops::PriceParameters:DocDate' | abpLocalization }}:\r\n {{ (current?.docDate | shortDate) ?? '-' }}\r\n </small>\r\n <small class=\"text-muted ms-auto\">\r\n {{ 'Keops::PriceParameters:SystemRates' | abpLocalization }}: USD\r\n {{ systemRateUsd | number }} \u00B7 EUR {{ systemRateEur | number }}\r\n </small>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-lg-6\">\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Type' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"typeCode\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let type of typeOptions\" [ngValue]=\"type.code\">\r\n {{ type.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Region' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"region\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let region of regionOptions\" [ngValue]=\"region.value\">\r\n {{ region.label | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Group' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"groupCode\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let group of groupOptions\" [ngValue]=\"group.code\">\r\n {{ group.name }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:ExchangeRates' | abpLocalization }}\r\n </label>\r\n <div class=\"col-4\">\r\n <div class=\"input-group\">\r\n <span class=\"input-group-text\">USD</span>\r\n <input type=\"number\" class=\"form-control\" formControlName=\"exchangeRateUsd\" />\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"input-group\">\r\n <span class=\"input-group-text\">EUR</span>\r\n <input type=\"number\" class=\"form-control\" formControlName=\"exchangeRateEur\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:StartDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <dx-date-box\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"fromDate\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:EndDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <dx-date-box\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"toDate\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:SalesPriceExcludingPackaging' | abpLocalization }}\r\n </label>\r\n <div class=\"col-4\">\r\n <div class=\"input-group\">\r\n <span class=\"input-group-text\">USD</span>\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"salesPriceExcludingPackagingUsd | number: '1.2-2'\"\r\n readonly\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"input-group\">\r\n <span class=\"input-group-text\">TRY</span>\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n [value]=\"salesPriceExcludingPackagingTry | number: '1.2-2'\"\r\n readonly\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-lg-6\">\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Status' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"col-8\">\r\n <select class=\"form-select\" formControlName=\"status\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let opt of statusOptions\" [ngValue]=\"opt.value\">\r\n {{ opt.label | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:CustomerCode' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <dx-select-box\r\n [dataSource]=\"businessPartnersDataSource\"\r\n valueExpr=\"cardCode\"\r\n [displayExpr]=\"customerDisplayExpr\"\r\n [searchEnabled]=\"true\"\r\n [searchExpr]=\"['cardCode', 'cardName']\"\r\n searchMode=\"contains\"\r\n [searchTimeout]=\"200\"\r\n [minSearchLength]=\"0\"\r\n [showDataBeforeSearch]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"selectedCustomerCode\"\r\n [placeholder]=\"'Keops::SelectAnOption' | abpLocalization\"\r\n ></dx-select-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Gekap' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <lib-amount-currency-input\r\n formControlName=\"gekap\"\r\n [(currency)]=\"gekapCurrency\"\r\n [currencyOptions]=\"tryUsdCurrencyOptions\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:GeneralQuota' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <div class=\"input-group\">\r\n <input type=\"number\" class=\"form-control\" formControlName=\"generalQuota\" />\r\n <span class=\"input-group-text\">{{\r\n 'Keops::PriceParameters:Unit:Ton' | abpLocalization\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:PromotionalQuota' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <div class=\"input-group\">\r\n <input type=\"number\" class=\"form-control\" formControlName=\"promotionalQuota\" />\r\n <span class=\"input-group-text\">{{\r\n 'Keops::PriceParameters:Unit:Ton' | abpLocalization\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:RawOilPrice' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <lib-amount-currency-input\r\n formControlName=\"rawOilPrice\"\r\n [(currency)]=\"rawOilCurrency\"\r\n [currencyOptions]=\"tryUsdCurrencyOptions\"\r\n (currencyChange)=\"recalcSalesPriceExcludingPackaging()\"\r\n ></lib-amount-currency-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row align-items-center mb-3\">\r\n <label class=\"col-4 col-form-label\">\r\n {{ 'Keops::PriceParameters:Description' | abpLocalization }}\r\n </label>\r\n <div class=\"col-8\">\r\n <textarea class=\"form-control\" rows=\"2\" formControlName=\"description\"></textarea>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ul ngbNav #nav=\"ngbNav\" class=\"nav-tabs\" [destroyOnHide]=\"false\">\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:CostParameters' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-cost-items-tab [costItems]=\"costItems\" [itemsArray]=\"itemsArray\">\r\n </lib-price-parameter-cost-items-tab>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:PriceLists' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-price-lists-tab\r\n [businessRegion]=\"selectedRegion\"\r\n [ppTypeCode]=\"selectedTypeCode\"\r\n ></lib-price-parameter-price-lists-tab>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:Items' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-items-tab\r\n [businessRegion]=\"selectedRegion\"\r\n [cpGroupCode]=\"selectedGroupCode\"\r\n ></lib-price-parameter-items-tab>\r\n </ng-template>\r\n </li>\r\n\r\n <li ngbNavItem>\r\n <a ngbNavLink>{{ 'Keops::PriceParameters:Tab:Discounts' | abpLocalization }}</a>\r\n <ng-template ngbNavContent>\r\n <lib-price-parameter-discount-rates-tab [discountsArray]=\"discountsArray\">\r\n </lib-price-parameter-discount-rates-tab>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n\r\n <div [ngbNavOutlet]=\"nav\"></div>\r\n </div>\r\n </div>\r\n </form>\r\n</abp-page>\r\n" }]
3834
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i1$2.ActivatedRoute }, { type: i1$2.Router }, { type: i2.ToasterService }, { type: i1$1.PriceParameterService }, { type: PriceParameterFormDataService }, { type: PriceParameterCostMatchService }, { type: CostItemRowsBuilder }, { type: PriceParameterPriceUpdateService }]; } });
3595
3835
 
3596
- const routes$j = [
3836
+ const routes$k = [
3597
3837
  {
3598
3838
  path: '',
3599
3839
  component: PriceParametersComponent,
@@ -3623,11 +3863,11 @@ class HitPriceParametersRoutingModule {
3623
3863
  }
3624
3864
  HitPriceParametersRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParametersRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3625
3865
  HitPriceParametersRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParametersRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
3626
- HitPriceParametersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParametersRoutingModule, imports: [RouterModule.forChild(routes$j), RouterModule] });
3866
+ HitPriceParametersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParametersRoutingModule, imports: [RouterModule.forChild(routes$k), RouterModule] });
3627
3867
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParametersRoutingModule, decorators: [{
3628
3868
  type: NgModule,
3629
3869
  args: [{
3630
- imports: [RouterModule.forChild(routes$j)],
3870
+ imports: [RouterModule.forChild(routes$k)],
3631
3871
  exports: [RouterModule],
3632
3872
  }]
3633
3873
  }] });
@@ -3641,7 +3881,8 @@ HitPriceParametersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0"
3641
3881
  PriceParameterPriceListsTabComponent,
3642
3882
  PriceParameterItemsTabComponent,
3643
3883
  PriceParameterDiscountRatesTabComponent,
3644
- PriceParameterDiscountRatesModalComponent], imports: [CommonModule,
3884
+ PriceParameterDiscountRatesModalComponent,
3885
+ PriceParameterPriceUpdatePreviewModalComponent], imports: [CommonModule,
3645
3886
  FormsModule,
3646
3887
  ReactiveFormsModule,
3647
3888
  CoreModule,
@@ -3682,6 +3923,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
3682
3923
  PriceParameterItemsTabComponent,
3683
3924
  PriceParameterDiscountRatesTabComponent,
3684
3925
  PriceParameterDiscountRatesModalComponent,
3926
+ PriceParameterPriceUpdatePreviewModalComponent,
3685
3927
  ],
3686
3928
  imports: [
3687
3929
  CommonModule,
@@ -3809,7 +4051,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
3809
4051
  args: [{ selector: 'lib-sap-sales-persons', template: "<abp-page [title]=\"'Keops::SalesPersons:Title' | abpLocalization\">\r\n <div id=\"SapSalesPersonsWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"salesEmployeeCode\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"20\"></dxo-paging>\r\n\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsSystem.SalesPersons.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"salesEmployeeName\"\r\n caption=\"{{ 'Keops::SalesPersons:SalesEmployeeName' | abpLocalization }}\"\r\n ></dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"abpUserId\"\r\n caption=\"{{ 'Keops::SalesPersons:AbpUser' | abpLocalization }}\"\r\n >\r\n <dxo-lookup [dataSource]=\"abpUsers\" valueExpr=\"id\" [displayExpr]=\"getUserName\"></dxo-lookup>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"remarks\"\r\n caption=\"{{ 'Keops::SalesPersons:Remarks' | abpLocalization }}\"\r\n ></dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"isActive\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n cellTemplate=\"isActiveTpl\"\r\n caption=\"{{ 'Keops::SalesPersons:IsActive' | abpLocalization }}\"\r\n width=\"100\"\r\n alignment=\"center\"\r\n >\r\n <div *dxTemplate=\"let row of 'isActiveTpl'\">\r\n <i [class]=\"row.data.isActive ? 'fa fa-check text-success' : 'fa fa-times text-danger'\"></i>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-sap-sales-person-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [current]=\"selected\"\r\n [abpUsers]=\"abpUsers\"\r\n (saved)=\"onSaved()\"\r\n></lib-sap-sales-person-form>\r\n" }]
3810
4052
  }], ctorParameters: function () { return [{ type: i1$1.SapSalesPersonService }, { type: i2$1.IdentityUserService }, { type: i2.ToasterService }]; } });
3811
4053
 
3812
- const routes$i = [
4054
+ const routes$j = [
3813
4055
  {
3814
4056
  path: '',
3815
4057
  component: SapSalesPersonsComponent,
@@ -3823,11 +4065,11 @@ class HitSapSalesPersonsRoutingModule {
3823
4065
  }
3824
4066
  HitSapSalesPersonsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitSapSalesPersonsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3825
4067
  HitSapSalesPersonsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitSapSalesPersonsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
3826
- HitSapSalesPersonsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitSapSalesPersonsRoutingModule, imports: [RouterModule.forChild(routes$i), RouterModule] });
4068
+ HitSapSalesPersonsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitSapSalesPersonsRoutingModule, imports: [RouterModule.forChild(routes$j), RouterModule] });
3827
4069
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitSapSalesPersonsRoutingModule, decorators: [{
3828
4070
  type: NgModule,
3829
4071
  args: [{
3830
- imports: [RouterModule.forChild(routes$i)],
4072
+ imports: [RouterModule.forChild(routes$j)],
3831
4073
  exports: [RouterModule],
3832
4074
  }]
3833
4075
  }] });
@@ -4009,7 +4251,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4009
4251
  args: [{ selector: 'lib-container-definitions', template: "<abp-page [title]=\"'Keops::ContainerDefinitions:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"ContainerDefinitionsToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ContainerDefinitions.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::ContainerDefinitions:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"ContainerDefinitionsWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ContainerDefinitions.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ContainerDefinitions.Delete'\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"name\"\r\n caption=\"{{ 'Keops::ContainerDefinitions:Name' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"innerVolumeM3\"\r\n dataType=\"number\"\r\n caption=\"{{ 'Keops::ContainerDefinitions:InnerVolumeM3' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"netLoadKg\"\r\n dataType=\"number\"\r\n caption=\"{{ 'Keops::ContainerDefinitions:NetLoadKg' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"grossLoadKg\"\r\n dataType=\"number\"\r\n caption=\"{{ 'Keops::ContainerDefinitions:GrossLoadKg' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"isActive\"\r\n dataType=\"boolean\"\r\n width=\"110\"\r\n alignment=\"center\"\r\n cellTemplate=\"isActiveTpl\"\r\n caption=\"{{ 'Keops::ContainerDefinitions:IsActive' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'isActiveTpl'\">\r\n <i\r\n class=\"fa\"\r\n [class.fa-check]=\"row.data.isActive\"\r\n [class.text-success]=\"row.data.isActive\"\r\n [class.fa-times]=\"!row.data.isActive\"\r\n [class.text-danger]=\"!row.data.isActive\"\r\n ></i>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-container-definition-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n (saved)=\"onSaved()\"\r\n></lib-container-definition-form>\r\n" }]
4010
4252
  }], ctorParameters: function () { return [{ type: i1$1.ContainerDefinitionService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
4011
4253
 
4012
- const routes$h = [
4254
+ const routes$i = [
4013
4255
  {
4014
4256
  path: '',
4015
4257
  component: ContainerDefinitionsComponent,
@@ -4023,11 +4265,11 @@ class HitContainerDefinitionsRoutingModule {
4023
4265
  }
4024
4266
  HitContainerDefinitionsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerDefinitionsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4025
4267
  HitContainerDefinitionsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitContainerDefinitionsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
4026
- HitContainerDefinitionsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerDefinitionsRoutingModule, imports: [RouterModule.forChild(routes$h), RouterModule] });
4268
+ HitContainerDefinitionsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerDefinitionsRoutingModule, imports: [RouterModule.forChild(routes$i), RouterModule] });
4027
4269
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerDefinitionsRoutingModule, decorators: [{
4028
4270
  type: NgModule,
4029
4271
  args: [{
4030
- imports: [RouterModule.forChild(routes$h)],
4272
+ imports: [RouterModule.forChild(routes$i)],
4031
4273
  exports: [RouterModule],
4032
4274
  }]
4033
4275
  }] });
@@ -4205,7 +4447,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4205
4447
  args: [{ selector: 'lib-pallet-definitions', template: "<abp-page [title]=\"'Keops::PalletDefinitions:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"PalletDefinitionsToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.PalletDefinitions.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::PalletDefinitions:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"PalletDefinitionsWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.PalletDefinitions.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.PalletDefinitions.Delete'\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"name\"\r\n caption=\"{{ 'Keops::PalletDefinitions:Name' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"dimensionCm\"\r\n caption=\"{{ 'Keops::PalletDefinitions:DimensionCm' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"weightKg\"\r\n dataType=\"number\"\r\n caption=\"{{ 'Keops::PalletDefinitions:WeightKg' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"isActive\"\r\n dataType=\"boolean\"\r\n width=\"110\"\r\n alignment=\"center\"\r\n cellTemplate=\"isActiveTpl\"\r\n caption=\"{{ 'Keops::PalletDefinitions:IsActive' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'isActiveTpl'\">\r\n <i\r\n class=\"fa\"\r\n [class.fa-check]=\"row.data.isActive\"\r\n [class.text-success]=\"row.data.isActive\"\r\n [class.fa-times]=\"!row.data.isActive\"\r\n [class.text-danger]=\"!row.data.isActive\"\r\n ></i>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-pallet-definition-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n (saved)=\"onSaved()\"\r\n></lib-pallet-definition-form>\r\n" }]
4206
4448
  }], ctorParameters: function () { return [{ type: i1$1.PalletDefinitionService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
4207
4449
 
4208
- const routes$g = [
4450
+ const routes$h = [
4209
4451
  {
4210
4452
  path: '',
4211
4453
  component: PalletDefinitionsComponent,
@@ -4219,11 +4461,11 @@ class HitPalletDefinitionsRoutingModule {
4219
4461
  }
4220
4462
  HitPalletDefinitionsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPalletDefinitionsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4221
4463
  HitPalletDefinitionsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPalletDefinitionsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
4222
- HitPalletDefinitionsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPalletDefinitionsRoutingModule, imports: [RouterModule.forChild(routes$g), RouterModule] });
4464
+ HitPalletDefinitionsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPalletDefinitionsRoutingModule, imports: [RouterModule.forChild(routes$h), RouterModule] });
4223
4465
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPalletDefinitionsRoutingModule, decorators: [{
4224
4466
  type: NgModule,
4225
4467
  args: [{
4226
- imports: [RouterModule.forChild(routes$g)],
4468
+ imports: [RouterModule.forChild(routes$h)],
4227
4469
  exports: [RouterModule],
4228
4470
  }]
4229
4471
  }] });
@@ -4437,7 +4679,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4437
4679
  args: [{ selector: 'lib-container-pallet-capacities', template: "<abp-page [title]=\"'Keops::ContainerPalletCapacities:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"ContainerPalletCapacitiesToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ContainerPalletCapacities.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::ContainerPalletCapacities:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"ContainerPalletCapacitiesWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ContainerPalletCapacities.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ContainerPalletCapacities.Delete'\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"containerCode\"\r\n cellTemplate=\"containerTpl\"\r\n caption=\"{{ 'Keops::ContainerPalletCapacities:Container' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'containerTpl'\">\r\n <span>{{ getContainerName(row.data.containerCode) }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"palletCode\"\r\n cellTemplate=\"palletTpl\"\r\n caption=\"{{ 'Keops::ContainerPalletCapacities:Pallet' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'palletTpl'\">\r\n <span>{{ getPalletName(row.data.palletCode) }}</span>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"palletCount\"\r\n dataType=\"number\"\r\n caption=\"{{ 'Keops::ContainerPalletCapacities:PalletCount' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"maxPalletCountMixed\"\r\n dataType=\"number\"\r\n caption=\"{{ 'Keops::ContainerPalletCapacities:MaxPalletCountMixed' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"isActive\"\r\n dataType=\"boolean\"\r\n width=\"110\"\r\n alignment=\"center\"\r\n cellTemplate=\"isActiveTpl\"\r\n caption=\"{{ 'Keops::ContainerPalletCapacities:IsActive' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'isActiveTpl'\">\r\n <i\r\n class=\"fa\"\r\n [class.fa-check]=\"row.data.isActive\"\r\n [class.text-success]=\"row.data.isActive\"\r\n [class.fa-times]=\"!row.data.isActive\"\r\n [class.text-danger]=\"!row.data.isActive\"\r\n ></i>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-container-pallet-capacity-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n [containerOptions]=\"containerOptions\"\r\n [palletOptions]=\"palletOptions\"\r\n (saved)=\"onSaved()\"\r\n></lib-container-pallet-capacity-form>\r\n" }]
4438
4680
  }], ctorParameters: function () { return [{ type: i1$1.ContainerPalletCapacityService }, { type: i1$1.ContainerDefinitionService }, { type: i1$1.PalletDefinitionService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
4439
4681
 
4440
- const routes$f = [
4682
+ const routes$g = [
4441
4683
  {
4442
4684
  path: '',
4443
4685
  component: ContainerPalletCapacitiesComponent,
@@ -4451,11 +4693,11 @@ class HitContainerPalletCapacitiesRoutingModule {
4451
4693
  }
4452
4694
  HitContainerPalletCapacitiesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerPalletCapacitiesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4453
4695
  HitContainerPalletCapacitiesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitContainerPalletCapacitiesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
4454
- HitContainerPalletCapacitiesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerPalletCapacitiesRoutingModule, imports: [RouterModule.forChild(routes$f), RouterModule] });
4696
+ HitContainerPalletCapacitiesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerPalletCapacitiesRoutingModule, imports: [RouterModule.forChild(routes$g), RouterModule] });
4455
4697
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerPalletCapacitiesRoutingModule, decorators: [{
4456
4698
  type: NgModule,
4457
4699
  args: [{
4458
- imports: [RouterModule.forChild(routes$f)],
4700
+ imports: [RouterModule.forChild(routes$g)],
4459
4701
  exports: [RouterModule],
4460
4702
  }]
4461
4703
  }] });
@@ -4597,7 +4839,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4597
4839
  args: [{ selector: 'lib-container-loading-counts', template: "<abp-page [title]=\"'Keops::ContainerLoadingCounts:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"ContainerLoadingCountsToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <abp-button\r\n *abpPermission=\"'KeopsItemMasterData.ContainerLoadingCounts.Update'\"\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary\"\r\n [loading]=\"saving\"\r\n [disabled]=\"loading || !hasColumns || productTypes.length === 0\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"ContainerLoadingCountsWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && productTypes.length === 0\" class=\"alert alert-warning mb-0\">\r\n {{ 'Keops::ContainerLoadingCounts:NoProductTypes' | abpLocalization }}\r\n </div>\r\n\r\n <div *ngIf=\"!loading && productTypes.length > 0 && !hasColumns\" class=\"alert alert-warning mb-0\">\r\n {{ 'Keops::ContainerLoadingCounts:NoColumns' | abpLocalization }}\r\n </div>\r\n\r\n <div class=\"table-responsive\" *ngIf=\"!loading && productTypes.length > 0 && hasColumns\">\r\n <table class=\"table table-bordered table-sm align-middle\">\r\n <thead>\r\n <tr>\r\n <th rowspan=\"2\" class=\"align-middle\">\r\n {{ 'Keops::ContainerLoadingCounts:ProductType' | abpLocalization }}\r\n </th>\r\n <th *ngIf=\"containers.length\" [attr.colspan]=\"containers.length\" class=\"text-center\">\r\n {{ 'Keops::ContainerLoadingCounts:Containers' | abpLocalization }}\r\n </th>\r\n <th *ngIf=\"pallets.length\" [attr.colspan]=\"pallets.length\" class=\"text-center\">\r\n {{ 'Keops::ContainerLoadingCounts:Pallets' | abpLocalization }}\r\n </th>\r\n </tr>\r\n <tr>\r\n <th *ngFor=\"let c of containers\" class=\"text-center\">{{ c.name }}</th>\r\n <th *ngFor=\"let p of pallets\" class=\"text-center\">{{ p.name }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let pt of productTypes\">\r\n <td>{{ pt.name }}</td>\r\n <td *ngFor=\"let c of containers\">\r\n <input\r\n type=\"number\"\r\n min=\"0\"\r\n class=\"form-control form-control-sm\"\r\n [formControl]=\"cell(pt.code, 'c', c.code)\"\r\n />\r\n </td>\r\n <td *ngFor=\"let p of pallets\">\r\n <input\r\n type=\"number\"\r\n min=\"0\"\r\n class=\"form-control form-control-sm\"\r\n [formControl]=\"cell(pt.code, 'p', p.code)\"\r\n />\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n" }]
4598
4840
  }], ctorParameters: function () { return [{ type: i1$1.ContainerLoadingCountService }, { type: i1$1.ContainerDefinitionService }, { type: i1$1.PalletDefinitionService }, { type: i2.ToasterService }]; } });
4599
4841
 
4600
- const routes$e = [
4842
+ const routes$f = [
4601
4843
  {
4602
4844
  path: '',
4603
4845
  component: ContainerLoadingCountsComponent,
@@ -4611,11 +4853,11 @@ class HitContainerLoadingCountsRoutingModule {
4611
4853
  }
4612
4854
  HitContainerLoadingCountsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingCountsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4613
4855
  HitContainerLoadingCountsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingCountsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
4614
- HitContainerLoadingCountsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingCountsRoutingModule, imports: [RouterModule.forChild(routes$e), RouterModule] });
4856
+ HitContainerLoadingCountsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingCountsRoutingModule, imports: [RouterModule.forChild(routes$f), RouterModule] });
4615
4857
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingCountsRoutingModule, decorators: [{
4616
4858
  type: NgModule,
4617
4859
  args: [{
4618
- imports: [RouterModule.forChild(routes$e)],
4860
+ imports: [RouterModule.forChild(routes$f)],
4619
4861
  exports: [RouterModule],
4620
4862
  }]
4621
4863
  }] });
@@ -4763,7 +5005,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4763
5005
  args: [{ selector: 'lib-container-loading-scenarios', template: "<abp-page [title]=\"'Keops::ContainerLoadingScenarios:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"ContainerLoadingScenariosToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <abp-button\r\n *abpPermission=\"'KeopsItemMasterData.ContainerLoadingScenarios.Update'\"\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary\"\r\n [loading]=\"saving\"\r\n [disabled]=\"loading || !hasRows\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"ContainerLoadingScenariosWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !hasRows\" class=\"alert alert-warning mb-0\">\r\n {{ 'Keops::ContainerLoadingScenarios:NoColumns' | abpLocalization }}\r\n </div>\r\n\r\n <div class=\"table-responsive\" *ngIf=\"!loading && hasRows\">\r\n <table class=\"table table-bordered table-sm align-middle\">\r\n <thead>\r\n <tr>\r\n <th>{{ 'Keops::ContainerLoadingScenarios:PalletStatus' | abpLocalization }}</th>\r\n <th>{{ 'Keops::ContainerLoadingScenarios:MixedStatus' | abpLocalization }}</th>\r\n <th>{{ 'Keops::ContainerLoadingScenarios:Container' | abpLocalization }}</th>\r\n <th>{{ 'Keops::ContainerLoadingScenarios:Pallet' | abpLocalization }}</th>\r\n <th class=\"text-center\">{{ 'Keops::ContainerLoadingScenarios:MaxPalletCount' | abpLocalization }}</th>\r\n <th class=\"text-center\">{{ 'Keops::ContainerLoadingScenarios:NetWeight' | abpLocalization }}</th>\r\n <th class=\"text-center\">{{ 'Keops::ContainerLoadingScenarios:GrossWeight' | abpLocalization }}</th>\r\n <th class=\"text-center\">{{ 'Keops::ContainerLoadingScenarios:Tolerance' | abpLocalization }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of rows\" [formGroup]=\"row.group\">\r\n <td>{{ palletStatusLabel(row.palletStatus) | abpLocalization }}</td>\r\n <td>{{ row.mixedType.name }}</td>\r\n <td>{{ row.container.name }}</td>\r\n <td>{{ row.pallet.name }}</td>\r\n <td>\r\n <input type=\"number\" min=\"0\" class=\"form-control form-control-sm\" formControlName=\"maxPalletCount\" />\r\n </td>\r\n <td>\r\n <input type=\"number\" min=\"0\" step=\"any\" class=\"form-control form-control-sm\" formControlName=\"netWeightKg\" />\r\n </td>\r\n <td>\r\n <input type=\"number\" min=\"0\" step=\"any\" class=\"form-control form-control-sm\" formControlName=\"grossWeightKg\" />\r\n </td>\r\n <td>\r\n <input type=\"number\" min=\"0\" step=\"any\" class=\"form-control form-control-sm\" formControlName=\"toleranceKg\" />\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n" }]
4764
5006
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i1$1.ContainerLoadingScenarioService }, { type: i1$1.ContainerDefinitionService }, { type: i1$1.PalletDefinitionService }, { type: i1$1.ContainerMixTypeService }, { type: i2.ToasterService }]; } });
4765
5007
 
4766
- const routes$d = [
5008
+ const routes$e = [
4767
5009
  {
4768
5010
  path: '',
4769
5011
  component: ContainerLoadingScenariosComponent,
@@ -4777,11 +5019,11 @@ class HitContainerLoadingScenariosRoutingModule {
4777
5019
  }
4778
5020
  HitContainerLoadingScenariosRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingScenariosRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4779
5021
  HitContainerLoadingScenariosRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingScenariosRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
4780
- HitContainerLoadingScenariosRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingScenariosRoutingModule, imports: [RouterModule.forChild(routes$d), RouterModule] });
5022
+ HitContainerLoadingScenariosRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingScenariosRoutingModule, imports: [RouterModule.forChild(routes$e), RouterModule] });
4781
5023
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingScenariosRoutingModule, decorators: [{
4782
5024
  type: NgModule,
4783
5025
  args: [{
4784
- imports: [RouterModule.forChild(routes$d)],
5026
+ imports: [RouterModule.forChild(routes$e)],
4785
5027
  exports: [RouterModule],
4786
5028
  }]
4787
5029
  }] });
@@ -4951,7 +5193,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4951
5193
  args: [{ selector: 'lib-container-mix-types', template: "<abp-page [title]=\"'Keops::ContainerMixTypes:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"ContainerMixTypesToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ContainerMixTypes.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::ContainerMixTypes:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"ContainerMixTypesWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ContainerMixTypes.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ContainerMixTypes.Delete'\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"displayOrder\"\r\n dataType=\"number\"\r\n width=\"120\"\r\n caption=\"{{ 'Keops::ContainerMixTypes:DisplayOrder' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"name\"\r\n caption=\"{{ 'Keops::ContainerMixTypes:Name' | abpLocalization }}\"\r\n ></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-container-mix-type-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n (saved)=\"onSaved()\"\r\n></lib-container-mix-type-form>\r\n" }]
4952
5194
  }], ctorParameters: function () { return [{ type: i1$1.ContainerMixTypeService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
4953
5195
 
4954
- const routes$c = [
5196
+ const routes$d = [
4955
5197
  {
4956
5198
  path: '',
4957
5199
  component: ContainerMixTypesComponent,
@@ -4965,11 +5207,11 @@ class HitContainerMixTypesRoutingModule {
4965
5207
  }
4966
5208
  HitContainerMixTypesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerMixTypesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4967
5209
  HitContainerMixTypesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitContainerMixTypesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
4968
- HitContainerMixTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerMixTypesRoutingModule, imports: [RouterModule.forChild(routes$c), RouterModule] });
5210
+ HitContainerMixTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerMixTypesRoutingModule, imports: [RouterModule.forChild(routes$d), RouterModule] });
4969
5211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerMixTypesRoutingModule, decorators: [{
4970
5212
  type: NgModule,
4971
5213
  args: [{
4972
- imports: [RouterModule.forChild(routes$c)],
5214
+ imports: [RouterModule.forChild(routes$d)],
4973
5215
  exports: [RouterModule],
4974
5216
  }]
4975
5217
  }] });
@@ -5390,7 +5632,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5390
5632
  type: Output
5391
5633
  }] } });
5392
5634
 
5393
- const routes$b = [
5635
+ const routes$c = [
5394
5636
  {
5395
5637
  path: '',
5396
5638
  component: FreightOffersComponent,
@@ -5404,11 +5646,11 @@ class HitFreightOffersRoutingModule {
5404
5646
  }
5405
5647
  HitFreightOffersRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFreightOffersRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5406
5648
  HitFreightOffersRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitFreightOffersRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
5407
- HitFreightOffersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFreightOffersRoutingModule, imports: [RouterModule.forChild(routes$b), RouterModule] });
5649
+ HitFreightOffersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFreightOffersRoutingModule, imports: [RouterModule.forChild(routes$c), RouterModule] });
5408
5650
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFreightOffersRoutingModule, decorators: [{
5409
5651
  type: NgModule,
5410
5652
  args: [{
5411
- imports: [RouterModule.forChild(routes$b)],
5653
+ imports: [RouterModule.forChild(routes$c)],
5412
5654
  exports: [RouterModule],
5413
5655
  }]
5414
5656
  }] });
@@ -5587,7 +5829,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5587
5829
  args: [{ selector: 'lib-bl-tracking', template: "<abp-page [title]=\"'Keops::BlTracking:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"BlTrackingToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsFreight.BlTracking.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::BlTracking:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"BlTrackingWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n width=\"100%\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [width]=\"200\" [visible]=\"true\" [placeholder]=\"'AbpUi::Search' | abpLocalization\"></dxo-search-panel>\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[10, 20, 50]\" [showPageSizeSelector]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n\r\n <dxi-column [fixed]=\"true\" [allowFiltering]=\"false\" [allowHeaderFiltering]=\"false\" [allowReordering]=\"false\" [allowHiding]=\"false\" [allowGrouping]=\"false\" [allowSorting]=\"false\" cellTemplate=\"optTpl\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\" width=\"120\">\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>{{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button *abpPermission=\"'KeopsFreight.BlTracking.Update'\" ngbDropdownItem (click)=\"openEdit(row.data)\">{{ 'AbpUi::Edit' | abpLocalization }}</button>\r\n <button *abpPermission=\"'KeopsFreight.BlTracking.Delete'\" ngbDropdownItem (click)=\"remove(row.data)\">{{ 'AbpUi::Delete' | abpLocalization }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"blNo1\" caption=\"{{ 'Keops::BlTracking:BlNo1' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"blNo2\" caption=\"{{ 'Keops::BlTracking:BlNo2' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"blNo3\" caption=\"{{ 'Keops::BlTracking:BlNo3' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"blNo4\" caption=\"{{ 'Keops::BlTracking:BlNo4' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"isActive\" dataType=\"boolean\" caption=\"{{ 'Keops::BlTracking:IsActive' | abpLocalization }}\" width=\"100\"></dxi-column>\r\n <dxi-column dataField=\"note\" caption=\"{{ 'Keops::BlTracking:Note' | abpLocalization }}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-bl-tracking-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n (saved)=\"onSaved()\"\r\n></lib-bl-tracking-form>\r\n" }]
5588
5830
  }], ctorParameters: function () { return [{ type: i1$1.BlTrackingService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
5589
5831
 
5590
- const routes$a = [
5832
+ const routes$b = [
5591
5833
  {
5592
5834
  path: '',
5593
5835
  component: BlTrackingComponent,
@@ -5601,11 +5843,11 @@ class HitBlTrackingRoutingModule {
5601
5843
  }
5602
5844
  HitBlTrackingRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBlTrackingRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5603
5845
  HitBlTrackingRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitBlTrackingRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
5604
- HitBlTrackingRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBlTrackingRoutingModule, imports: [RouterModule.forChild(routes$a), RouterModule] });
5846
+ HitBlTrackingRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBlTrackingRoutingModule, imports: [RouterModule.forChild(routes$b), RouterModule] });
5605
5847
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBlTrackingRoutingModule, decorators: [{
5606
5848
  type: NgModule,
5607
5849
  args: [{
5608
- imports: [RouterModule.forChild(routes$a)],
5850
+ imports: [RouterModule.forChild(routes$b)],
5609
5851
  exports: [RouterModule],
5610
5852
  }]
5611
5853
  }] });
@@ -5779,7 +6021,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5779
6021
  args: [{ selector: 'lib-fob-inland-definitions', template: "<abp-page [title]=\"'Keops::FobInlandDefinitions:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"FobInlandDefinitionsToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsFreight.FobInlandDefinitions.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::FobInlandDefinitions:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"FobInlandDefinitionsWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n width=\"100%\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [width]=\"200\" [visible]=\"true\" [placeholder]=\"'AbpUi::Search' | abpLocalization\"></dxo-search-panel>\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[10, 20, 50]\" [showPageSizeSelector]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n\r\n <dxi-column [fixed]=\"true\" [allowFiltering]=\"false\" [allowHeaderFiltering]=\"false\" [allowReordering]=\"false\" [allowHiding]=\"false\" [allowGrouping]=\"false\" [allowSorting]=\"false\" cellTemplate=\"optTpl\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\" width=\"120\">\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>{{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button *abpPermission=\"'KeopsFreight.FobInlandDefinitions.Update'\" ngbDropdownItem (click)=\"openEdit(row.data)\">{{ 'AbpUi::Edit' | abpLocalization }}</button>\r\n <button *abpPermission=\"'KeopsFreight.FobInlandDefinitions.Delete'\" ngbDropdownItem (click)=\"remove(row.data)\">{{ 'AbpUi::Delete' | abpLocalization }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"fobTotalUsd\" dataType=\"number\" format=\"currency\" caption=\"{{ 'Keops::FobInlandDefinitions:FobTotalUsd' | abpLocalization }}\" alignment=\"right\"></dxi-column>\r\n <dxi-column dataField=\"inlandMersinTry\" dataType=\"number\" format=\"#,##0.00\" caption=\"{{ 'Keops::FobInlandDefinitions:InlandMersinTry' | abpLocalization }}\" alignment=\"right\"></dxi-column>\r\n <dxi-column dataField=\"inlandIskenderunTry\" dataType=\"number\" format=\"#,##0.00\" caption=\"{{ 'Keops::FobInlandDefinitions:InlandIskenderunTry' | abpLocalization }}\" alignment=\"right\"></dxi-column>\r\n <dxi-column dataField=\"parametricDivisorKg\" dataType=\"number\" caption=\"{{ 'Keops::FobInlandDefinitions:ParametricDivisorKg' | abpLocalization }}\" alignment=\"right\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-fob-inland-definition-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n (saved)=\"onSaved()\"\r\n></lib-fob-inland-definition-form>\r\n" }]
5780
6022
  }], ctorParameters: function () { return [{ type: i1$1.FobInlandDefinitionService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
5781
6023
 
5782
- const routes$9 = [
6024
+ const routes$a = [
5783
6025
  {
5784
6026
  path: '',
5785
6027
  component: FobInlandDefinitionsComponent,
@@ -5793,11 +6035,11 @@ class HitFobInlandDefinitionsRoutingModule {
5793
6035
  }
5794
6036
  HitFobInlandDefinitionsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFobInlandDefinitionsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5795
6037
  HitFobInlandDefinitionsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitFobInlandDefinitionsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
5796
- HitFobInlandDefinitionsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFobInlandDefinitionsRoutingModule, imports: [RouterModule.forChild(routes$9), RouterModule] });
6038
+ HitFobInlandDefinitionsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFobInlandDefinitionsRoutingModule, imports: [RouterModule.forChild(routes$a), RouterModule] });
5797
6039
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFobInlandDefinitionsRoutingModule, decorators: [{
5798
6040
  type: NgModule,
5799
6041
  args: [{
5800
- imports: [RouterModule.forChild(routes$9)],
6042
+ imports: [RouterModule.forChild(routes$a)],
5801
6043
  exports: [RouterModule],
5802
6044
  }]
5803
6045
  }] });
@@ -5972,7 +6214,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5972
6214
  args: [{ selector: 'lib-incoterms', template: "<abp-page [title]=\"'Keops::Incoterms:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"IncotermsToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsFreight.Incoterms.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::Incoterms:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"IncotermsWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n width=\"100%\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [width]=\"200\" [visible]=\"true\" [placeholder]=\"'AbpUi::Search' | abpLocalization\"></dxo-search-panel>\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[10, 20, 50]\" [showPageSizeSelector]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n\r\n <dxi-column [fixed]=\"true\" [allowFiltering]=\"false\" [allowHeaderFiltering]=\"false\" [allowReordering]=\"false\" [allowHiding]=\"false\" [allowGrouping]=\"false\" [allowSorting]=\"false\" cellTemplate=\"optTpl\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\" width=\"120\">\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>{{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button *abpPermission=\"'KeopsFreight.Incoterms.Update'\" ngbDropdownItem (click)=\"openEdit(row.data)\">{{ 'AbpUi::Edit' | abpLocalization }}</button>\r\n <button *abpPermission=\"'KeopsFreight.Incoterms.Delete'\" ngbDropdownItem (click)=\"remove(row.data)\">{{ 'AbpUi::Delete' | abpLocalization }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Keops::Incoterms:Code' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"requiresFreight\" dataType=\"boolean\" caption=\"{{ 'Keops::Incoterms:RequiresFreight' | abpLocalization }}\" width=\"150\" alignment=\"center\"></dxi-column>\r\n <dxi-column dataField=\"includesInsurance\" dataType=\"boolean\" caption=\"{{ 'Keops::Incoterms:IncludesInsurance' | abpLocalization }}\" width=\"150\" alignment=\"center\"></dxi-column>\r\n <dxi-column dataField=\"includesPackaging\" dataType=\"boolean\" caption=\"{{ 'Keops::Incoterms:IncludesPackaging' | abpLocalization }}\" width=\"150\" alignment=\"center\"></dxi-column>\r\n <dxi-column dataField=\"isActive\" dataType=\"boolean\" caption=\"{{ 'Keops::Incoterms:IsActive' | abpLocalization }}\" width=\"90\" alignment=\"center\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-incoterm-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n (saved)=\"onSaved()\"\r\n></lib-incoterm-form>\r\n" }]
5973
6215
  }], ctorParameters: function () { return [{ type: i1$1.IncotermService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
5974
6216
 
5975
- const routes$8 = [
6217
+ const routes$9 = [
5976
6218
  {
5977
6219
  path: '',
5978
6220
  component: IncotermsComponent,
@@ -5986,11 +6228,11 @@ class HitIncotermsRoutingModule {
5986
6228
  }
5987
6229
  HitIncotermsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIncotermsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5988
6230
  HitIncotermsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitIncotermsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
5989
- HitIncotermsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIncotermsRoutingModule, imports: [RouterModule.forChild(routes$8), RouterModule] });
6231
+ HitIncotermsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIncotermsRoutingModule, imports: [RouterModule.forChild(routes$9), RouterModule] });
5990
6232
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIncotermsRoutingModule, decorators: [{
5991
6233
  type: NgModule,
5992
6234
  args: [{
5993
- imports: [RouterModule.forChild(routes$8)],
6235
+ imports: [RouterModule.forChild(routes$9)],
5994
6236
  exports: [RouterModule],
5995
6237
  }]
5996
6238
  }] });
@@ -6163,7 +6405,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6163
6405
  args: [{ selector: 'lib-carriers', template: "<abp-page [title]=\"'Keops::Carriers:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"CarriersToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsFreight.Carriers.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::Carriers:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"CarriersWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n width=\"100%\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [width]=\"200\" [visible]=\"true\" [placeholder]=\"'AbpUi::Search' | abpLocalization\"></dxo-search-panel>\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[10, 20, 50]\" [showPageSizeSelector]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n\r\n <dxi-column [fixed]=\"true\" [allowFiltering]=\"false\" [allowHeaderFiltering]=\"false\" [allowReordering]=\"false\" [allowHiding]=\"false\" [allowGrouping]=\"false\" [allowSorting]=\"false\" cellTemplate=\"optTpl\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\" width=\"120\">\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>{{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button *abpPermission=\"'KeopsFreight.Carriers.Update'\" ngbDropdownItem (click)=\"openEdit(row.data)\">{{ 'AbpUi::Edit' | abpLocalization }}</button>\r\n <button *abpPermission=\"'KeopsFreight.Carriers.Delete'\" ngbDropdownItem (click)=\"remove(row.data)\">{{ 'AbpUi::Delete' | abpLocalization }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Keops::Carriers:Name' | abpLocalization }}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-carrier-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n (saved)=\"onSaved()\"\r\n></lib-carrier-form>\r\n" }]
6164
6406
  }], ctorParameters: function () { return [{ type: i1$1.CarrierService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
6165
6407
 
6166
- const routes$7 = [
6408
+ const routes$8 = [
6167
6409
  {
6168
6410
  path: '',
6169
6411
  component: CarriersComponent,
@@ -6177,11 +6419,11 @@ class HitCarriersRoutingModule {
6177
6419
  }
6178
6420
  HitCarriersRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCarriersRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6179
6421
  HitCarriersRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitCarriersRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
6180
- HitCarriersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCarriersRoutingModule, imports: [RouterModule.forChild(routes$7), RouterModule] });
6422
+ HitCarriersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCarriersRoutingModule, imports: [RouterModule.forChild(routes$8), RouterModule] });
6181
6423
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCarriersRoutingModule, decorators: [{
6182
6424
  type: NgModule,
6183
6425
  args: [{
6184
- imports: [RouterModule.forChild(routes$7)],
6426
+ imports: [RouterModule.forChild(routes$8)],
6185
6427
  exports: [RouterModule],
6186
6428
  }]
6187
6429
  }] });
@@ -6354,7 +6596,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6354
6596
  args: [{ selector: 'lib-lines', template: "<abp-page [title]=\"'Keops::Lines:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"LinesToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsFreight.Lines.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::Lines:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"LinesWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n width=\"100%\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [width]=\"200\" [visible]=\"true\" [placeholder]=\"'AbpUi::Search' | abpLocalization\"></dxo-search-panel>\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[10, 20, 50]\" [showPageSizeSelector]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n\r\n <dxi-column [fixed]=\"true\" [allowFiltering]=\"false\" [allowHeaderFiltering]=\"false\" [allowReordering]=\"false\" [allowHiding]=\"false\" [allowGrouping]=\"false\" [allowSorting]=\"false\" cellTemplate=\"optTpl\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\" width=\"120\">\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>{{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button *abpPermission=\"'KeopsFreight.Lines.Update'\" ngbDropdownItem (click)=\"openEdit(row.data)\">{{ 'AbpUi::Edit' | abpLocalization }}</button>\r\n <button *abpPermission=\"'KeopsFreight.Lines.Delete'\" ngbDropdownItem (click)=\"remove(row.data)\">{{ 'AbpUi::Delete' | abpLocalization }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Keops::Lines:Name' | abpLocalization }}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-line-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n (saved)=\"onSaved()\"\r\n></lib-line-form>\r\n" }]
6355
6597
  }], ctorParameters: function () { return [{ type: i1$1.LineService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
6356
6598
 
6357
- const routes$6 = [
6599
+ const routes$7 = [
6358
6600
  {
6359
6601
  path: '',
6360
6602
  component: LinesComponent,
@@ -6368,11 +6610,11 @@ class HitLinesRoutingModule {
6368
6610
  }
6369
6611
  HitLinesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitLinesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6370
6612
  HitLinesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitLinesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
6371
- HitLinesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitLinesRoutingModule, imports: [RouterModule.forChild(routes$6), RouterModule] });
6613
+ HitLinesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitLinesRoutingModule, imports: [RouterModule.forChild(routes$7), RouterModule] });
6372
6614
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitLinesRoutingModule, decorators: [{
6373
6615
  type: NgModule,
6374
6616
  args: [{
6375
- imports: [RouterModule.forChild(routes$6)],
6617
+ imports: [RouterModule.forChild(routes$7)],
6376
6618
  exports: [RouterModule],
6377
6619
  }]
6378
6620
  }] });
@@ -6543,7 +6785,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6543
6785
  args: [{ selector: 'lib-pos', template: "<abp-page [title]=\"'Keops::Pos:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"PosToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsFreight.Pos.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::Pos:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"PosWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n width=\"100%\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [width]=\"200\" [visible]=\"true\" [placeholder]=\"'AbpUi::Search' | abpLocalization\"></dxo-search-panel>\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[10, 20, 50]\" [showPageSizeSelector]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n\r\n <dxi-column [fixed]=\"true\" [allowFiltering]=\"false\" [allowHeaderFiltering]=\"false\" [allowReordering]=\"false\" [allowHiding]=\"false\" [allowGrouping]=\"false\" [allowSorting]=\"false\" cellTemplate=\"optTpl\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\" width=\"120\">\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>{{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button *abpPermission=\"'KeopsFreight.Pos.Update'\" ngbDropdownItem (click)=\"openEdit(row.data)\">{{ 'AbpUi::Edit' | abpLocalization }}</button>\r\n <button *abpPermission=\"'KeopsFreight.Pos.Delete'\" ngbDropdownItem (click)=\"remove(row.data)\">{{ 'AbpUi::Delete' | abpLocalization }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"name\" caption=\"{{ 'Keops::Pos:Name' | abpLocalization }}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-pos-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n (saved)=\"onSaved()\"\r\n></lib-pos-form>\r\n" }]
6544
6786
  }], ctorParameters: function () { return [{ type: i1$1.PosService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
6545
6787
 
6546
- const routes$5 = [
6788
+ const routes$6 = [
6547
6789
  {
6548
6790
  path: '',
6549
6791
  component: PosComponent,
@@ -6557,11 +6799,11 @@ class HitPosRoutingModule {
6557
6799
  }
6558
6800
  HitPosRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPosRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6559
6801
  HitPosRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPosRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
6560
- HitPosRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPosRoutingModule, imports: [RouterModule.forChild(routes$5), RouterModule] });
6802
+ HitPosRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPosRoutingModule, imports: [RouterModule.forChild(routes$6), RouterModule] });
6561
6803
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPosRoutingModule, decorators: [{
6562
6804
  type: NgModule,
6563
6805
  args: [{
6564
- imports: [RouterModule.forChild(routes$5)],
6806
+ imports: [RouterModule.forChild(routes$6)],
6565
6807
  exports: [RouterModule],
6566
6808
  }]
6567
6809
  }] });
@@ -6749,7 +6991,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6749
6991
  args: [{ selector: 'lib-destination-ports', template: "<abp-page [title]=\"'Keops::DestinationPorts:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"DestinationPortsToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsFreight.DestinationPorts.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::DestinationPorts:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"DestinationPortsWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n width=\"100%\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [width]=\"200\" [visible]=\"true\" [placeholder]=\"'AbpUi::Search' | abpLocalization\"></dxo-search-panel>\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[10, 20, 50]\" [showPageSizeSelector]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n\r\n <dxi-column [fixed]=\"true\" [allowFiltering]=\"false\" [allowHeaderFiltering]=\"false\" [allowReordering]=\"false\" [allowHiding]=\"false\" [allowGrouping]=\"false\" [allowSorting]=\"false\" cellTemplate=\"optTpl\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\" width=\"120\">\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>{{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button *abpPermission=\"'KeopsFreight.DestinationPorts.Update'\" ngbDropdownItem (click)=\"openEdit(row.data)\">{{ 'AbpUi::Edit' | abpLocalization }}</button>\r\n <button *abpPermission=\"'KeopsFreight.DestinationPorts.Delete'\" ngbDropdownItem (click)=\"remove(row.data)\">{{ 'AbpUi::Delete' | abpLocalization }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"countryName\" caption=\"{{ 'Keops::DestinationPorts:CountryCode' | abpLocalization }}\" width=\"200\"></dxi-column>\r\n <dxi-column dataField=\"portName\" caption=\"{{ 'Keops::DestinationPorts:PortName' | abpLocalization }}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-destination-port-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n [countries]=\"countries\"\r\n (saved)=\"onSaved()\"\r\n></lib-destination-port-form>\r\n" }]
6750
6992
  }], ctorParameters: function () { return [{ type: i1$1.DestinationPortService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
6751
6993
 
6752
- const routes$4 = [
6994
+ const routes$5 = [
6753
6995
  {
6754
6996
  path: '',
6755
6997
  component: DestinationPortsComponent,
@@ -6763,11 +7005,11 @@ class HitDestinationPortsRoutingModule {
6763
7005
  }
6764
7006
  HitDestinationPortsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDestinationPortsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6765
7007
  HitDestinationPortsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitDestinationPortsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
6766
- HitDestinationPortsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDestinationPortsRoutingModule, imports: [RouterModule.forChild(routes$4), RouterModule] });
7008
+ HitDestinationPortsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDestinationPortsRoutingModule, imports: [RouterModule.forChild(routes$5), RouterModule] });
6767
7009
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDestinationPortsRoutingModule, decorators: [{
6768
7010
  type: NgModule,
6769
7011
  args: [{
6770
- imports: [RouterModule.forChild(routes$4)],
7012
+ imports: [RouterModule.forChild(routes$5)],
6771
7013
  exports: [RouterModule],
6772
7014
  }]
6773
7015
  }] });
@@ -6943,7 +7185,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6943
7185
  args: [{ selector: 'lib-item-package-types', template: "<abp-page [title]=\"'Keops::ItemPackageTypes:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"ItemPackageTypesToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ItemPackageTypes.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::ItemPackageTypes:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"ItemPackageTypesWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ItemPackageTypes.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ItemPackageTypes.Delete'\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"name\"\r\n caption=\"{{ 'Keops::ItemPackageTypes:Name' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"isActive\"\r\n dataType=\"boolean\"\r\n width=\"110\"\r\n alignment=\"center\"\r\n cellTemplate=\"isActiveTpl\"\r\n caption=\"{{ 'Keops::ItemPackageTypes:IsActive' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'isActiveTpl'\">\r\n <i\r\n class=\"fa\"\r\n [class.fa-check]=\"row.data.isActive\"\r\n [class.text-success]=\"row.data.isActive\"\r\n [class.fa-times]=\"!row.data.isActive\"\r\n [class.text-danger]=\"!row.data.isActive\"\r\n ></i>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-item-package-type-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n (saved)=\"onSaved()\"\r\n></lib-item-package-type-form>\r\n" }]
6944
7186
  }], ctorParameters: function () { return [{ type: i1$1.ItemPackageTypeService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
6945
7187
 
6946
- const routes$3 = [
7188
+ const routes$4 = [
6947
7189
  {
6948
7190
  path: '',
6949
7191
  component: ItemPackageTypesComponent,
@@ -6957,11 +7199,11 @@ class HitItemPackageTypesRoutingModule {
6957
7199
  }
6958
7200
  HitItemPackageTypesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageTypesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6959
7201
  HitItemPackageTypesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageTypesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
6960
- HitItemPackageTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageTypesRoutingModule, imports: [RouterModule.forChild(routes$3), RouterModule] });
7202
+ HitItemPackageTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageTypesRoutingModule, imports: [RouterModule.forChild(routes$4), RouterModule] });
6961
7203
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageTypesRoutingModule, decorators: [{
6962
7204
  type: NgModule,
6963
7205
  args: [{
6964
- imports: [RouterModule.forChild(routes$3)],
7206
+ imports: [RouterModule.forChild(routes$4)],
6965
7207
  exports: [RouterModule],
6966
7208
  }]
6967
7209
  }] });
@@ -7137,7 +7379,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
7137
7379
  args: [{ selector: 'lib-item-package-groups', template: "<abp-page [title]=\"'Keops::ItemPackageGroups:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"ItemPackageGroupsToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ItemPackageGroups.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::ItemPackageGroups:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"ItemPackageGroupsWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ItemPackageGroups.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ItemPackageGroups.Delete'\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"name\"\r\n caption=\"{{ 'Keops::ItemPackageGroups:Name' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"isActive\"\r\n dataType=\"boolean\"\r\n width=\"110\"\r\n alignment=\"center\"\r\n cellTemplate=\"isActiveTpl\"\r\n caption=\"{{ 'Keops::ItemPackageGroups:IsActive' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'isActiveTpl'\">\r\n <i\r\n class=\"fa\"\r\n [class.fa-check]=\"row.data.isActive\"\r\n [class.text-success]=\"row.data.isActive\"\r\n [class.fa-times]=\"!row.data.isActive\"\r\n [class.text-danger]=\"!row.data.isActive\"\r\n ></i>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-item-package-group-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n (saved)=\"onSaved()\"\r\n></lib-item-package-group-form>\r\n" }]
7138
7380
  }], ctorParameters: function () { return [{ type: i1$1.ItemPackageGroupService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
7139
7381
 
7140
- const routes$2 = [
7382
+ const routes$3 = [
7141
7383
  {
7142
7384
  path: '',
7143
7385
  component: ItemPackageGroupsComponent,
@@ -7151,11 +7393,11 @@ class HitItemPackageGroupsRoutingModule {
7151
7393
  }
7152
7394
  HitItemPackageGroupsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageGroupsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7153
7395
  HitItemPackageGroupsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageGroupsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
7154
- HitItemPackageGroupsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageGroupsRoutingModule, imports: [RouterModule.forChild(routes$2), RouterModule] });
7396
+ HitItemPackageGroupsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageGroupsRoutingModule, imports: [RouterModule.forChild(routes$3), RouterModule] });
7155
7397
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageGroupsRoutingModule, decorators: [{
7156
7398
  type: NgModule,
7157
7399
  args: [{
7158
- imports: [RouterModule.forChild(routes$2)],
7400
+ imports: [RouterModule.forChild(routes$3)],
7159
7401
  exports: [RouterModule],
7160
7402
  }]
7161
7403
  }] });
@@ -7331,7 +7573,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
7331
7573
  args: [{ selector: 'lib-item-product-types', template: "<abp-page [title]=\"'Keops::ItemProductTypes:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"ItemProductTypesToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ItemProductTypes.Create'\"\r\n id=\"create\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n (click)=\"openCreate()\"\r\n >\r\n <i class=\"fa fa-plus me-1\"></i>\r\n <span>{{ 'Keops::ItemProductTypes:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"ItemProductTypesWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"items\"\r\n keyExpr=\"code\"\r\n columnResizingMode=\"widget\"\r\n >\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column\r\n [fixed]=\"true\"\r\n [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\"\r\n [allowReordering]=\"false\"\r\n [allowHiding]=\"false\"\r\n [allowGrouping]=\"false\"\r\n [allowSorting]=\"false\"\r\n cellTemplate=\"optTpl\"\r\n caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\"\r\n width=\"120\"\r\n >\r\n <div *dxTemplate=\"let row of 'optTpl'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"fa fa-cog me-1\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ItemProductTypes.Update'\"\r\n ngbDropdownItem\r\n (click)=\"openEdit(row.data)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ItemProductTypes.Delete'\"\r\n ngbDropdownItem\r\n (click)=\"remove(row.data)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"name\"\r\n caption=\"{{ 'Keops::ItemProductTypes:Name' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"isActive\"\r\n dataType=\"boolean\"\r\n width=\"110\"\r\n alignment=\"center\"\r\n cellTemplate=\"isActiveTpl\"\r\n caption=\"{{ 'Keops::ItemProductTypes:IsActive' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'isActiveTpl'\">\r\n <i\r\n class=\"fa\"\r\n [class.fa-check]=\"row.data.isActive\"\r\n [class.text-success]=\"row.data.isActive\"\r\n [class.fa-times]=\"!row.data.isActive\"\r\n [class.text-danger]=\"!row.data.isActive\"\r\n ></i>\r\n </div>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-item-product-type-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n (saved)=\"onSaved()\"\r\n></lib-item-product-type-form>\r\n" }]
7332
7574
  }], ctorParameters: function () { return [{ type: i1$1.ItemProductTypeService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
7333
7575
 
7334
- const routes$1 = [
7576
+ const routes$2 = [
7335
7577
  {
7336
7578
  path: '',
7337
7579
  component: ItemProductTypesComponent,
@@ -7345,11 +7587,11 @@ class HitItemProductTypesRoutingModule {
7345
7587
  }
7346
7588
  HitItemProductTypesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemProductTypesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7347
7589
  HitItemProductTypesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitItemProductTypesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
7348
- HitItemProductTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemProductTypesRoutingModule, imports: [RouterModule.forChild(routes$1), RouterModule] });
7590
+ HitItemProductTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemProductTypesRoutingModule, imports: [RouterModule.forChild(routes$2), RouterModule] });
7349
7591
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemProductTypesRoutingModule, decorators: [{
7350
7592
  type: NgModule,
7351
7593
  args: [{
7352
- imports: [RouterModule.forChild(routes$1)],
7594
+ imports: [RouterModule.forChild(routes$2)],
7353
7595
  exports: [RouterModule],
7354
7596
  }]
7355
7597
  }] });
@@ -7399,6 +7641,263 @@ function loadHitItemProductTypesModuleAsChild() {
7399
7641
  return Promise.resolve(HitItemProductTypesModule);
7400
7642
  }
7401
7643
 
7644
+ class ItemClassificationsComponent {
7645
+ constructor(service, itemPackageTypeService, itemPackageGroupService, itemProductTypeService, toaster, localization) {
7646
+ this.service = service;
7647
+ this.itemPackageTypeService = itemPackageTypeService;
7648
+ this.itemPackageGroupService = itemPackageGroupService;
7649
+ this.itemProductTypeService = itemProductTypeService;
7650
+ this.toaster = toaster;
7651
+ this.localization = localization;
7652
+ this.kinds = [
7653
+ { labelKey: 'Keops::ItemClassifications:Kind:PackagingMaterials', prefix: '04' },
7654
+ { labelKey: 'Keops::ItemClassifications:Kind:TradeGoods', prefix: '05' },
7655
+ ];
7656
+ this.selectedPrefix = '';
7657
+ this.loading = false;
7658
+ this.saving = false;
7659
+ this.saveProgress = { processed: 0, total: 0 };
7660
+ this.rows = [];
7661
+ this.packageTypes = [];
7662
+ this.packageGroups = [];
7663
+ this.productTypes = [];
7664
+ this.regions = [];
7665
+ this.costGroups = [];
7666
+ this.packagingMaterials = [];
7667
+ this.changes = [];
7668
+ this.selectedKeys = [];
7669
+ // Toplu doldur panel değerleri
7670
+ this.bulkPaketTuru = null;
7671
+ this.bulkPaketGrubu = null;
7672
+ this.bulkUrunTipi = null;
7673
+ this.bulkRegion = null;
7674
+ this.bulkCostGroup = null;
7675
+ this.bulkPckMat = null;
7676
+ this.regions = BUSINESS_REGION_OPTIONS.map(option => ({
7677
+ value: option.value,
7678
+ name: this.localization.instant(option.label),
7679
+ }));
7680
+ }
7681
+ ngOnDestroy() {
7682
+ this.saveSub?.unsubscribe();
7683
+ }
7684
+ get hasKind() {
7685
+ return !!this.selectedPrefix;
7686
+ }
7687
+ onKindChange() {
7688
+ this.rows = [];
7689
+ if (this.selectedPrefix) {
7690
+ this.load();
7691
+ }
7692
+ else {
7693
+ this.resetState();
7694
+ }
7695
+ }
7696
+ load(selectAfter = []) {
7697
+ this.loading = true;
7698
+ forkJoin({
7699
+ rows: this.service.getList(this.selectedPrefix),
7700
+ packageTypes: this.itemPackageTypeService.getList(),
7701
+ packageGroups: this.itemPackageGroupService.getList(),
7702
+ productTypes: this.itemProductTypeService.getList(),
7703
+ costCategories: this.service.getCostCategories(),
7704
+ packagingMaterials: this.service.getPackagingMaterials(),
7705
+ })
7706
+ .pipe(finalize(() => (this.loading = false)))
7707
+ .subscribe(({ rows, packageTypes, packageGroups, productTypes, costCategories, packagingMaterials }) => {
7708
+ this.rows = rows;
7709
+ this.packageTypes = packageTypes.filter(x => x.isActive);
7710
+ this.packageGroups = packageGroups.filter(x => x.isActive);
7711
+ this.productTypes = productTypes.filter(x => x.isActive);
7712
+ this.costGroups = costCategories;
7713
+ this.packagingMaterials = packagingMaterials;
7714
+ this.resetState();
7715
+ this.selectedKeys = selectAfter;
7716
+ });
7717
+ }
7718
+ resetState() {
7719
+ this.changes = [];
7720
+ this.selectedKeys = [];
7721
+ this.bulkPaketTuru = null;
7722
+ this.bulkPaketGrubu = null;
7723
+ this.bulkUrunTipi = null;
7724
+ this.bulkRegion = null;
7725
+ this.bulkCostGroup = null;
7726
+ this.bulkPckMat = null;
7727
+ }
7728
+ /** Grid'in yerleşik batch "kaydet/geri al" (disk/revert) düğmelerini gizler. */
7729
+ onToolbarPreparing(e) {
7730
+ const items = e?.toolbarOptions?.items;
7731
+ if (Array.isArray(items)) {
7732
+ e.toolbarOptions.items = items.filter((i) => i.name !== 'saveButton' && i.name !== 'revertButton');
7733
+ }
7734
+ }
7735
+ applyBulk() {
7736
+ if (!this.selectedKeys.length) {
7737
+ return;
7738
+ }
7739
+ if (this.bulkPaketTuru) {
7740
+ this.applyValueToSelected('paketTuruCode', this.bulkPaketTuru);
7741
+ }
7742
+ if (this.bulkPaketGrubu) {
7743
+ this.applyValueToSelected('paketGrubuCode', this.bulkPaketGrubu);
7744
+ }
7745
+ if (this.bulkUrunTipi) {
7746
+ this.applyValueToSelected('urunTipiCode', this.bulkUrunTipi);
7747
+ }
7748
+ if (this.bulkRegion) {
7749
+ this.applyValueToSelected('region', this.bulkRegion);
7750
+ }
7751
+ if (this.bulkCostGroup) {
7752
+ this.applyValueToSelected('costGroupCode', this.bulkCostGroup);
7753
+ }
7754
+ if (this.bulkPckMat) {
7755
+ this.applyValueToSelected('pckMatCode', this.bulkPckMat);
7756
+ }
7757
+ }
7758
+ /** Seçili satırların ilgili kolonuna değeri batch-change olarak yazar (sayfadan bağımsız, key bazlı). */
7759
+ applyValueToSelected(field, value) {
7760
+ const next = this.changes.map(c => ({ ...c, data: { ...c.data } }));
7761
+ for (const key of this.selectedKeys) {
7762
+ let change = next.find(c => c.type === 'update' && c.key === key);
7763
+ if (!change) {
7764
+ change = { type: 'update', key, data: {} };
7765
+ next.push(change);
7766
+ }
7767
+ change.data[field] = value;
7768
+ }
7769
+ this.changes = next;
7770
+ }
7771
+ save() {
7772
+ const updates = this.changes.filter(c => c.type === 'update');
7773
+ if (updates.length === 0 || this.saving) {
7774
+ return;
7775
+ }
7776
+ const byKey = new Map(this.rows.map(r => [r.itemCode, r]));
7777
+ const input = updates.map(change => {
7778
+ const merged = { ...(byKey.get(change.key) ?? {}), ...change.data };
7779
+ return {
7780
+ itemCode: change.key,
7781
+ paketTuruCode: merged.paketTuruCode ?? '',
7782
+ paketGrubuCode: merged.paketGrubuCode ?? '',
7783
+ urunTipiCode: merged.urunTipiCode ?? '',
7784
+ region: merged.region,
7785
+ costGroupCode: merged.costGroupCode ?? '',
7786
+ pckMatCode: merged.pckMatCode ?? '',
7787
+ };
7788
+ });
7789
+ this.saving = true;
7790
+ this.saveProgress = { processed: 0, total: input.length };
7791
+ this.service.startSave(input).subscribe({
7792
+ next: jobId => this.pollStatus(jobId),
7793
+ error: () => (this.saving = false),
7794
+ });
7795
+ }
7796
+ pollStatus(jobId) {
7797
+ this.saveSub?.unsubscribe();
7798
+ this.saveSub = timer(0, 1500)
7799
+ .pipe(switchMap(() => this.service.getSaveStatus(jobId)), takeWhile(status => !status.completed, true))
7800
+ .subscribe({
7801
+ next: status => {
7802
+ this.saveProgress = { processed: status.processed, total: status.total };
7803
+ if (status.completed) {
7804
+ this.onSaveCompleted(status);
7805
+ }
7806
+ },
7807
+ error: () => (this.saving = false),
7808
+ });
7809
+ }
7810
+ onSaveCompleted(status) {
7811
+ this.saving = false;
7812
+ const failed = status.failed ?? [];
7813
+ if (failed.length === 0) {
7814
+ this.toaster.success(this.localization.instant('Keops::ItemClassifications:SaveDoneAll', `${status.succeeded}`));
7815
+ }
7816
+ else {
7817
+ this.toaster.warn(this.localization.instant('Keops::ItemClassifications:SavePartial', `${status.succeeded}`, `${failed.length}`));
7818
+ }
7819
+ const failedKeys = failed.map(f => f.itemCode).filter(Boolean);
7820
+ this.load(failedKeys);
7821
+ }
7822
+ }
7823
+ ItemClassificationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ItemClassificationsComponent, deps: [{ token: i1$1.ItemClassificationService }, { token: i1$1.ItemPackageTypeService }, { token: i1$1.ItemPackageGroupService }, { token: i1$1.ItemProductTypeService }, { token: i2.ToasterService }, { token: i4.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
7824
+ ItemClassificationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ItemClassificationsComponent, selector: "lib-item-classifications", ngImport: i0, template: "<abp-page [title]=\"'Keops::ItemClassifications:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end align-items-center mx-0\" id=\"ItemClassificationsToolbar\">\r\n <div *ngIf=\"saving\" class=\"col-auto pt-0 pt-md-2 text-muted\">\r\n <span class=\"spinner-border spinner-border-sm me-1\"></span>\r\n {{ 'Keops::ItemClassifications:Saving' | abpLocalization }}\r\n {{ saveProgress.processed }}/{{ saveProgress.total }}\r\n </div>\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ItemClassifications.Update'\"\r\n id=\"save\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"!changes.length || saving\"\r\n (click)=\"save()\"\r\n >\r\n <i class=\"fa fa-check me-1\"></i>\r\n <span>{{ 'Keops::ItemClassifications:Save' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"ItemClassificationsWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"row mb-3\">\r\n <div class=\"col-12 col-md-4\">\r\n <label for=\"kind\" class=\"form-label\">\r\n {{ 'Keops::ItemClassifications:Kind' | abpLocalization }}\r\n </label>\r\n <select\r\n id=\"kind\"\r\n class=\"form-select\"\r\n [(ngModel)]=\"selectedPrefix\"\r\n (ngModelChange)=\"onKindChange()\"\r\n >\r\n <option value=\"\">--</option>\r\n <option *ngFor=\"let kind of kinds\" [value]=\"kind.prefix\">\r\n {{ kind.labelKey | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!hasKind\" class=\"text-muted\">\r\n {{ 'Keops::ItemClassifications:SelectKind' | abpLocalization }}\r\n </div>\r\n\r\n <!-- Toplu doldur paneli -->\r\n <div *ngIf=\"hasKind\" class=\"border rounded p-2 mb-3 bg-light\">\r\n <div class=\"row g-2 align-items-end\">\r\n <div class=\"col-12 col-md-auto\">\r\n <span class=\"badge bg-secondary\">\r\n {{ 'Keops::ItemClassifications:Selected' | abpLocalization }}: {{ selectedKeys.length }}\r\n </span>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:PackageType' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"packageTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkPaketTuru\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:PackageGroup' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"packageGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkPaketGrubu\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:ProductType' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"productTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkUrunTipi\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:Region' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"regions\"\r\n valueExpr=\"value\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkRegion\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:CostGroup' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"costGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkCostGroup\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:PackagingMaterial' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"packagingMaterials\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkPckMat\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-12 col-md-auto d-flex gap-2\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline-primary\"\r\n [disabled]=\"!selectedKeys.length\"\r\n (click)=\"applyBulk()\"\r\n >\r\n <i class=\"fa fa-arrow-down me-1\"></i>\r\n {{ 'Keops::ItemClassifications:ApplyToSelected' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <dx-data-grid\r\n *ngIf=\"hasKind\"\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"rows\"\r\n keyExpr=\"itemCode\"\r\n columnResizingMode=\"widget\"\r\n [(selectedRowKeys)]=\"selectedKeys\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n >\r\n <dxo-selection mode=\"multiple\" showCheckBoxesMode=\"always\" [allowSelectAll]=\"true\"></dxo-selection>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"20\"></dxo-paging>\r\n <dxo-editing\r\n mode=\"batch\"\r\n [allowUpdating]=\"true\"\r\n [allowAdding]=\"false\"\r\n [allowDeleting]=\"false\"\r\n [useIcons]=\"true\"\r\n [(changes)]=\"changes\"\r\n ></dxo-editing>\r\n\r\n <dxi-column\r\n dataField=\"itemCode\"\r\n [allowEditing]=\"false\"\r\n width=\"140\"\r\n caption=\"{{ 'Keops::ItemClassifications:ItemCode' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"itemName\"\r\n [allowEditing]=\"false\"\r\n caption=\"{{ 'Keops::ItemClassifications:ItemName' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"groupCode\"\r\n dataType=\"number\"\r\n [allowEditing]=\"false\"\r\n width=\"110\"\r\n caption=\"{{ 'Keops::ItemClassifications:GroupCode' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"groupName\"\r\n [allowEditing]=\"false\"\r\n caption=\"{{ 'Keops::ItemClassifications:GroupName' | abpLocalization }}\"\r\n ></dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"paketTuruCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:PackageType' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"packageTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"paketGrubuCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:PackageGroup' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"packageGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"urunTipiCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:ProductType' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"productTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"region\"\r\n caption=\"{{ 'Keops::ItemClassifications:Region' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"regions\"\r\n valueExpr=\"value\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"costGroupCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:CostGroup' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"costGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"pckMatCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:PackagingMaterial' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"packagingMaterials\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i7.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i8.DxoLookupComponent, selector: "dxo-lookup", inputs: ["allowClearing", "calculateCellValue", "dataSource", "displayExpr", "valueExpr"] }, { kind: "component", type: i8.DxoEditingComponent, selector: "dxo-editing", inputs: ["allowAdding", "allowDeleting", "allowUpdating", "changes", "confirmDelete", "editColumnName", "editRowKey", "form", "mode", "newRowPosition", "popup", "refreshMode", "selectTextOnEditStart", "startEditAction", "texts", "useIcons", "allowAddShape", "allowChangeConnection", "allowChangeConnectorPoints", "allowChangeConnectorText", "allowChangeShapeText", "allowDeleteConnector", "allowDeleteShape", "allowMoveShape", "allowResizeShape", "allowDependencyAdding", "allowDependencyDeleting", "allowResourceAdding", "allowResourceDeleting", "allowResourceUpdating", "allowTaskAdding", "allowTaskDeleting", "allowTaskResourceUpdating", "allowTaskUpdating", "enabled", "allowDragging", "allowResizing", "allowTimeZoneEditing"], outputs: ["changesChange", "editColumnNameChange", "editRowKeyChange"] }, { kind: "component", type: i8.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i8.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "component", type: i8.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "deferred", "mode", "selectAllMode", "showCheckBoxesMode", "recursive"] }, { kind: "component", type: i7.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
7825
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ItemClassificationsComponent, decorators: [{
7826
+ type: Component,
7827
+ args: [{ selector: 'lib-item-classifications', template: "<abp-page [title]=\"'Keops::ItemClassifications:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end align-items-center mx-0\" id=\"ItemClassificationsToolbar\">\r\n <div *ngIf=\"saving\" class=\"col-auto pt-0 pt-md-2 text-muted\">\r\n <span class=\"spinner-border spinner-border-sm me-1\"></span>\r\n {{ 'Keops::ItemClassifications:Saving' | abpLocalization }}\r\n {{ saveProgress.processed }}/{{ saveProgress.total }}\r\n </div>\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsItemMasterData.ItemClassifications.Update'\"\r\n id=\"save\"\r\n class=\"btn btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"!changes.length || saving\"\r\n (click)=\"save()\"\r\n >\r\n <i class=\"fa fa-check me-1\"></i>\r\n <span>{{ 'Keops::ItemClassifications:Save' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"ItemClassificationsWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div class=\"row mb-3\">\r\n <div class=\"col-12 col-md-4\">\r\n <label for=\"kind\" class=\"form-label\">\r\n {{ 'Keops::ItemClassifications:Kind' | abpLocalization }}\r\n </label>\r\n <select\r\n id=\"kind\"\r\n class=\"form-select\"\r\n [(ngModel)]=\"selectedPrefix\"\r\n (ngModelChange)=\"onKindChange()\"\r\n >\r\n <option value=\"\">--</option>\r\n <option *ngFor=\"let kind of kinds\" [value]=\"kind.prefix\">\r\n {{ kind.labelKey | abpLocalization }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!hasKind\" class=\"text-muted\">\r\n {{ 'Keops::ItemClassifications:SelectKind' | abpLocalization }}\r\n </div>\r\n\r\n <!-- Toplu doldur paneli -->\r\n <div *ngIf=\"hasKind\" class=\"border rounded p-2 mb-3 bg-light\">\r\n <div class=\"row g-2 align-items-end\">\r\n <div class=\"col-12 col-md-auto\">\r\n <span class=\"badge bg-secondary\">\r\n {{ 'Keops::ItemClassifications:Selected' | abpLocalization }}: {{ selectedKeys.length }}\r\n </span>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:PackageType' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"packageTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkPaketTuru\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:PackageGroup' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"packageGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkPaketGrubu\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:ProductType' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"productTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkUrunTipi\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:Region' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"regions\"\r\n valueExpr=\"value\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkRegion\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:CostGroup' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"costGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkCostGroup\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-6 col-md-3\">\r\n <label class=\"form-label mb-1\">\r\n {{ 'Keops::ItemClassifications:PackagingMaterial' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n [dataSource]=\"packagingMaterials\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [searchEnabled]=\"true\"\r\n [showClearButton]=\"true\"\r\n [(value)]=\"bulkPckMat\"\r\n placeholder=\"--\"\r\n ></dx-select-box>\r\n </div>\r\n <div class=\"col-12 col-md-auto d-flex gap-2\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline-primary\"\r\n [disabled]=\"!selectedKeys.length\"\r\n (click)=\"applyBulk()\"\r\n >\r\n <i class=\"fa fa-arrow-down me-1\"></i>\r\n {{ 'Keops::ItemClassifications:ApplyToSelected' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <dx-data-grid\r\n *ngIf=\"hasKind\"\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [dataSource]=\"rows\"\r\n keyExpr=\"itemCode\"\r\n columnResizingMode=\"widget\"\r\n [(selectedRowKeys)]=\"selectedKeys\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n >\r\n <dxo-selection mode=\"multiple\" showCheckBoxesMode=\"always\" [allowSelectAll]=\"true\"></dxo-selection>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel\r\n [width]=\"200\"\r\n [visible]=\"true\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\"\r\n ></dxo-search-panel>\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\"\r\n ></dxo-pager>\r\n <dxo-paging [pageSize]=\"20\"></dxo-paging>\r\n <dxo-editing\r\n mode=\"batch\"\r\n [allowUpdating]=\"true\"\r\n [allowAdding]=\"false\"\r\n [allowDeleting]=\"false\"\r\n [useIcons]=\"true\"\r\n [(changes)]=\"changes\"\r\n ></dxo-editing>\r\n\r\n <dxi-column\r\n dataField=\"itemCode\"\r\n [allowEditing]=\"false\"\r\n width=\"140\"\r\n caption=\"{{ 'Keops::ItemClassifications:ItemCode' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"itemName\"\r\n [allowEditing]=\"false\"\r\n caption=\"{{ 'Keops::ItemClassifications:ItemName' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"groupCode\"\r\n dataType=\"number\"\r\n [allowEditing]=\"false\"\r\n width=\"110\"\r\n caption=\"{{ 'Keops::ItemClassifications:GroupCode' | abpLocalization }}\"\r\n ></dxi-column>\r\n <dxi-column\r\n dataField=\"groupName\"\r\n [allowEditing]=\"false\"\r\n caption=\"{{ 'Keops::ItemClassifications:GroupName' | abpLocalization }}\"\r\n ></dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"paketTuruCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:PackageType' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"packageTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"paketGrubuCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:PackageGroup' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"packageGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"urunTipiCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:ProductType' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"productTypes\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"region\"\r\n caption=\"{{ 'Keops::ItemClassifications:Region' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"regions\"\r\n valueExpr=\"value\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"costGroupCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:CostGroup' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"costGroups\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column\r\n dataField=\"pckMatCode\"\r\n caption=\"{{ 'Keops::ItemClassifications:PackagingMaterial' | abpLocalization }}\"\r\n >\r\n <dxo-lookup\r\n [dataSource]=\"packagingMaterials\"\r\n valueExpr=\"code\"\r\n displayExpr=\"name\"\r\n [allowClearing]=\"true\"\r\n ></dxo-lookup>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n" }]
7828
+ }], ctorParameters: function () { return [{ type: i1$1.ItemClassificationService }, { type: i1$1.ItemPackageTypeService }, { type: i1$1.ItemPackageGroupService }, { type: i1$1.ItemProductTypeService }, { type: i2.ToasterService }, { type: i4.LocalizationService }]; } });
7829
+
7830
+ const routes$1 = [
7831
+ {
7832
+ path: '',
7833
+ component: ItemClassificationsComponent,
7834
+ canActivate: [AuthGuard, PermissionGuard],
7835
+ data: {
7836
+ requiredPolicy: 'KeopsItemMasterData.ItemClassifications',
7837
+ },
7838
+ },
7839
+ ];
7840
+ class HitItemClassificationsRoutingModule {
7841
+ }
7842
+ HitItemClassificationsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7843
+ HitItemClassificationsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
7844
+ HitItemClassificationsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsRoutingModule, imports: [RouterModule.forChild(routes$1), RouterModule] });
7845
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsRoutingModule, decorators: [{
7846
+ type: NgModule,
7847
+ args: [{
7848
+ imports: [RouterModule.forChild(routes$1)],
7849
+ exports: [RouterModule],
7850
+ }]
7851
+ }] });
7852
+
7853
+ class HitItemClassificationsModule {
7854
+ }
7855
+ HitItemClassificationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7856
+ HitItemClassificationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsModule, declarations: [ItemClassificationsComponent], imports: [CommonModule,
7857
+ FormsModule,
7858
+ ReactiveFormsModule,
7859
+ CoreModule,
7860
+ ThemeSharedModule,
7861
+ PageModule,
7862
+ CommercialUiModule,
7863
+ NgbDropdownModule,
7864
+ HitItemClassificationsRoutingModule,
7865
+ DxDataGridModule,
7866
+ DxSelectBoxModule] });
7867
+ HitItemClassificationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsModule, imports: [CommonModule,
7868
+ FormsModule,
7869
+ ReactiveFormsModule,
7870
+ CoreModule,
7871
+ ThemeSharedModule,
7872
+ PageModule,
7873
+ CommercialUiModule,
7874
+ NgbDropdownModule,
7875
+ HitItemClassificationsRoutingModule,
7876
+ DxDataGridModule,
7877
+ DxSelectBoxModule] });
7878
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsModule, decorators: [{
7879
+ type: NgModule,
7880
+ args: [{
7881
+ declarations: [ItemClassificationsComponent],
7882
+ imports: [
7883
+ CommonModule,
7884
+ FormsModule,
7885
+ ReactiveFormsModule,
7886
+ CoreModule,
7887
+ ThemeSharedModule,
7888
+ PageModule,
7889
+ CommercialUiModule,
7890
+ NgbDropdownModule,
7891
+ HitItemClassificationsRoutingModule,
7892
+ DxDataGridModule,
7893
+ DxSelectBoxModule,
7894
+ ],
7895
+ }]
7896
+ }] });
7897
+ function loadHitItemClassificationsModuleAsChild() {
7898
+ return Promise.resolve(HitItemClassificationsModule);
7899
+ }
7900
+
7402
7901
  const routes = [
7403
7902
  { path: 'cost/calculation', loadChildren: loadHitCostCalculationModuleAsChild },
7404
7903
  { path: 'system/exchange-rates', loadChildren: loadHitExchangeRatesModuleAsChild },
@@ -7429,6 +7928,7 @@ const routes = [
7429
7928
  { path: 'item-master-data/item-package-types', loadChildren: loadHitItemPackageTypesModuleAsChild },
7430
7929
  { path: 'item-master-data/item-package-groups', loadChildren: loadHitItemPackageGroupsModuleAsChild },
7431
7930
  { path: 'item-master-data/item-product-types', loadChildren: loadHitItemProductTypesModuleAsChild },
7931
+ { path: 'item-master-data/item-classifications', loadChildren: loadHitItemClassificationsModuleAsChild },
7432
7932
  ];
7433
7933
  class KadoogluKeopsRoutingModule {
7434
7934
  }
@@ -7496,9 +7996,13 @@ class CostSettingsComponent {
7496
7996
  ngOnInit() {
7497
7997
  this.form = this.fb.group({
7498
7998
  itemPackagePriceListNo: [0, [Validators.required, Validators.min(1)]],
7999
+ itemPackageCodePrefix: ['', Validators.required],
7499
8000
  });
7500
8001
  this.service.get().subscribe(dto => {
7501
- this.form.patchValue({ itemPackagePriceListNo: dto.itemPackagePriceListNo });
8002
+ this.form.patchValue({
8003
+ itemPackagePriceListNo: dto.itemPackagePriceListNo,
8004
+ itemPackageCodePrefix: dto.itemPackageCodePrefix,
8005
+ });
7502
8006
  });
7503
8007
  }
7504
8008
  save() {
@@ -7517,10 +8021,10 @@ class CostSettingsComponent {
7517
8021
  }
7518
8022
  }
7519
8023
  CostSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostSettingsComponent, deps: [{ token: i1.FormBuilder }, { token: i1$1.CostSettingsService }, { token: i2.ToasterService }], target: i0.ɵɵFactoryTarget.Component });
7520
- CostSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostSettingsComponent, isStandalone: true, selector: "lib-cost-settings", ngImport: i0, template: "<form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-12\">\n <label for=\"itemPackagePriceListNo\" class=\"form-label\">\n {{ 'Keops::Settings:KeopsCost:ItemPackagePriceListNo' | abpLocalization }}\n </label>\n <input\n id=\"itemPackagePriceListNo\"\n type=\"number\"\n class=\"form-control\"\n formControlName=\"itemPackagePriceListNo\"\n />\n <small class=\"form-text text-muted\">\n {{ 'Keops::Settings:KeopsCost:ItemPackagePriceListNo:Description' | abpLocalization }}\n </small>\n </div>\n </div>\n\n <div class=\"mt-3\">\n <abp-button\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary color-white\"\n buttonType=\"submit\"\n [loading]=\"saving\"\n [disabled]=\"form?.invalid\"\n >{{ 'AbpSettingManagement::Save' | abpLocalization }}</abp-button\n >\n </div>\n</form>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CoreModule }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }, { kind: "directive", type: i4.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "ngmodule", type: ThemeSharedModule }, { kind: "component", type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }] });
8024
+ CostSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CostSettingsComponent, isStandalone: true, selector: "lib-cost-settings", ngImport: i0, template: "<form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12 mb-3\">\r\n <label for=\"itemPackagePriceListNo\" class=\"form-label\">\r\n {{ 'Keops::Settings:KeopsCost:ItemPackagePriceListNo' | abpLocalization }}\r\n </label>\r\n <input\r\n id=\"itemPackagePriceListNo\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n formControlName=\"itemPackagePriceListNo\"\r\n />\r\n <small class=\"form-text text-muted\">\r\n {{ 'Keops::Settings:KeopsCost:ItemPackagePriceListNo:Description' | abpLocalization }}\r\n </small>\r\n </div>\r\n\r\n <div class=\"col-md-12\">\r\n <label for=\"itemPackageCodePrefix\" class=\"form-label\">\r\n {{ 'Keops::Settings:KeopsCost:ItemPackageCodePrefix' | abpLocalization }}\r\n </label>\r\n <input\r\n id=\"itemPackageCodePrefix\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"itemPackageCodePrefix\"\r\n />\r\n <small class=\"form-text text-muted\">\r\n {{ 'Keops::Settings:KeopsCost:ItemPackageCodePrefix:Description' | abpLocalization }}\r\n </small>\r\n </div>\r\n </div>\r\n\r\n <hr class=\"my-3\" />\r\n\r\n <div class=\"d-flex justify-content-start\">\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary color-white\"\r\n buttonType=\"submit\"\r\n [loading]=\"saving\"\r\n [disabled]=\"form?.invalid\"\r\n >{{ 'AbpSettingManagement::Save' | abpLocalization }}</abp-button\r\n >\r\n </div>\r\n</form>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CoreModule }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }, { kind: "directive", type: i4.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "ngmodule", type: ThemeSharedModule }, { kind: "component", type: i2.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }] });
7521
8025
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostSettingsComponent, decorators: [{
7522
8026
  type: Component,
7523
- args: [{ selector: 'lib-cost-settings', standalone: true, imports: [CommonModule, ReactiveFormsModule, CoreModule, ThemeSharedModule], template: "<form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-12\">\n <label for=\"itemPackagePriceListNo\" class=\"form-label\">\n {{ 'Keops::Settings:KeopsCost:ItemPackagePriceListNo' | abpLocalization }}\n </label>\n <input\n id=\"itemPackagePriceListNo\"\n type=\"number\"\n class=\"form-control\"\n formControlName=\"itemPackagePriceListNo\"\n />\n <small class=\"form-text text-muted\">\n {{ 'Keops::Settings:KeopsCost:ItemPackagePriceListNo:Description' | abpLocalization }}\n </small>\n </div>\n </div>\n\n <div class=\"mt-3\">\n <abp-button\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary color-white\"\n buttonType=\"submit\"\n [loading]=\"saving\"\n [disabled]=\"form?.invalid\"\n >{{ 'AbpSettingManagement::Save' | abpLocalization }}</abp-button\n >\n </div>\n</form>\n" }]
8027
+ args: [{ selector: 'lib-cost-settings', standalone: true, imports: [CommonModule, ReactiveFormsModule, CoreModule, ThemeSharedModule], template: "<form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12 mb-3\">\r\n <label for=\"itemPackagePriceListNo\" class=\"form-label\">\r\n {{ 'Keops::Settings:KeopsCost:ItemPackagePriceListNo' | abpLocalization }}\r\n </label>\r\n <input\r\n id=\"itemPackagePriceListNo\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n formControlName=\"itemPackagePriceListNo\"\r\n />\r\n <small class=\"form-text text-muted\">\r\n {{ 'Keops::Settings:KeopsCost:ItemPackagePriceListNo:Description' | abpLocalization }}\r\n </small>\r\n </div>\r\n\r\n <div class=\"col-md-12\">\r\n <label for=\"itemPackageCodePrefix\" class=\"form-label\">\r\n {{ 'Keops::Settings:KeopsCost:ItemPackageCodePrefix' | abpLocalization }}\r\n </label>\r\n <input\r\n id=\"itemPackageCodePrefix\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"itemPackageCodePrefix\"\r\n />\r\n <small class=\"form-text text-muted\">\r\n {{ 'Keops::Settings:KeopsCost:ItemPackageCodePrefix:Description' | abpLocalization }}\r\n </small>\r\n </div>\r\n </div>\r\n\r\n <hr class=\"my-3\" />\r\n\r\n <div class=\"d-flex justify-content-start\">\r\n <abp-button\r\n iconClass=\"fa fa-check\"\r\n buttonClass=\"btn btn-primary color-white\"\r\n buttonType=\"submit\"\r\n [loading]=\"saving\"\r\n [disabled]=\"form?.invalid\"\r\n >{{ 'AbpSettingManagement::Save' | abpLocalization }}</abp-button\r\n >\r\n </div>\r\n</form>\r\n" }]
7524
8028
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i1$1.CostSettingsService }, { type: i2.ToasterService }]; } });
7525
8029
 
7526
8030
  // exchange-rates