@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';
@@ -173,7 +173,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
173
173
  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" }]
174
174
  }], ctorParameters: function () { return [{ type: i1$1.CostItemService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
175
175
 
176
- const routes$t = [
176
+ const routes$u = [
177
177
  {
178
178
  path: '',
179
179
  component: CostItemsComponent,
@@ -187,11 +187,11 @@ class HitCostItemsRoutingModule {
187
187
  }
188
188
  HitCostItemsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostItemsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
189
189
  HitCostItemsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitCostItemsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
190
- HitCostItemsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostItemsRoutingModule, imports: [RouterModule.forChild(routes$t), RouterModule] });
190
+ HitCostItemsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostItemsRoutingModule, imports: [RouterModule.forChild(routes$u), RouterModule] });
191
191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostItemsRoutingModule, decorators: [{
192
192
  type: NgModule,
193
193
  args: [{
194
- imports: [RouterModule.forChild(routes$t)],
194
+ imports: [RouterModule.forChild(routes$u)],
195
195
  exports: [RouterModule],
196
196
  }]
197
197
  }] });
@@ -452,7 +452,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
452
452
  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" }]
453
453
  }], ctorParameters: function () { return [{ type: i1$1.CostGroupService }, { type: i1$1.CostItemService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
454
454
 
455
- const routes$s = [
455
+ const routes$t = [
456
456
  {
457
457
  path: '',
458
458
  component: CostGroupsComponent,
@@ -466,11 +466,11 @@ class HitCostGroupsRoutingModule {
466
466
  }
467
467
  HitCostGroupsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostGroupsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
468
468
  HitCostGroupsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitCostGroupsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
469
- HitCostGroupsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostGroupsRoutingModule, imports: [RouterModule.forChild(routes$s), RouterModule] });
469
+ HitCostGroupsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostGroupsRoutingModule, imports: [RouterModule.forChild(routes$t), RouterModule] });
470
470
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostGroupsRoutingModule, decorators: [{
471
471
  type: NgModule,
472
472
  args: [{
473
- imports: [RouterModule.forChild(routes$s)],
473
+ imports: [RouterModule.forChild(routes$t)],
474
474
  exports: [RouterModule],
475
475
  }]
476
476
  }] });
@@ -634,7 +634,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
634
634
  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" }]
635
635
  }], ctorParameters: function () { return [{ type: i1$1.ExchangeRateService }]; } });
636
636
 
637
- const routes$r = [
637
+ const routes$s = [
638
638
  {
639
639
  path: '',
640
640
  component: ExchangeRatesComponent,
@@ -648,11 +648,11 @@ class HitExchangeRatesRoutingModule {
648
648
  }
649
649
  HitExchangeRatesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitExchangeRatesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
650
650
  HitExchangeRatesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitExchangeRatesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
651
- HitExchangeRatesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitExchangeRatesRoutingModule, imports: [RouterModule.forChild(routes$r), RouterModule] });
651
+ HitExchangeRatesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitExchangeRatesRoutingModule, imports: [RouterModule.forChild(routes$s), RouterModule] });
652
652
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitExchangeRatesRoutingModule, decorators: [{
653
653
  type: NgModule,
654
654
  args: [{
655
- imports: [RouterModule.forChild(routes$r)],
655
+ imports: [RouterModule.forChild(routes$s)],
656
656
  exports: [RouterModule],
657
657
  }]
658
658
  }] });
@@ -715,15 +715,17 @@ const CURRENCY_OPTIONS = [
715
715
  { value: Currency.EUR, label: 'EUR' },
716
716
  ];
717
717
  // Foreign-exchange-only subset (no TRY) for fields that express a rate against TRY.
718
- const CURRENCY_OPTIONS_FX_ONLY = CURRENCY_OPTIONS.filter(o => o.value === Currency.USD || o.value === Currency.EUR);
718
+ const CURRENCY_OPTIONS_FX_ONLY = CURRENCY_OPTIONS.filter(o => o.value === Currency.USD || o.value === Currency.EUR);
719
+ // TRY/USD-only subset (no EUR) for fields that may only be expressed in TRY or USD.
720
+ const CURRENCY_OPTIONS_TRY_USD = CURRENCY_OPTIONS.filter(o => o.value === Currency.TRY || o.value === Currency.USD);
719
721
 
720
722
  class AmountCurrencyInputComponent {
721
723
  constructor() {
722
724
  this.currencyOptions = CURRENCY_OPTIONS;
723
725
  this.currency = Currency.TRY;
724
726
  this.currencyChange = new EventEmitter();
725
- this.value = null;
726
727
  this.disabled = false;
728
+ this.value = null;
727
729
  this.onChange = () => undefined;
728
730
  this.onTouched = () => undefined;
729
731
  }
@@ -752,7 +754,7 @@ class AmountCurrencyInputComponent {
752
754
  }
753
755
  }
754
756
  AmountCurrencyInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AmountCurrencyInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
755
- 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: [
757
+ 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: [
756
758
  {
757
759
  provide: NG_VALUE_ACCESSOR,
758
760
  useExisting: forwardRef(() => AmountCurrencyInputComponent),
@@ -774,6 +776,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
774
776
  type: Input
775
777
  }], currencyChange: [{
776
778
  type: Output
779
+ }], disabled: [{
780
+ type: Input
777
781
  }] } });
778
782
 
779
783
  class ResolveCodeNamePipe {
@@ -825,21 +829,21 @@ function buildRoleGroups(rawOil, stages) {
825
829
  });
826
830
  }
827
831
 
828
- function toAmount(baseUsd, rateUsd, rateEur) {
832
+ function toAmount(baseTry, rateUsd, rateEur) {
829
833
  return {
830
- usd: baseUsd,
831
- try: baseUsd * rateUsd,
832
- eur: rateEur > 0 ? (baseUsd * rateUsd) / rateEur : 0,
834
+ try: baseTry,
835
+ usd: rateUsd > 0 ? baseTry / rateUsd : 0,
836
+ eur: rateEur > 0 ? baseTry / rateEur : 0,
833
837
  };
834
838
  }
835
- function toBaseUsd(value, currency, rateUsd, rateEur) {
839
+ function toBaseTry(value, currency, rateUsd, rateEur) {
836
840
  switch (currency) {
837
- case Currency.USD:
838
- return value;
839
841
  case Currency.TRY:
840
- return rateUsd <= 0 ? 0 : value / rateUsd;
842
+ return value;
843
+ case Currency.USD:
844
+ return value * rateUsd;
841
845
  case Currency.EUR:
842
- return rateUsd <= 0 ? 0 : (value * rateEur) / rateUsd;
846
+ return value * rateEur;
843
847
  default:
844
848
  return value;
845
849
  }
@@ -866,25 +870,25 @@ function indexItemsBySystemCode(stages) {
866
870
  return map;
867
871
  }
868
872
  function resolveItems(itemsByCode, rateUsd, rateEur) {
869
- const baseUsd = (code) => {
873
+ const baseTry = (code) => {
870
874
  const item = itemsByCode.get(code);
871
- return item ? toBaseUsd(parseDecimal(item.value), item.currency, rateUsd, rateEur) : 0;
875
+ return item ? toBaseTry(parseDecimal(item.value), item.currency, rateUsd, rateEur) : 0;
872
876
  };
873
877
  const ratePercent = (code) => { var _a, _b; return parseDecimal((_b = (_a = itemsByCode.get(code)) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 0); };
874
878
  return {
875
- port: baseUsd(CostItemSystemCode.Port),
876
- inspectionCustoms: baseUsd(CostItemSystemCode.InspectionCustoms),
877
- freight: baseUsd(CostItemSystemCode.Freight),
879
+ port: baseTry(CostItemSystemCode.Port),
880
+ inspectionCustoms: baseTry(CostItemSystemCode.InspectionCustoms),
881
+ freight: baseTry(CostItemSystemCode.Freight),
878
882
  lossRate: ratePercent(CostItemSystemCode.Loss),
879
- refineryOverhead: baseUsd(CostItemSystemCode.RefineryOverhead),
880
- refineryAuxMaterials: baseUsd(CostItemSystemCode.RefineryAuxMaterials),
881
- fillingPackagingOverhead: baseUsd(CostItemSystemCode.FillingPackagingOverhead),
882
- packaging: baseUsd(CostItemSystemCode.Packaging),
883
- salesMarketing: baseUsd(CostItemSystemCode.SalesMarketing),
884
- generalAdmin: baseUsd(CostItemSystemCode.GeneralAdmin),
885
- finance: baseUsd(CostItemSystemCode.Finance),
886
- contingency: baseUsd(CostItemSystemCode.Contingency),
887
- variableDepreciation: baseUsd(CostItemSystemCode.VariableDepreciation),
883
+ refineryOverhead: baseTry(CostItemSystemCode.RefineryOverhead),
884
+ refineryAuxMaterials: baseTry(CostItemSystemCode.RefineryAuxMaterials),
885
+ fillingPackagingOverhead: baseTry(CostItemSystemCode.FillingPackagingOverhead),
886
+ packaging: baseTry(CostItemSystemCode.Packaging),
887
+ salesMarketing: baseTry(CostItemSystemCode.SalesMarketing),
888
+ generalAdmin: baseTry(CostItemSystemCode.GeneralAdmin),
889
+ finance: baseTry(CostItemSystemCode.Finance),
890
+ contingency: baseTry(CostItemSystemCode.Contingency),
891
+ variableDepreciation: baseTry(CostItemSystemCode.VariableDepreciation),
888
892
  profitRate: ratePercent(CostItemSystemCode.ProfitRate),
889
893
  };
890
894
  }
@@ -898,6 +902,9 @@ function isCustomCostItem(item) {
898
902
  function currencyApplies(calculationType) {
899
903
  return (calculationType !== CostItemCalculationType.Rate &&
900
904
  calculationType !== CostItemCalculationType.Custom);
905
+ }
906
+ function isPackagingCostItem(item) {
907
+ return item.systemCode === CostItemSystemCode.Packaging;
901
908
  }
902
909
 
903
910
  function buildComputedBaseByCode(resolvedItems, loss, profit) {
@@ -923,13 +930,13 @@ function buildCostStages(stages, computedBaseByCode, itemsByCode, rateUsd, rateE
923
930
  .slice()
924
931
  .sort((a, b) => a.displayOrder - b.displayOrder)
925
932
  .map(stage => {
926
- let stageTotalUsd = 0;
933
+ let stageTotalTry = 0;
927
934
  const lines = stage.items.map(item => {
928
935
  var _a, _b, _c;
929
- const itemUsd = item.systemCode != null
936
+ const itemTry = item.systemCode != null
930
937
  ? ((_a = computedBaseByCode.get(item.systemCode)) !== null && _a !== void 0 ? _a : 0)
931
- : toBaseUsd(parseDecimal(item.value), item.currency, rateUsd, rateEur);
932
- stageTotalUsd += itemUsd;
938
+ : toBaseTry(parseDecimal(item.value), item.currency, rateUsd, rateEur);
939
+ stageTotalTry += itemTry;
933
940
  return {
934
941
  costItemCode: item.costItemCode,
935
942
  costItemName: item.costItemName,
@@ -939,7 +946,7 @@ function buildCostStages(stages, computedBaseByCode, itemsByCode, rateUsd, rateE
939
946
  ratePercent: isRateCostItem(item)
940
947
  ? parseDecimal((_c = (_b = itemsByCode.get(item.systemCode)) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : 0)
941
948
  : undefined,
942
- amount: toAmount(itemUsd, rateUsd, rateEur),
949
+ amount: toAmount(itemTry, rateUsd, rateEur),
943
950
  };
944
951
  });
945
952
  return {
@@ -948,18 +955,18 @@ function buildCostStages(stages, computedBaseByCode, itemsByCode, rateUsd, rateE
948
955
  displayOrder: stage.displayOrder,
949
956
  groupRole: stage.groupRole,
950
957
  lines,
951
- subtotal: toAmount(stageTotalUsd, rateUsd, rateEur),
958
+ subtotal: toAmount(stageTotalTry, rateUsd, rateEur),
952
959
  };
953
960
  });
954
961
  }
955
962
 
956
- function calculateLoss(rawOilUsd, resolvedItems) {
957
- return (((rawOilUsd + resolvedItems.port + resolvedItems.inspectionCustoms + resolvedItems.freight) *
963
+ function calculateLoss(rawOilTry, resolvedItems) {
964
+ return (((rawOilTry + resolvedItems.port + resolvedItems.inspectionCustoms + resolvedItems.freight) *
958
965
  resolvedItems.lossRate) /
959
966
  100);
960
967
  }
961
- function calculateProductionCost(rawOilUsd, resolvedItems, loss) {
962
- return (rawOilUsd +
968
+ function calculateProductionCost(rawOilTry, resolvedItems, loss) {
969
+ return (rawOilTry +
963
970
  resolvedItems.port +
964
971
  resolvedItems.inspectionCustoms +
965
972
  resolvedItems.freight +
@@ -985,18 +992,18 @@ function calculateTotalSalePrice(totalCost, profit) {
985
992
  }
986
993
  function calculateCost(request) {
987
994
  const { rateUsd, rateEur } = request;
988
- const rawOilUsd = toBaseUsd(request.rawOilPrice, request.rawOilCurrency, rateUsd, rateEur);
995
+ const rawOilTry = toBaseTry(request.rawOilPrice, request.rawOilCurrency, rateUsd, rateEur);
989
996
  const itemsByCode = indexItemsBySystemCode(request.stages);
990
997
  const resolvedItems = resolveItems(itemsByCode, rateUsd, rateEur);
991
- const loss = calculateLoss(rawOilUsd, resolvedItems);
992
- const productionCost = calculateProductionCost(rawOilUsd, resolvedItems, loss);
998
+ const loss = calculateLoss(rawOilTry, resolvedItems);
999
+ const productionCost = calculateProductionCost(rawOilTry, resolvedItems, loss);
993
1000
  const totalCost = calculateTotalCost(productionCost, resolvedItems);
994
1001
  const profit = calculateProfit(totalCost, resolvedItems.profitRate);
995
1002
  const totalSalePrice = calculateTotalSalePrice(totalCost, profit);
996
1003
  const computedBaseByCode = buildComputedBaseByCode(resolvedItems, loss, profit);
997
1004
  const stages = buildCostStages(request.stages, computedBaseByCode, itemsByCode, rateUsd, rateEur);
998
1005
  return {
999
- rawOil: toAmount(rawOilUsd, rateUsd, rateEur),
1006
+ rawOil: toAmount(rawOilTry, rateUsd, rateEur),
1000
1007
  stages,
1001
1008
  productionCost: toAmount(productionCost, rateUsd, rateEur),
1002
1009
  totalCost: toAmount(totalCost, rateUsd, rateEur),
@@ -1017,17 +1024,52 @@ function resolveSystemRates(rate) {
1017
1024
  return [(_d = (_c = rate.cbExchangeRate) === null || _c === void 0 ? void 0 : _c.usdBuyingRate) !== null && _d !== void 0 ? _d : 0, (_f = (_e = rate.cbExchangeRate) === null || _e === void 0 ? void 0 : _e.eurBuyingRate) !== null && _f !== void 0 ? _f : 0];
1018
1025
  }
1019
1026
 
1027
+ const businessRegionLabels = {
1028
+ [BusinessRegion.Undefined]: 'Keops::BusinessRegions:Undefined',
1029
+ [BusinessRegion.Domestic]: 'Keops::BusinessRegions:Domestic',
1030
+ [BusinessRegion.International]: 'Keops::BusinessRegions:International',
1031
+ };
1032
+ // Single source of truth for the business region dropdown options shared across feature forms.
1033
+ const BUSINESS_REGION_OPTIONS = [
1034
+ { value: BusinessRegion.Domestic, label: businessRegionLabels[BusinessRegion.Domestic] },
1035
+ { value: BusinessRegion.International, label: businessRegionLabels[BusinessRegion.International] },
1036
+ ];
1037
+
1038
+ class PriceParameterLookupsService {
1039
+ constructor(priceParameterTypeService, costParameterCategoryService) {
1040
+ this.priceParameterTypeService = priceParameterTypeService;
1041
+ this.costParameterCategoryService = costParameterCategoryService;
1042
+ }
1043
+ loadTypeAndCategoryLookups() {
1044
+ return forkJoin({
1045
+ types: this.priceParameterTypeService.getLookup(),
1046
+ categories: this.costParameterCategoryService.getList(),
1047
+ }).pipe(map(({ types, categories }) => ({
1048
+ typeOptions: types !== null && types !== void 0 ? types : [],
1049
+ groupOptions: categories !== null && categories !== void 0 ? categories : [],
1050
+ })));
1051
+ }
1052
+ }
1053
+ 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 });
1054
+ PriceParameterLookupsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterLookupsService, providedIn: 'root' });
1055
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterLookupsService, decorators: [{
1056
+ type: Injectable,
1057
+ args: [{ providedIn: 'root' }]
1058
+ }], ctorParameters: function () { return [{ type: i1$1.PriceParameterTypeService }, { type: i1$1.CostParameterCategoryService }]; } });
1059
+
1020
1060
  class CostCalculationInputsComponent {
1021
1061
  constructor() {
1022
1062
  this.isRate = isRateCostItem;
1063
+ this.isPackaging = isPackagingCostItem;
1023
1064
  this.currencyOptions = CURRENCY_OPTIONS;
1065
+ this.tryUsdCurrencyOptions = CURRENCY_OPTIONS_TRY_USD;
1024
1066
  this.itemsDataSource = null;
1025
1067
  this.parameters = [];
1026
1068
  this.stages = [];
1027
1069
  this.selectedItemCode = null;
1028
1070
  this.selectedItemCodeChange = new EventEmitter();
1029
- this.selectedParameterCode = null;
1030
- this.selectedParameterCodeChange = new EventEmitter();
1071
+ this.selectedParameterDocEntry = null;
1072
+ this.selectedParameterDocEntryChange = new EventEmitter();
1031
1073
  this.rawOilPrice = 0;
1032
1074
  this.rawOilPriceChange = new EventEmitter();
1033
1075
  this.rawOilCurrency = Currency.USD;
@@ -1047,7 +1089,7 @@ class CostCalculationInputsComponent {
1047
1089
  this.itemChange.emit();
1048
1090
  }
1049
1091
  onParameterSelected() {
1050
- this.selectedParameterCodeChange.emit(this.selectedParameterCode);
1092
+ this.selectedParameterDocEntryChange.emit(this.selectedParameterDocEntry);
1051
1093
  this.parameterChange.emit();
1052
1094
  }
1053
1095
  onRawOilPriceChange() {
@@ -1068,10 +1110,10 @@ class CostCalculationInputsComponent {
1068
1110
  }
1069
1111
  }
1070
1112
  CostCalculationInputsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostCalculationInputsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1071
- 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" }] });
1113
+ 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" }] });
1072
1114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostCalculationInputsComponent, decorators: [{
1073
1115
  type: Component,
1074
- 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" }]
1116
+ 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" }]
1075
1117
  }], propDecorators: { itemsDataSource: [{
1076
1118
  type: Input
1077
1119
  }], itemDisplayExpr: [{
@@ -1086,9 +1128,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1086
1128
  type: Input
1087
1129
  }], selectedItemCodeChange: [{
1088
1130
  type: Output
1089
- }], selectedParameterCode: [{
1131
+ }], selectedParameterDocEntry: [{
1090
1132
  type: Input
1091
- }], selectedParameterCodeChange: [{
1133
+ }], selectedParameterDocEntryChange: [{
1092
1134
  type: Output
1093
1135
  }], rawOilPrice: [{
1094
1136
  type: Input
@@ -1129,10 +1171,10 @@ class CostCalculationResultsComponent {
1129
1171
  }
1130
1172
  }
1131
1173
  CostCalculationResultsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostCalculationResultsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1132
- 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" }] });
1174
+ 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" }] });
1133
1175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostCalculationResultsComponent, decorators: [{
1134
1176
  type: Component,
1135
- 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" }]
1177
+ 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" }]
1136
1178
  }], propDecorators: { result: [{
1137
1179
  type: Input
1138
1180
  }], roleGroups: [{
@@ -1175,20 +1217,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1175
1217
  }] } });
1176
1218
 
1177
1219
  class CostCalculationComponent {
1178
- constructor(parameterService, costParameterCategoryService, costItemService, costGroupService, exchangeRateService, itemService) {
1220
+ constructor(parameterService, priceParameterLookupsService, costItemService, costGroupService, exchangeRateService, itemService, localization) {
1179
1221
  this.parameterService = parameterService;
1180
- this.costParameterCategoryService = costParameterCategoryService;
1222
+ this.priceParameterLookupsService = priceParameterLookupsService;
1181
1223
  this.costItemService = costItemService;
1182
1224
  this.costGroupService = costGroupService;
1183
1225
  this.exchangeRateService = exchangeRateService;
1184
1226
  this.itemService = itemService;
1227
+ this.localization = localization;
1185
1228
  this.itemCodePrefix = '05';
1186
1229
  this.productItems = [];
1187
1230
  this.itemsDataSource = null;
1188
1231
  this.selectedItemCode = null;
1189
1232
  this.selectedItemName = null;
1190
1233
  this.parameters = [];
1191
- this.selectedParameterCode = null;
1234
+ this.selectedParameterDocEntry = null;
1192
1235
  this.rawOilPrice = 0;
1193
1236
  this.rawOilCurrency = Currency.USD;
1194
1237
  this.systemRateUsd = 0;
@@ -1198,10 +1241,11 @@ class CostCalculationComponent {
1198
1241
  this.stages = [];
1199
1242
  this.result = null;
1200
1243
  this.roleGroups = [];
1244
+ this.packagingBaseTry = 0;
1201
1245
  this.costItemsByCode = new Map();
1202
1246
  this.groups = [];
1203
1247
  this.productGroupNames = new Map();
1204
- this.regionNames = new Map();
1248
+ this.typeNames = new Map();
1205
1249
  this.itemDisplayExpr = (item) => item ? [item.code, item.name].filter(Boolean).join(' — ') : '';
1206
1250
  this.parameterDisplayExpr = (p) => p ? this.parameterLabel(p) : '';
1207
1251
  }
@@ -1212,19 +1256,11 @@ class CostCalculationComponent {
1212
1256
  costItems: this.costItemService.getList(),
1213
1257
  groups: this.costGroupService.getList(),
1214
1258
  rate: this.exchangeRateService.get(),
1215
- lookups: this.costParameterCategoryService.getList(),
1216
- items: this.itemService.getList(this.itemCodePrefix),
1217
- }).subscribe(({ parameters, costItems, groups, rate, lookups, items }) => {
1259
+ lookups: this.priceParameterLookupsService.loadTypeAndCategoryLookups(),
1260
+ }).subscribe(({ parameters, costItems, groups, rate, lookups }) => {
1218
1261
  this.parameters = parameters !== null && parameters !== void 0 ? parameters : [];
1219
- this.productItems = items !== null && items !== void 0 ? items : [];
1220
- this.itemsDataSource = new DataSource({
1221
- store: new ArrayStore({ key: 'code', data: this.productItems }),
1222
- paginate: true,
1223
- pageSize: 50,
1224
- });
1225
- const categories = lookups !== null && lookups !== void 0 ? lookups : [];
1226
- this.productGroupNames = this.toNameMap(categories.filter(x => x.parentCode === CostParameterCategoryParentCode.Code1));
1227
- this.regionNames = this.toNameMap(categories.filter(x => x.parentCode === CostParameterCategoryParentCode.Code4));
1262
+ this.productGroupNames = this.toNameMap(lookups.groupOptions);
1263
+ this.typeNames = this.toNameMap(lookups.typeOptions);
1228
1264
  this.costItemsByCode = new Map();
1229
1265
  for (const ci of costItems !== null && costItems !== void 0 ? costItems : []) {
1230
1266
  if (ci.code)
@@ -1241,14 +1277,43 @@ class CostCalculationComponent {
1241
1277
  }
1242
1278
  parameterLabel(p) {
1243
1279
  var _a, _b, _c, _d, _e;
1244
- const productGroup = (_b = this.productGroupNames.get((_a = p.productGroup) !== null && _a !== void 0 ? _a : '')) !== null && _b !== void 0 ? _b : p.productGroup;
1245
- const region = (_d = this.regionNames.get((_c = p.region) !== null && _c !== void 0 ? _c : '')) !== null && _d !== void 0 ? _d : p.region;
1246
- return [productGroup, region].filter(Boolean).join(' — ') || ((_e = p.code) !== null && _e !== void 0 ? _e : '');
1280
+ const groupName = (_b = this.productGroupNames.get((_a = p.groupCode) !== null && _a !== void 0 ? _a : '')) !== null && _b !== void 0 ? _b : p.groupCode;
1281
+ const typeName = (_d = this.typeNames.get((_c = p.typeCode) !== null && _c !== void 0 ? _c : '')) !== null && _d !== void 0 ? _d : p.typeCode;
1282
+ const region = this.localization.instant(businessRegionLabels[p.region]);
1283
+ return [typeName, groupName, region].filter(Boolean).join(' — ') || String((_e = p.docEntry) !== null && _e !== void 0 ? _e : '');
1247
1284
  }
1248
1285
  onItemChange() {
1249
1286
  var _a;
1250
1287
  const item = this.productItems.find(x => x.code === this.selectedItemCode);
1251
1288
  this.selectedItemName = (_a = item === null || item === void 0 ? void 0 : item.name) !== null && _a !== void 0 ? _a : null;
1289
+ this.loadPackagingCost();
1290
+ }
1291
+ loadPackagingCost() {
1292
+ if (!this.selectedItemCode) {
1293
+ this.packagingBaseTry = 0;
1294
+ this.calculate();
1295
+ return;
1296
+ }
1297
+ this.itemService.getPackagingCost(this.selectedItemCode).subscribe(amount => {
1298
+ this.packagingBaseTry = amount !== null && amount !== void 0 ? amount : 0;
1299
+ this.calculate();
1300
+ });
1301
+ }
1302
+ findPackagingItem() {
1303
+ for (const stage of this.stages) {
1304
+ const found = stage.items.find(item => item.systemCode === CostItemSystemCode.Packaging);
1305
+ if (found)
1306
+ return found;
1307
+ }
1308
+ return undefined;
1309
+ }
1310
+ applyPackagingAmount() {
1311
+ const item = this.findPackagingItem();
1312
+ if (!item)
1313
+ return;
1314
+ const amounts = toAmount(this.packagingBaseTry, this.rateUsd, this.rateEur);
1315
+ item.value =
1316
+ item.currency === Currency.TRY ? amounts.try : item.currency === Currency.EUR ? amounts.eur : amounts.usd;
1252
1317
  }
1253
1318
  toNameMap(options) {
1254
1319
  var _a;
@@ -1260,10 +1325,39 @@ class CostCalculationComponent {
1260
1325
  return map;
1261
1326
  }
1262
1327
  onParameterChange() {
1263
- const parameter = this.parameters.find(p => p.code === this.selectedParameterCode);
1328
+ var _a, _b;
1329
+ const parameter = this.parameters.find(p => p.docEntry === this.selectedParameterDocEntry);
1264
1330
  this.stages = parameter ? this.buildStages(parameter) : [];
1331
+ this.selectedItemCode = null;
1332
+ this.selectedItemName = null;
1333
+ this.packagingBaseTry = 0;
1334
+ if (parameter) {
1335
+ this.rawOilPrice = (_a = parameter.rawOilPrice) !== null && _a !== void 0 ? _a : 0;
1336
+ this.rawOilCurrency = (_b = parameter.rawOilCurrency) !== null && _b !== void 0 ? _b : Currency.USD;
1337
+ this.rateUsd = parameter.exchangeRateUsd || this.systemRateUsd;
1338
+ this.rateEur = parameter.exchangeRateEur || this.systemRateEur;
1339
+ this.loadProductItems(parameter.region, parameter.groupCode);
1340
+ }
1341
+ else {
1342
+ this.productItems = [];
1343
+ this.itemsDataSource = new DataSource({
1344
+ store: new ArrayStore({ key: 'code', data: [] }),
1345
+ paginate: true,
1346
+ pageSize: 50,
1347
+ });
1348
+ }
1265
1349
  this.calculate();
1266
1350
  }
1351
+ loadProductItems(region, groupCode) {
1352
+ this.itemService.getList(this.itemCodePrefix, region, groupCode).subscribe(items => {
1353
+ this.productItems = items !== null && items !== void 0 ? items : [];
1354
+ this.itemsDataSource = new DataSource({
1355
+ store: new ArrayStore({ key: 'code', data: this.productItems }),
1356
+ paginate: true,
1357
+ pageSize: 50,
1358
+ });
1359
+ });
1360
+ }
1267
1361
  buildValuesByCode(parameter) {
1268
1362
  var _a;
1269
1363
  const map = new Map();
@@ -1304,6 +1398,7 @@ class CostCalculationComponent {
1304
1398
  });
1305
1399
  }
1306
1400
  calculate() {
1401
+ this.applyPackagingAmount();
1307
1402
  this.result = calculateCost({
1308
1403
  rawOilPrice: parseDecimal(this.rawOilPrice),
1309
1404
  rawOilCurrency: this.rawOilCurrency,
@@ -1317,14 +1412,14 @@ class CostCalculationComponent {
1317
1412
  window.print();
1318
1413
  }
1319
1414
  }
1320
- 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 });
1321
- 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 });
1415
+ 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 });
1416
+ 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 });
1322
1417
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostCalculationComponent, decorators: [{
1323
1418
  type: Component,
1324
- 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"] }]
1325
- }], 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 }]; } });
1419
+ 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"] }]
1420
+ }], 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 }]; } });
1326
1421
 
1327
- const routes$q = [
1422
+ const routes$r = [
1328
1423
  {
1329
1424
  path: '',
1330
1425
  component: CostCalculationComponent,
@@ -1338,11 +1433,11 @@ class HitCostCalculationRoutingModule {
1338
1433
  }
1339
1434
  HitCostCalculationRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostCalculationRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1340
1435
  HitCostCalculationRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitCostCalculationRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
1341
- HitCostCalculationRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostCalculationRoutingModule, imports: [RouterModule.forChild(routes$q), RouterModule] });
1436
+ HitCostCalculationRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostCalculationRoutingModule, imports: [RouterModule.forChild(routes$r), RouterModule] });
1342
1437
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostCalculationRoutingModule, decorators: [{
1343
1438
  type: NgModule,
1344
1439
  args: [{
1345
- imports: [RouterModule.forChild(routes$q)],
1440
+ imports: [RouterModule.forChild(routes$r)],
1346
1441
  exports: [RouterModule],
1347
1442
  }]
1348
1443
  }] });
@@ -1457,13 +1552,13 @@ class CostParameterFormComponent {
1457
1552
  this.mode = 'create';
1458
1553
  this.current = null;
1459
1554
  this.productGroupOptions = [];
1460
- this.regionOptions = [];
1461
1555
  this.visibleChange = new EventEmitter();
1462
1556
  this.saved = new EventEmitter();
1463
1557
  this.saving = false;
1464
1558
  this.costItems = [];
1465
1559
  this.statusOptions = statusOptions$1;
1466
1560
  this.currencyOptions = CURRENCY_OPTIONS;
1561
+ this.regionOptions = BUSINESS_REGION_OPTIONS;
1467
1562
  this.customLabel = calculationTypeLabels[CostItemCalculationType.Custom];
1468
1563
  this.isRate = isRateCostItem;
1469
1564
  this.isCustom = isCustomCostItem;
@@ -1518,10 +1613,10 @@ class CostParameterFormComponent {
1518
1613
  }
1519
1614
  }
1520
1615
  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 });
1521
- 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" }] });
1616
+ 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" }] });
1522
1617
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostParameterFormComponent, decorators: [{
1523
1618
  type: Component,
1524
- 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" }]
1619
+ 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" }]
1525
1620
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i1$1.CostParameterService }, { type: i1$1.CostItemService }, { type: CostItemRowsBuilder }]; }, propDecorators: { visible: [{
1526
1621
  type: Input
1527
1622
  }], mode: [{
@@ -1530,8 +1625,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1530
1625
  type: Input
1531
1626
  }], productGroupOptions: [{
1532
1627
  type: Input
1533
- }], regionOptions: [{
1534
- type: Input
1535
1628
  }], visibleChange: [{
1536
1629
  type: Output
1537
1630
  }], saved: [{
@@ -1546,7 +1639,6 @@ class CostParametersComponent {
1546
1639
  this.confirmation = confirmation;
1547
1640
  this.items = [];
1548
1641
  this.productGroupOptions = [];
1549
- this.regionOptions = [];
1550
1642
  this.selected = null;
1551
1643
  this.formVisible = false;
1552
1644
  this.formMode = 'create';
@@ -1561,8 +1653,9 @@ class CostParametersComponent {
1561
1653
  getProductGroupName(code) {
1562
1654
  return this.resolveName(this.productGroupOptions, code);
1563
1655
  }
1564
- getRegionName(code) {
1565
- return this.resolveName(this.regionOptions, code);
1656
+ getRegionLabel(value) {
1657
+ var _a;
1658
+ return (_a = businessRegionLabels[value]) !== null && _a !== void 0 ? _a : '';
1566
1659
  }
1567
1660
  resolveName(options, code) {
1568
1661
  var _a, _b;
@@ -1575,9 +1668,7 @@ class CostParametersComponent {
1575
1668
  categories: this.categoryService.getList(),
1576
1669
  items: this.service.getList(),
1577
1670
  }).subscribe(({ categories, items }) => {
1578
- const categoryList = categories !== null && categories !== void 0 ? categories : [];
1579
- this.productGroupOptions = categoryList.filter(x => x.parentCode === CostParameterCategoryParentCode.Code1);
1580
- this.regionOptions = categoryList.filter(x => x.parentCode === CostParameterCategoryParentCode.Code4);
1671
+ this.productGroupOptions = categories !== null && categories !== void 0 ? categories : [];
1581
1672
  this.items = items;
1582
1673
  });
1583
1674
  }
@@ -1618,13 +1709,13 @@ class CostParametersComponent {
1618
1709
  }
1619
1710
  }
1620
1711
  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 });
1621
- 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" }] });
1712
+ 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" }] });
1622
1713
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostParametersComponent, decorators: [{
1623
1714
  type: Component,
1624
- 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" }]
1715
+ 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" }]
1625
1716
  }], ctorParameters: function () { return [{ type: i1$1.CostParameterService }, { type: i1$1.CostParameterCategoryService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
1626
1717
 
1627
- const routes$p = [
1718
+ const routes$q = [
1628
1719
  {
1629
1720
  path: '',
1630
1721
  component: CostParametersComponent,
@@ -1638,11 +1729,11 @@ class HitCostParametersRoutingModule {
1638
1729
  }
1639
1730
  HitCostParametersRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParametersRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1640
1731
  HitCostParametersRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitCostParametersRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
1641
- HitCostParametersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParametersRoutingModule, imports: [RouterModule.forChild(routes$p), RouterModule] });
1732
+ HitCostParametersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParametersRoutingModule, imports: [RouterModule.forChild(routes$q), RouterModule] });
1642
1733
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParametersRoutingModule, decorators: [{
1643
1734
  type: NgModule,
1644
1735
  args: [{
1645
- imports: [RouterModule.forChild(routes$p)],
1736
+ imports: [RouterModule.forChild(routes$q)],
1646
1737
  exports: [RouterModule],
1647
1738
  }]
1648
1739
  }] });
@@ -1695,11 +1786,6 @@ function loadHitCostParametersModuleAsChild() {
1695
1786
  return Promise.resolve(HitCostParametersModule);
1696
1787
  }
1697
1788
 
1698
- const parentCodeLabels = {
1699
- [CostParameterCategoryParentCode.Code1]: 'Keops::CostParameterCategories:ParentCode:Code1',
1700
- [CostParameterCategoryParentCode.Code4]: 'Keops::CostParameterCategories:ParentCode:Code4',
1701
- };
1702
-
1703
1789
  class CostParameterCategoryFormComponent {
1704
1790
  constructor(fb, service) {
1705
1791
  this.fb = fb;
@@ -1709,13 +1795,6 @@ class CostParameterCategoryFormComponent {
1709
1795
  this.current = null;
1710
1796
  this.visibleChange = new EventEmitter();
1711
1797
  this.saved = new EventEmitter();
1712
- this.parentCodeOptions = costParameterCategoryParentCodeOptions.map(option => {
1713
- var _a;
1714
- return ({
1715
- value: option.value,
1716
- label: (_a = parentCodeLabels[option.value]) !== null && _a !== void 0 ? _a : option.key,
1717
- });
1718
- });
1719
1798
  }
1720
1799
  ngOnInit() {
1721
1800
  this.buildForm();
@@ -1729,54 +1808,50 @@ class CostParameterCategoryFormComponent {
1729
1808
  buildForm() {
1730
1809
  this.form = this.fb.group({
1731
1810
  name: ['', Validators.required],
1732
- parentCode: [null, Validators.required],
1733
1811
  });
1734
1812
  this.resetForm();
1735
1813
  }
1736
1814
  resetForm() {
1737
- var _a, _b;
1815
+ var _a;
1738
1816
  if (!this.form)
1739
1817
  return;
1740
1818
  if (this.mode === 'edit' && this.current) {
1741
1819
  this.form.patchValue({
1742
1820
  name: (_a = this.current.name) !== null && _a !== void 0 ? _a : '',
1743
- parentCode: (_b = this.current.parentCode) !== null && _b !== void 0 ? _b : null,
1744
1821
  });
1745
1822
  }
1746
1823
  else {
1747
- this.form.reset({ name: '', parentCode: null });
1824
+ this.form.reset({ name: '' });
1748
1825
  }
1749
1826
  }
1750
1827
  close() {
1751
1828
  this.visibleChange.emit(false);
1752
1829
  }
1753
1830
  save() {
1754
- var _a, _b, _c, _d;
1831
+ var _a, _b;
1755
1832
  if (this.form.invalid)
1756
1833
  return;
1757
1834
  if (this.mode === 'create') {
1758
1835
  this.service
1759
1836
  .create({
1760
1837
  name: (_a = this.form.get('name')) === null || _a === void 0 ? void 0 : _a.value,
1761
- parentCode: (_b = this.form.get('parentCode')) === null || _b === void 0 ? void 0 : _b.value,
1762
1838
  })
1763
1839
  .subscribe({ next: () => this.saved.emit() });
1764
1840
  }
1765
1841
  else {
1766
1842
  this.service
1767
1843
  .update(this.current.code, {
1768
- name: (_c = this.form.get('name')) === null || _c === void 0 ? void 0 : _c.value,
1769
- parentCode: (_d = this.form.get('parentCode')) === null || _d === void 0 ? void 0 : _d.value,
1844
+ name: (_b = this.form.get('name')) === null || _b === void 0 ? void 0 : _b.value,
1770
1845
  })
1771
1846
  .subscribe({ next: () => this.saved.emit() });
1772
1847
  }
1773
1848
  }
1774
1849
  }
1775
1850
  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 });
1776
- 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" }] });
1851
+ 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" }] });
1777
1852
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostParameterCategoryFormComponent, decorators: [{
1778
1853
  type: Component,
1779
- 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" }]
1854
+ 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" }]
1780
1855
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i1$1.CostParameterCategoryService }]; }, propDecorators: { visible: [{
1781
1856
  type: Input
1782
1857
  }], mode: [{
@@ -1802,10 +1877,6 @@ class CostParameterCategoriesComponent {
1802
1877
  ngOnInit() {
1803
1878
  this.loadList();
1804
1879
  }
1805
- getParentCodeLabel(value) {
1806
- var _a;
1807
- return (_a = parentCodeLabels[value]) !== null && _a !== void 0 ? _a : '';
1808
- }
1809
1880
  loadList() {
1810
1881
  this.service.getList().subscribe(data => {
1811
1882
  this.items = data;
@@ -1843,13 +1914,13 @@ class CostParameterCategoriesComponent {
1843
1914
  }
1844
1915
  }
1845
1916
  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 });
1846
- 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" }] });
1917
+ 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" }] });
1847
1918
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostParameterCategoriesComponent, decorators: [{
1848
1919
  type: Component,
1849
- 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" }]
1920
+ 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" }]
1850
1921
  }], ctorParameters: function () { return [{ type: i1$1.CostParameterCategoryService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
1851
1922
 
1852
- const routes$o = [
1923
+ const routes$p = [
1853
1924
  {
1854
1925
  path: '',
1855
1926
  component: CostParameterCategoriesComponent,
@@ -1863,11 +1934,11 @@ class HitCostParameterCategoriesRoutingModule {
1863
1934
  }
1864
1935
  HitCostParameterCategoriesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParameterCategoriesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1865
1936
  HitCostParameterCategoriesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitCostParameterCategoriesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
1866
- HitCostParameterCategoriesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParameterCategoriesRoutingModule, imports: [RouterModule.forChild(routes$o), RouterModule] });
1937
+ HitCostParameterCategoriesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParameterCategoriesRoutingModule, imports: [RouterModule.forChild(routes$p), RouterModule] });
1867
1938
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCostParameterCategoriesRoutingModule, decorators: [{
1868
1939
  type: NgModule,
1869
1940
  args: [{
1870
- imports: [RouterModule.forChild(routes$o)],
1941
+ imports: [RouterModule.forChild(routes$p)],
1871
1942
  exports: [RouterModule],
1872
1943
  }]
1873
1944
  }] });
@@ -2044,7 +2115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2044
2115
  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" }]
2045
2116
  }], ctorParameters: function () { return [{ type: i1$1.PackagingTypeService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
2046
2117
 
2047
- const routes$n = [
2118
+ const routes$o = [
2048
2119
  {
2049
2120
  path: '',
2050
2121
  component: PackagingTypesComponent,
@@ -2058,11 +2129,11 @@ class HitPackagingTypesRoutingModule {
2058
2129
  }
2059
2130
  HitPackagingTypesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingTypesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2060
2131
  HitPackagingTypesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingTypesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
2061
- HitPackagingTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingTypesRoutingModule, imports: [RouterModule.forChild(routes$n), RouterModule] });
2132
+ HitPackagingTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingTypesRoutingModule, imports: [RouterModule.forChild(routes$o), RouterModule] });
2062
2133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingTypesRoutingModule, decorators: [{
2063
2134
  type: NgModule,
2064
2135
  args: [{
2065
- imports: [RouterModule.forChild(routes$n)],
2136
+ imports: [RouterModule.forChild(routes$o)],
2066
2137
  exports: [RouterModule],
2067
2138
  }]
2068
2139
  }] });
@@ -2247,7 +2318,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2247
2318
  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" }]
2248
2319
  }], ctorParameters: function () { return [{ type: i1$1.PackagingMaterialService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
2249
2320
 
2250
- const routes$m = [
2321
+ const routes$n = [
2251
2322
  {
2252
2323
  path: '',
2253
2324
  component: PackagingMaterialsComponent,
@@ -2261,11 +2332,11 @@ class HitPackagingMaterialsRoutingModule {
2261
2332
  }
2262
2333
  HitPackagingMaterialsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2263
2334
  HitPackagingMaterialsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
2264
- HitPackagingMaterialsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsRoutingModule, imports: [RouterModule.forChild(routes$m), RouterModule] });
2335
+ HitPackagingMaterialsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsRoutingModule, imports: [RouterModule.forChild(routes$n), RouterModule] });
2265
2336
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingMaterialsRoutingModule, decorators: [{
2266
2337
  type: NgModule,
2267
2338
  args: [{
2268
- imports: [RouterModule.forChild(routes$m)],
2339
+ imports: [RouterModule.forChild(routes$n)],
2269
2340
  exports: [RouterModule],
2270
2341
  }]
2271
2342
  }] });
@@ -2755,7 +2826,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2755
2826
  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" }]
2756
2827
  }], ctorParameters: function () { return [{ type: i1$1.PackagingPriceService }, { type: i1$1.PackagingTypeService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
2757
2828
 
2758
- const routes$l = [
2829
+ const routes$m = [
2759
2830
  {
2760
2831
  path: '',
2761
2832
  component: PackagingPricesComponent,
@@ -2769,11 +2840,11 @@ class HitPackagingPricesRoutingModule {
2769
2840
  }
2770
2841
  HitPackagingPricesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingPricesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2771
2842
  HitPackagingPricesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingPricesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
2772
- HitPackagingPricesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingPricesRoutingModule, imports: [RouterModule.forChild(routes$l), RouterModule] });
2843
+ HitPackagingPricesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingPricesRoutingModule, imports: [RouterModule.forChild(routes$m), RouterModule] });
2773
2844
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPackagingPricesRoutingModule, decorators: [{
2774
2845
  type: NgModule,
2775
2846
  args: [{
2776
- imports: [RouterModule.forChild(routes$l)],
2847
+ imports: [RouterModule.forChild(routes$m)],
2777
2848
  exports: [RouterModule],
2778
2849
  }]
2779
2850
  }] });
@@ -2963,7 +3034,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2963
3034
  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" }]
2964
3035
  }], ctorParameters: function () { return [{ type: i1$1.PriceParameterTypeService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
2965
3036
 
2966
- const routes$k = [
3037
+ const routes$l = [
2967
3038
  {
2968
3039
  path: '',
2969
3040
  component: PriceParameterTypesComponent,
@@ -2977,11 +3048,11 @@ class HitPriceParameterTypesRoutingModule {
2977
3048
  }
2978
3049
  HitPriceParameterTypesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParameterTypesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2979
3050
  HitPriceParameterTypesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParameterTypesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
2980
- HitPriceParameterTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParameterTypesRoutingModule, imports: [RouterModule.forChild(routes$k), RouterModule] });
3051
+ HitPriceParameterTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParameterTypesRoutingModule, imports: [RouterModule.forChild(routes$l), RouterModule] });
2981
3052
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParameterTypesRoutingModule, decorators: [{
2982
3053
  type: NgModule,
2983
3054
  args: [{
2984
- imports: [RouterModule.forChild(routes$k)],
3055
+ imports: [RouterModule.forChild(routes$l)],
2985
3056
  exports: [RouterModule],
2986
3057
  }]
2987
3058
  }] });
@@ -3037,43 +3108,140 @@ const statusLabels = {
3037
3108
  [PriceParameterStatus.InProgress]: 'Keops::PriceParameters:Status:InProgress',
3038
3109
  };
3039
3110
 
3040
- class PriceParameterLookupsService {
3041
- constructor(priceParameterTypeService, costParameterCategoryService) {
3042
- this.priceParameterTypeService = priceParameterTypeService;
3043
- this.costParameterCategoryService = costParameterCategoryService;
3111
+ class PriceParameterPriceUpdatePreviewModalComponent {
3112
+ constructor(activeModal) {
3113
+ this.activeModal = activeModal;
3114
+ this.items = [];
3115
+ this.priceListNo = null;
3044
3116
  }
3045
- loadTypeAndCategoryLookups() {
3117
+ }
3118
+ PriceParameterPriceUpdatePreviewModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterPriceUpdatePreviewModalComponent, deps: [{ token: i6.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
3119
+ 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" }] });
3120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterPriceUpdatePreviewModalComponent, decorators: [{
3121
+ type: Component,
3122
+ 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" }]
3123
+ }], ctorParameters: function () { return [{ type: i6.NgbActiveModal }]; }, propDecorators: { items: [{
3124
+ type: Input
3125
+ }], priceListNo: [{
3126
+ type: Input
3127
+ }] } });
3128
+
3129
+ class PriceParameterPriceUpdateService {
3130
+ constructor(service, priceListService, costItemService, modalService, toaster, confirmation) {
3131
+ this.service = service;
3132
+ this.priceListService = priceListService;
3133
+ this.costItemService = costItemService;
3134
+ this.modalService = modalService;
3135
+ this.toaster = toaster;
3136
+ this.confirmation = confirmation;
3137
+ }
3138
+ updateForDocEntry(docEntry) {
3139
+ return this.confirmAndRun(() => this.performUpdateForDocEntry(docEntry));
3140
+ }
3141
+ updateFromValues(source) {
3142
+ return this.confirmAndRun(() => this.performUpdateFromValues(source));
3143
+ }
3144
+ confirmAndRun(action) {
3145
+ return this.confirmation
3146
+ .warn('Keops::PriceParameters:UpdatePriceListConfirm', 'AbpUi::AreYouSure')
3147
+ .pipe(switchMap(status => (status === Confirmation.Status.confirm ? action() : of(void 0))));
3148
+ }
3149
+ performUpdateForDocEntry(docEntry) {
3046
3150
  return forkJoin({
3047
- types: this.priceParameterTypeService.getLookup(),
3048
- categories: this.costParameterCategoryService.getList(),
3049
- }).pipe(map(({ types, categories }) => {
3050
- const categoryList = categories !== null && categories !== void 0 ? categories : [];
3151
+ current: this.service.get(docEntry),
3152
+ costItems: this.costItemService.getList(),
3153
+ }).pipe(switchMap(({ current, costItems }) => {
3154
+ if (!current.groupCode || !current.typeCode) {
3155
+ return throwError(() => new Error('MissingGroupOrType'));
3156
+ }
3157
+ return this.performUpdateFromValues(Object.assign({ region: current.region, groupCode: current.groupCode, typeCode: current.typeCode }, this.computeSalesPrice(current, costItems !== null && costItems !== void 0 ? costItems : [])));
3158
+ }));
3159
+ }
3160
+ performUpdateFromValues(source) {
3161
+ return this.priceListService.getList(source.region, source.typeCode).pipe(switchMap(priceLists => {
3162
+ const factorOne = (priceLists !== null && priceLists !== void 0 ? priceLists : []).find(p => p.factor === 1);
3163
+ if (!factorOne) {
3164
+ return throwError(() => new Error('NoFactorOnePriceList'));
3165
+ }
3166
+ return this.service.previewPriceUpdate({
3167
+ businessRegion: source.region,
3168
+ cpGroupCode: source.groupCode,
3169
+ priceListNo: factorOne.priceListNo,
3170
+ salesPriceExcludingPackagingTry: source.salesPriceExcludingPackagingTry,
3171
+ rateUsd: source.rateUsd,
3172
+ rateEur: source.rateEur,
3173
+ });
3174
+ }), tap(result => {
3175
+ var _a;
3176
+ const modalRef = this.modalService.open(PriceParameterPriceUpdatePreviewModalComponent, {
3177
+ size: 'xl',
3178
+ centered: true,
3179
+ });
3180
+ const instance = modalRef.componentInstance;
3181
+ instance.items = (_a = result.items) !== null && _a !== void 0 ? _a : [];
3182
+ instance.priceListNo = result.priceListNo;
3183
+ }), map(() => void 0), catchError(() => {
3184
+ this.toaster.error('Keops::PriceParameters:NoFactorOnePriceList');
3185
+ return of(void 0);
3186
+ }));
3187
+ }
3188
+ computeSalesPrice(dto, costItems) {
3189
+ var _a, _b, _c, _d;
3190
+ const savedByCode = new Map(((_a = dto.items) !== null && _a !== void 0 ? _a : []).map(v => [v.costItemCode, v]));
3191
+ const items = costItems.map(costItem => {
3192
+ var _a;
3193
+ const saved = savedByCode.get(costItem.code);
3194
+ const isPackaging = costItem.systemCode === CostItemSystemCode.Packaging;
3051
3195
  return {
3052
- typeOptions: types !== null && types !== void 0 ? types : [],
3053
- groupOptions: categoryList.filter(x => x.parentCode === CostParameterCategoryParentCode.Code1),
3054
- regionOptions: categoryList.filter(x => x.parentCode === CostParameterCategoryParentCode.Code4),
3196
+ costItemCode: costItem.code,
3197
+ costItemName: (_a = costItem.name) !== null && _a !== void 0 ? _a : costItem.code,
3198
+ calculationType: costItem.calculationType,
3199
+ systemCode: costItem.systemCode,
3200
+ currency: saved === null || saved === void 0 ? void 0 : saved.currency,
3201
+ value: isPackaging ? 0 : parseDecimal(saved === null || saved === void 0 ? void 0 : saved.value),
3055
3202
  };
3056
- }));
3203
+ });
3204
+ const stage = {
3205
+ groupCode: '',
3206
+ groupName: '',
3207
+ displayOrder: 0,
3208
+ groupRole: CostGroupRole.None,
3209
+ items,
3210
+ };
3211
+ const rateUsd = (_b = dto.exchangeRateUsd) !== null && _b !== void 0 ? _b : 0;
3212
+ const rateEur = (_c = dto.exchangeRateEur) !== null && _c !== void 0 ? _c : 0;
3213
+ const result = calculateCost({
3214
+ rawOilPrice: (_d = dto.rawOilPrice) !== null && _d !== void 0 ? _d : 0,
3215
+ rawOilCurrency: dto.rawOilCurrency,
3216
+ rateUsd,
3217
+ rateEur,
3218
+ stages: [stage],
3219
+ });
3220
+ return {
3221
+ salesPriceExcludingPackagingTry: result.totalSalePrice.try,
3222
+ rateUsd,
3223
+ rateEur,
3224
+ };
3057
3225
  }
3058
3226
  }
3059
- 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 });
3060
- PriceParameterLookupsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterLookupsService, providedIn: 'root' });
3061
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterLookupsService, decorators: [{
3227
+ 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 });
3228
+ PriceParameterPriceUpdateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterPriceUpdateService, providedIn: 'root' });
3229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterPriceUpdateService, decorators: [{
3062
3230
  type: Injectable,
3063
3231
  args: [{ providedIn: 'root' }]
3064
- }], ctorParameters: function () { return [{ type: i1$1.PriceParameterTypeService }, { type: i1$1.CostParameterCategoryService }]; } });
3232
+ }], ctorParameters: function () { return [{ type: i1$1.PriceParameterService }, { type: i1$1.PriceListService }, { type: i1$1.CostItemService }, { type: i6.NgbModal }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
3065
3233
 
3066
3234
  class PriceParametersComponent {
3067
- constructor(service, lookupsService, router, toaster, confirmation) {
3235
+ constructor(service, lookupsService, priceUpdateService, router, toaster, confirmation) {
3068
3236
  this.service = service;
3069
3237
  this.lookupsService = lookupsService;
3238
+ this.priceUpdateService = priceUpdateService;
3070
3239
  this.router = router;
3071
3240
  this.toaster = toaster;
3072
3241
  this.confirmation = confirmation;
3073
3242
  this.items = [];
3074
3243
  this.typeOptions = [];
3075
3244
  this.groupOptions = [];
3076
- this.regionOptions = [];
3077
3245
  }
3078
3246
  ngOnInit() {
3079
3247
  this.load();
@@ -3082,6 +3250,10 @@ class PriceParametersComponent {
3082
3250
  var _a;
3083
3251
  return (_a = statusLabels[value]) !== null && _a !== void 0 ? _a : '';
3084
3252
  }
3253
+ getRegionLabel(value) {
3254
+ var _a;
3255
+ return (_a = businessRegionLabels[value]) !== null && _a !== void 0 ? _a : '';
3256
+ }
3085
3257
  load() {
3086
3258
  forkJoin({
3087
3259
  lookups: this.lookupsService.loadTypeAndCategoryLookups(),
@@ -3089,7 +3261,6 @@ class PriceParametersComponent {
3089
3261
  }).subscribe(({ lookups, items }) => {
3090
3262
  this.typeOptions = lookups.typeOptions;
3091
3263
  this.groupOptions = lookups.groupOptions;
3092
- this.regionOptions = lookups.regionOptions;
3093
3264
  this.items = items;
3094
3265
  });
3095
3266
  }
@@ -3104,6 +3275,9 @@ class PriceParametersComponent {
3104
3275
  openEdit(row) {
3105
3276
  this.router.navigate(['/keops/cost/price-parameters', row.docEntry]);
3106
3277
  }
3278
+ updatePriceList(row) {
3279
+ this.priceUpdateService.updateForDocEntry(row.docEntry).subscribe();
3280
+ }
3107
3281
  remove(row) {
3108
3282
  this.confirmation
3109
3283
  .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')
@@ -3119,12 +3293,12 @@ class PriceParametersComponent {
3119
3293
  });
3120
3294
  }
3121
3295
  }
3122
- 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 });
3123
- 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" }] });
3296
+ 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 });
3297
+ 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" }] });
3124
3298
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParametersComponent, decorators: [{
3125
3299
  type: Component,
3126
- 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" }]
3127
- }], ctorParameters: function () { return [{ type: i1$1.PriceParameterService }, { type: PriceParameterLookupsService }, { type: i1$2.Router }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
3300
+ 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" }]
3301
+ }], ctorParameters: function () { return [{ type: i1$1.PriceParameterService }, { type: PriceParameterLookupsService }, { type: PriceParameterPriceUpdateService }, { type: i1$2.Router }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
3128
3302
 
3129
3303
  class PriceParameterFormDataService {
3130
3304
  constructor(lookupsService, businessPartnerService, costItemService, exchangeRateService, priceParameterService) {
@@ -3146,7 +3320,6 @@ class PriceParameterFormDataService {
3146
3320
  return {
3147
3321
  typeOptions: lookups.typeOptions,
3148
3322
  groupOptions: lookups.groupOptions,
3149
- regionOptions: lookups.regionOptions,
3150
3323
  businessPartnersDataSource: new DataSource({
3151
3324
  store: new ArrayStore({ key: 'cardCode', data: businessPartners !== null && businessPartners !== void 0 ? businessPartners : [] }),
3152
3325
  paginate: true,
@@ -3171,10 +3344,10 @@ class PriceParameterCostMatchService {
3171
3344
  constructor(costParameterService) {
3172
3345
  this.costParameterService = costParameterService;
3173
3346
  }
3174
- findMatch(regionCode, groupCode) {
3347
+ findMatch(region, groupCode) {
3175
3348
  return this.costParameterService
3176
3349
  .getList()
3177
- .pipe(map(list => list.find(x => x.region === regionCode && x.productGroup === groupCode)));
3350
+ .pipe(map(list => list.find(x => x.region === region && x.productGroup === groupCode)));
3178
3351
  }
3179
3352
  }
3180
3353
  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 });
@@ -3210,7 +3383,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
3210
3383
  class PriceParameterPriceListsTabComponent {
3211
3384
  constructor(priceListService) {
3212
3385
  this.priceListService = priceListService;
3213
- this.cpRegionCode = null;
3386
+ this.businessRegion = null;
3214
3387
  this.ppTypeCode = null;
3215
3388
  this.priceLists = [];
3216
3389
  this.loading = false;
@@ -3219,12 +3392,12 @@ class PriceParameterPriceListsTabComponent {
3219
3392
  this.load();
3220
3393
  }
3221
3394
  load() {
3222
- if (!this.cpRegionCode || !this.ppTypeCode) {
3395
+ if (!this.businessRegion || !this.ppTypeCode) {
3223
3396
  this.priceLists = [];
3224
3397
  return;
3225
3398
  }
3226
3399
  this.loading = true;
3227
- this.priceListService.getList(this.cpRegionCode, this.ppTypeCode).subscribe({
3400
+ this.priceListService.getList(this.businessRegion, this.ppTypeCode).subscribe({
3228
3401
  next: list => {
3229
3402
  this.priceLists = list !== null && list !== void 0 ? list : [];
3230
3403
  this.loading = false;
@@ -3234,11 +3407,11 @@ class PriceParameterPriceListsTabComponent {
3234
3407
  }
3235
3408
  }
3236
3409
  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 });
3237
- 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" }] });
3410
+ 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" }] });
3238
3411
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterPriceListsTabComponent, decorators: [{
3239
3412
  type: Component,
3240
3413
  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" }]
3241
- }], ctorParameters: function () { return [{ type: i1$1.PriceListService }]; }, propDecorators: { cpRegionCode: [{
3414
+ }], ctorParameters: function () { return [{ type: i1$1.PriceListService }]; }, propDecorators: { businessRegion: [{
3242
3415
  type: Input
3243
3416
  }], ppTypeCode: [{
3244
3417
  type: Input
@@ -3247,7 +3420,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
3247
3420
  class PriceParameterItemsTabComponent {
3248
3421
  constructor(priceListService) {
3249
3422
  this.priceListService = priceListService;
3250
- this.cpRegionCode = null;
3423
+ this.businessRegion = null;
3251
3424
  this.cpGroupCode = null;
3252
3425
  this.items = [];
3253
3426
  this.loading = false;
@@ -3256,12 +3429,12 @@ class PriceParameterItemsTabComponent {
3256
3429
  this.load();
3257
3430
  }
3258
3431
  load() {
3259
- if (!this.cpRegionCode || !this.cpGroupCode) {
3432
+ if (!this.businessRegion || !this.cpGroupCode) {
3260
3433
  this.items = [];
3261
3434
  return;
3262
3435
  }
3263
3436
  this.loading = true;
3264
- this.priceListService.getItems(this.cpRegionCode, this.cpGroupCode).subscribe({
3437
+ this.priceListService.getItems(this.businessRegion, this.cpGroupCode).subscribe({
3265
3438
  next: items => {
3266
3439
  this.items = items !== null && items !== void 0 ? items : [];
3267
3440
  this.loading = false;
@@ -3271,11 +3444,11 @@ class PriceParameterItemsTabComponent {
3271
3444
  }
3272
3445
  }
3273
3446
  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 });
3274
- 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" }] });
3447
+ 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" }] });
3275
3448
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterItemsTabComponent, decorators: [{
3276
3449
  type: Component,
3277
3450
  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" }]
3278
- }], ctorParameters: function () { return [{ type: i1$1.PriceListService }]; }, propDecorators: { cpRegionCode: [{
3451
+ }], ctorParameters: function () { return [{ type: i1$1.PriceListService }]; }, propDecorators: { businessRegion: [{
3279
3452
  type: Input
3280
3453
  }], cpGroupCode: [{
3281
3454
  type: Input
@@ -3412,7 +3585,7 @@ const statusOptions = [
3412
3585
  ].map(value => ({ value, label: statusLabels[value] }));
3413
3586
  const DEFAULT_DISCOUNT_ROWS = 10;
3414
3587
  class PriceParameterFormComponent {
3415
- constructor(fb, route, router, toaster, service, formDataService, costMatchService, rowsBuilder) {
3588
+ constructor(fb, route, router, toaster, service, formDataService, costMatchService, rowsBuilder, priceUpdateService) {
3416
3589
  this.fb = fb;
3417
3590
  this.route = route;
3418
3591
  this.router = router;
@@ -3421,6 +3594,7 @@ class PriceParameterFormComponent {
3421
3594
  this.formDataService = formDataService;
3422
3595
  this.costMatchService = costMatchService;
3423
3596
  this.rowsBuilder = rowsBuilder;
3597
+ this.priceUpdateService = priceUpdateService;
3424
3598
  this.saving = false;
3425
3599
  this.editMode = false;
3426
3600
  this.docEntry = null;
@@ -3429,19 +3603,22 @@ class PriceParameterFormComponent {
3429
3603
  this.allCostItems = [];
3430
3604
  this.typeOptions = [];
3431
3605
  this.groupOptions = [];
3432
- this.regionOptions = [];
3606
+ this.regionOptions = BUSINESS_REGION_OPTIONS;
3433
3607
  this.autoApplyEnabled = false;
3608
+ this.updatingPrices = false;
3609
+ this.salesPriceExcludingPackagingTry = 0;
3610
+ this.salesPriceExcludingPackagingUsd = 0;
3611
+ this.effectiveRateUsd = 0;
3612
+ this.effectiveRateEur = 0;
3434
3613
  this.systemRateUsd = 0;
3435
3614
  this.systemRateEur = 0;
3436
- this.rateCurrency = Currency.USD;
3437
3615
  this.businessPartnersDataSource = null;
3438
3616
  this.selectedCustomerCode = null;
3439
3617
  this.gekapCurrency = Currency.TRY;
3440
3618
  this.rawOilCurrency = Currency.USD;
3441
- this.salesPriceExcludingPackagingCurrency = Currency.USD;
3442
3619
  this.statusOptions = statusOptions;
3443
3620
  this.currencyOptions = CURRENCY_OPTIONS;
3444
- this.rateCurrencyOptions = CURRENCY_OPTIONS_FX_ONLY;
3621
+ this.tryUsdCurrencyOptions = CURRENCY_OPTIONS_TRY_USD;
3445
3622
  this.customerDisplayExpr = (c) => c ? `${c.cardCode} - ${c.cardName}` : '';
3446
3623
  this.isRate = isRateCostItem;
3447
3624
  this.isCustom = isCustomCostItem;
@@ -3452,9 +3629,10 @@ class PriceParameterFormComponent {
3452
3629
  this.editMode = this.docEntry != null && !Number.isNaN(this.docEntry);
3453
3630
  this.form = this.fb.group({
3454
3631
  typeCode: [null, [Validators.required]],
3455
- regionCode: [null, [Validators.required]],
3632
+ region: [null, [Validators.required]],
3456
3633
  groupCode: [null, [Validators.required]],
3457
- exchangeRate: [0],
3634
+ exchangeRateUsd: [0],
3635
+ exchangeRateEur: [0],
3458
3636
  fromDate: [{ value: null, disabled: this.editMode }, [Validators.required]],
3459
3637
  toDate: [null, [Validators.required]],
3460
3638
  status: [null, [Validators.required]],
@@ -3464,13 +3642,16 @@ class PriceParameterFormComponent {
3464
3642
  generalQuota: [0],
3465
3643
  promotionalQuota: [0],
3466
3644
  rawOilPrice: [0],
3467
- salesPriceExcludingPackaging: [0],
3468
3645
  items: this.fb.array([]),
3469
3646
  discounts: this.fb.array([]),
3470
3647
  });
3471
3648
  this.applyDiscounts(null);
3472
- this.form.get('regionCode').valueChanges.subscribe(() => this.onCombinationChange());
3649
+ this.form.get('region').valueChanges.subscribe(() => this.onCombinationChange());
3473
3650
  this.form.get('groupCode').valueChanges.subscribe(() => this.onCombinationChange());
3651
+ this.form.get('rawOilPrice').valueChanges.subscribe(() => this.recalcSalesPriceExcludingPackaging());
3652
+ this.form.get('exchangeRateUsd').valueChanges.subscribe(() => this.recalcSalesPriceExcludingPackaging());
3653
+ this.form.get('exchangeRateEur').valueChanges.subscribe(() => this.recalcSalesPriceExcludingPackaging());
3654
+ this.itemsArray.valueChanges.subscribe(() => this.recalcSalesPriceExcludingPackaging());
3474
3655
  this.load();
3475
3656
  }
3476
3657
  get itemsArray() {
@@ -3484,9 +3665,9 @@ class PriceParameterFormComponent {
3484
3665
  ? 'Keops::PriceParameters:EditTitle'
3485
3666
  : 'Keops::PriceParameters:CreateTitle';
3486
3667
  }
3487
- get selectedRegionCode() {
3668
+ get selectedRegion() {
3488
3669
  var _a, _b, _c;
3489
- return (_c = (_b = (_a = this.form) === null || _a === void 0 ? void 0 : _a.get('regionCode')) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : null;
3670
+ return (_c = (_b = (_a = this.form) === null || _a === void 0 ? void 0 : _a.get('region')) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : null;
3490
3671
  }
3491
3672
  get selectedTypeCode() {
3492
3673
  var _a, _b, _c;
@@ -3496,21 +3677,16 @@ class PriceParameterFormComponent {
3496
3677
  var _a, _b, _c;
3497
3678
  return (_c = (_b = (_a = this.form) === null || _a === void 0 ? void 0 : _a.get('groupCode')) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : null;
3498
3679
  }
3499
- onRateCurrencyChange() {
3500
- this.form
3501
- .get('exchangeRate')
3502
- .setValue(this.rateCurrency === Currency.EUR ? this.systemRateEur : this.systemRateUsd);
3503
- }
3504
3680
  goBack() {
3505
3681
  this.router.navigate(['/keops/cost/price-parameters']);
3506
3682
  }
3507
- save() {
3683
+ save(andUpdatePriceList = false) {
3508
3684
  if (this.form.invalid) {
3509
3685
  this.form.markAllAsTouched();
3510
3686
  return;
3511
3687
  }
3512
3688
  this.saving = true;
3513
- const input = Object.assign(Object.assign({}, this.form.getRawValue()), { customerCode: this.selectedCustomerCode, gekapCurrency: this.gekapCurrency, rawOilCurrency: this.rawOilCurrency, salesPriceExcludingPackagingCurrency: this.salesPriceExcludingPackagingCurrency, items: this.rowsBuilder.toInput(this.itemsArray), discounts: this.discountsArray.controls
3689
+ const input = Object.assign(Object.assign({}, this.form.getRawValue()), { customerCode: this.selectedCustomerCode, gekapCurrency: this.gekapCurrency, rawOilCurrency: this.rawOilCurrency, items: this.rowsBuilder.toInput(this.itemsArray), discounts: this.discountsArray.controls
3514
3690
  .map(group => group.value)
3515
3691
  .filter(value => value.salesEmployeeCode != null)
3516
3692
  .map(value => ({
@@ -3523,15 +3699,22 @@ class PriceParameterFormComponent {
3523
3699
  request$.pipe(finalize(() => (this.saving = false))).subscribe({
3524
3700
  next: () => {
3525
3701
  this.toaster.success('AbpUi::SuccessfullySaved');
3526
- this.goBack();
3702
+ if (andUpdatePriceList) {
3703
+ this.updatePriceList();
3704
+ }
3705
+ else {
3706
+ this.goBack();
3707
+ }
3527
3708
  },
3528
3709
  });
3529
3710
  }
3711
+ saveAndUpdatePriceList() {
3712
+ this.save(true);
3713
+ }
3530
3714
  load() {
3531
3715
  this.formDataService.load(this.editMode ? this.docEntry : null).subscribe(data => {
3532
3716
  this.typeOptions = data.typeOptions;
3533
3717
  this.groupOptions = data.groupOptions;
3534
- this.regionOptions = data.regionOptions;
3535
3718
  this.businessPartnersDataSource = data.businessPartnersDataSource;
3536
3719
  this.allCostItems = data.costItems;
3537
3720
  this.systemRateUsd = data.systemRateUsd;
@@ -3541,34 +3724,35 @@ class PriceParameterFormComponent {
3541
3724
  this.patchFromCurrent(data.current);
3542
3725
  }
3543
3726
  else {
3727
+ this.form.patchValue({
3728
+ exchangeRateUsd: this.systemRateUsd,
3729
+ exchangeRateEur: this.systemRateEur,
3730
+ });
3544
3731
  this.autoApplyEnabled = true;
3545
- this.onRateCurrencyChange();
3546
3732
  }
3547
3733
  });
3548
3734
  }
3549
3735
  patchFromCurrent(dto) {
3550
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
3736
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
3551
3737
  this.form.patchValue({
3552
3738
  typeCode: (_a = dto.typeCode) !== null && _a !== void 0 ? _a : null,
3553
- regionCode: (_b = dto.regionCode) !== null && _b !== void 0 ? _b : null,
3739
+ region: (_b = dto.region) !== null && _b !== void 0 ? _b : null,
3554
3740
  groupCode: (_c = dto.groupCode) !== null && _c !== void 0 ? _c : null,
3555
- exchangeRate: (_d = dto.exchangeRate) !== null && _d !== void 0 ? _d : 0,
3741
+ exchangeRateUsd: (_d = dto.exchangeRateUsd) !== null && _d !== void 0 ? _d : 0,
3742
+ exchangeRateEur: (_e = dto.exchangeRateEur) !== null && _e !== void 0 ? _e : 0,
3556
3743
  fromDate: this.toDateInput(dto.fromDate),
3557
3744
  toDate: this.toDateInput(dto.toDate),
3558
- status: (_e = dto.status) !== null && _e !== void 0 ? _e : PriceParameterStatus.Active,
3559
- description: (_f = dto.description) !== null && _f !== void 0 ? _f : null,
3560
- customerCode: (_g = dto.customerCode) !== null && _g !== void 0 ? _g : null,
3561
- gekap: (_h = dto.gekap) !== null && _h !== void 0 ? _h : 0,
3562
- generalQuota: (_j = dto.generalQuota) !== null && _j !== void 0 ? _j : 0,
3563
- promotionalQuota: (_k = dto.promotionalQuota) !== null && _k !== void 0 ? _k : 0,
3564
- rawOilPrice: (_l = dto.rawOilPrice) !== null && _l !== void 0 ? _l : 0,
3565
- salesPriceExcludingPackaging: (_m = dto.salesPriceExcludingPackaging) !== null && _m !== void 0 ? _m : 0,
3745
+ status: (_f = dto.status) !== null && _f !== void 0 ? _f : PriceParameterStatus.Active,
3746
+ description: (_g = dto.description) !== null && _g !== void 0 ? _g : null,
3747
+ customerCode: (_h = dto.customerCode) !== null && _h !== void 0 ? _h : null,
3748
+ gekap: (_j = dto.gekap) !== null && _j !== void 0 ? _j : 0,
3749
+ generalQuota: (_k = dto.generalQuota) !== null && _k !== void 0 ? _k : 0,
3750
+ promotionalQuota: (_l = dto.promotionalQuota) !== null && _l !== void 0 ? _l : 0,
3751
+ rawOilPrice: (_m = dto.rawOilPrice) !== null && _m !== void 0 ? _m : 0,
3566
3752
  }, { emitEvent: false });
3567
3753
  this.selectedCustomerCode = (_o = dto.customerCode) !== null && _o !== void 0 ? _o : null;
3568
3754
  this.gekapCurrency = (_p = dto.gekapCurrency) !== null && _p !== void 0 ? _p : Currency.TRY;
3569
3755
  this.rawOilCurrency = (_q = dto.rawOilCurrency) !== null && _q !== void 0 ? _q : Currency.USD;
3570
- this.salesPriceExcludingPackagingCurrency =
3571
- (_r = dto.salesPriceExcludingPackagingCurrency) !== null && _r !== void 0 ? _r : Currency.USD;
3572
3756
  this.applyItems(dto.items);
3573
3757
  this.applyDiscounts(dto.discounts);
3574
3758
  this.autoApplyEnabled = true;
@@ -3593,22 +3777,77 @@ class PriceParameterFormComponent {
3593
3777
  applyItems(source) {
3594
3778
  this.costItems = this.allCostItems;
3595
3779
  this.rowsBuilder.build(this.itemsArray, this.costItems, source);
3780
+ this.recalcSalesPriceExcludingPackaging();
3596
3781
  }
3597
3782
  clearItems() {
3598
3783
  this.costItems = [];
3599
3784
  this.itemsArray.clear();
3785
+ this.recalcSalesPriceExcludingPackaging();
3786
+ }
3787
+ recalcSalesPriceExcludingPackaging() {
3788
+ const items = this.itemsArray.controls.map((control, i) => {
3789
+ var _a, _b;
3790
+ const raw = control.value;
3791
+ const meta = this.costItems[i];
3792
+ const isPackaging = (meta === null || meta === void 0 ? void 0 : meta.systemCode) === CostItemSystemCode.Packaging;
3793
+ return {
3794
+ costItemCode: raw.costItemCode,
3795
+ costItemName: (_a = meta === null || meta === void 0 ? void 0 : meta.name) !== null && _a !== void 0 ? _a : raw.costItemCode,
3796
+ calculationType: raw.calculationType,
3797
+ systemCode: (_b = meta === null || meta === void 0 ? void 0 : meta.systemCode) !== null && _b !== void 0 ? _b : undefined,
3798
+ currency: raw.currency,
3799
+ value: isPackaging ? 0 : parseDecimal(raw.value),
3800
+ };
3801
+ });
3802
+ const stage = {
3803
+ groupCode: '',
3804
+ groupName: '',
3805
+ displayOrder: 0,
3806
+ groupRole: CostGroupRole.None,
3807
+ items,
3808
+ };
3809
+ const rateUsd = parseDecimal(this.form.get('exchangeRateUsd').value);
3810
+ const rateEur = parseDecimal(this.form.get('exchangeRateEur').value);
3811
+ const result = calculateCost({
3812
+ rawOilPrice: parseDecimal(this.form.get('rawOilPrice').value),
3813
+ rawOilCurrency: this.rawOilCurrency,
3814
+ rateUsd,
3815
+ rateEur,
3816
+ stages: [stage],
3817
+ });
3818
+ this.salesPriceExcludingPackagingTry = result.totalSalePrice.try;
3819
+ this.salesPriceExcludingPackagingUsd = result.totalSalePrice.usd;
3820
+ this.effectiveRateUsd = rateUsd;
3821
+ this.effectiveRateEur = rateEur;
3822
+ }
3823
+ updatePriceList() {
3824
+ if (!this.selectedRegion || !this.selectedGroupCode || !this.selectedTypeCode) {
3825
+ return;
3826
+ }
3827
+ this.updatingPrices = true;
3828
+ this.priceUpdateService
3829
+ .updateFromValues({
3830
+ region: this.selectedRegion,
3831
+ groupCode: this.selectedGroupCode,
3832
+ typeCode: this.selectedTypeCode,
3833
+ salesPriceExcludingPackagingTry: this.salesPriceExcludingPackagingTry,
3834
+ rateUsd: this.effectiveRateUsd,
3835
+ rateEur: this.effectiveRateEur,
3836
+ })
3837
+ .pipe(finalize(() => (this.updatingPrices = false)))
3838
+ .subscribe();
3600
3839
  }
3601
3840
  onCombinationChange() {
3602
3841
  if (!this.autoApplyEnabled) {
3603
3842
  return;
3604
3843
  }
3605
- const regionCode = this.form.get('regionCode').value;
3844
+ const region = this.form.get('region').value;
3606
3845
  const groupCode = this.form.get('groupCode').value;
3607
- if (!regionCode || !groupCode) {
3846
+ if (!region || !groupCode) {
3608
3847
  this.clearItems();
3609
3848
  return;
3610
3849
  }
3611
- this.costMatchService.findMatch(regionCode, groupCode).subscribe(match => {
3850
+ this.costMatchService.findMatch(region, groupCode).subscribe(match => {
3612
3851
  if (!match) {
3613
3852
  this.clearItems();
3614
3853
  return;
@@ -3622,14 +3861,14 @@ class PriceParameterFormComponent {
3622
3861
  return value.substring(0, 10);
3623
3862
  }
3624
3863
  }
3625
- 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 });
3626
- 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" }] });
3864
+ 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 });
3865
+ 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" }] });
3627
3866
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PriceParameterFormComponent, decorators: [{
3628
3867
  type: Component,
3629
- 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" }]
3630
- }], 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 }]; } });
3868
+ 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" }]
3869
+ }], 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 }]; } });
3631
3870
 
3632
- const routes$j = [
3871
+ const routes$k = [
3633
3872
  {
3634
3873
  path: '',
3635
3874
  component: PriceParametersComponent,
@@ -3659,11 +3898,11 @@ class HitPriceParametersRoutingModule {
3659
3898
  }
3660
3899
  HitPriceParametersRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParametersRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3661
3900
  HitPriceParametersRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParametersRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
3662
- HitPriceParametersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParametersRoutingModule, imports: [RouterModule.forChild(routes$j), RouterModule] });
3901
+ HitPriceParametersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParametersRoutingModule, imports: [RouterModule.forChild(routes$k), RouterModule] });
3663
3902
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPriceParametersRoutingModule, decorators: [{
3664
3903
  type: NgModule,
3665
3904
  args: [{
3666
- imports: [RouterModule.forChild(routes$j)],
3905
+ imports: [RouterModule.forChild(routes$k)],
3667
3906
  exports: [RouterModule],
3668
3907
  }]
3669
3908
  }] });
@@ -3677,7 +3916,8 @@ HitPriceParametersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0"
3677
3916
  PriceParameterPriceListsTabComponent,
3678
3917
  PriceParameterItemsTabComponent,
3679
3918
  PriceParameterDiscountRatesTabComponent,
3680
- PriceParameterDiscountRatesModalComponent], imports: [CommonModule,
3919
+ PriceParameterDiscountRatesModalComponent,
3920
+ PriceParameterPriceUpdatePreviewModalComponent], imports: [CommonModule,
3681
3921
  FormsModule,
3682
3922
  ReactiveFormsModule,
3683
3923
  CoreModule,
@@ -3718,6 +3958,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
3718
3958
  PriceParameterItemsTabComponent,
3719
3959
  PriceParameterDiscountRatesTabComponent,
3720
3960
  PriceParameterDiscountRatesModalComponent,
3961
+ PriceParameterPriceUpdatePreviewModalComponent,
3721
3962
  ],
3722
3963
  imports: [
3723
3964
  CommonModule,
@@ -3846,7 +4087,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
3846
4087
  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" }]
3847
4088
  }], ctorParameters: function () { return [{ type: i1$1.SapSalesPersonService }, { type: i2$1.IdentityUserService }, { type: i2.ToasterService }]; } });
3848
4089
 
3849
- const routes$i = [
4090
+ const routes$j = [
3850
4091
  {
3851
4092
  path: '',
3852
4093
  component: SapSalesPersonsComponent,
@@ -3860,11 +4101,11 @@ class HitSapSalesPersonsRoutingModule {
3860
4101
  }
3861
4102
  HitSapSalesPersonsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitSapSalesPersonsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3862
4103
  HitSapSalesPersonsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitSapSalesPersonsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
3863
- HitSapSalesPersonsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitSapSalesPersonsRoutingModule, imports: [RouterModule.forChild(routes$i), RouterModule] });
4104
+ HitSapSalesPersonsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitSapSalesPersonsRoutingModule, imports: [RouterModule.forChild(routes$j), RouterModule] });
3864
4105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitSapSalesPersonsRoutingModule, decorators: [{
3865
4106
  type: NgModule,
3866
4107
  args: [{
3867
- imports: [RouterModule.forChild(routes$i)],
4108
+ imports: [RouterModule.forChild(routes$j)],
3868
4109
  exports: [RouterModule],
3869
4110
  }]
3870
4111
  }] });
@@ -4047,7 +4288,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4047
4288
  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" }]
4048
4289
  }], ctorParameters: function () { return [{ type: i1$1.ContainerDefinitionService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
4049
4290
 
4050
- const routes$h = [
4291
+ const routes$i = [
4051
4292
  {
4052
4293
  path: '',
4053
4294
  component: ContainerDefinitionsComponent,
@@ -4061,11 +4302,11 @@ class HitContainerDefinitionsRoutingModule {
4061
4302
  }
4062
4303
  HitContainerDefinitionsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerDefinitionsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4063
4304
  HitContainerDefinitionsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitContainerDefinitionsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
4064
- HitContainerDefinitionsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerDefinitionsRoutingModule, imports: [RouterModule.forChild(routes$h), RouterModule] });
4305
+ HitContainerDefinitionsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerDefinitionsRoutingModule, imports: [RouterModule.forChild(routes$i), RouterModule] });
4065
4306
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerDefinitionsRoutingModule, decorators: [{
4066
4307
  type: NgModule,
4067
4308
  args: [{
4068
- imports: [RouterModule.forChild(routes$h)],
4309
+ imports: [RouterModule.forChild(routes$i)],
4069
4310
  exports: [RouterModule],
4070
4311
  }]
4071
4312
  }] });
@@ -4244,7 +4485,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4244
4485
  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" }]
4245
4486
  }], ctorParameters: function () { return [{ type: i1$1.PalletDefinitionService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
4246
4487
 
4247
- const routes$g = [
4488
+ const routes$h = [
4248
4489
  {
4249
4490
  path: '',
4250
4491
  component: PalletDefinitionsComponent,
@@ -4258,11 +4499,11 @@ class HitPalletDefinitionsRoutingModule {
4258
4499
  }
4259
4500
  HitPalletDefinitionsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPalletDefinitionsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4260
4501
  HitPalletDefinitionsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPalletDefinitionsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
4261
- HitPalletDefinitionsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPalletDefinitionsRoutingModule, imports: [RouterModule.forChild(routes$g), RouterModule] });
4502
+ HitPalletDefinitionsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPalletDefinitionsRoutingModule, imports: [RouterModule.forChild(routes$h), RouterModule] });
4262
4503
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPalletDefinitionsRoutingModule, decorators: [{
4263
4504
  type: NgModule,
4264
4505
  args: [{
4265
- imports: [RouterModule.forChild(routes$g)],
4506
+ imports: [RouterModule.forChild(routes$h)],
4266
4507
  exports: [RouterModule],
4267
4508
  }]
4268
4509
  }] });
@@ -4478,7 +4719,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4478
4719
  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" }]
4479
4720
  }], ctorParameters: function () { return [{ type: i1$1.ContainerPalletCapacityService }, { type: i1$1.ContainerDefinitionService }, { type: i1$1.PalletDefinitionService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
4480
4721
 
4481
- const routes$f = [
4722
+ const routes$g = [
4482
4723
  {
4483
4724
  path: '',
4484
4725
  component: ContainerPalletCapacitiesComponent,
@@ -4492,11 +4733,11 @@ class HitContainerPalletCapacitiesRoutingModule {
4492
4733
  }
4493
4734
  HitContainerPalletCapacitiesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerPalletCapacitiesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4494
4735
  HitContainerPalletCapacitiesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitContainerPalletCapacitiesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
4495
- HitContainerPalletCapacitiesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerPalletCapacitiesRoutingModule, imports: [RouterModule.forChild(routes$f), RouterModule] });
4736
+ HitContainerPalletCapacitiesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerPalletCapacitiesRoutingModule, imports: [RouterModule.forChild(routes$g), RouterModule] });
4496
4737
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerPalletCapacitiesRoutingModule, decorators: [{
4497
4738
  type: NgModule,
4498
4739
  args: [{
4499
- imports: [RouterModule.forChild(routes$f)],
4740
+ imports: [RouterModule.forChild(routes$g)],
4500
4741
  exports: [RouterModule],
4501
4742
  }]
4502
4743
  }] });
@@ -4639,7 +4880,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4639
4880
  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" }]
4640
4881
  }], ctorParameters: function () { return [{ type: i1$1.ContainerLoadingCountService }, { type: i1$1.ContainerDefinitionService }, { type: i1$1.PalletDefinitionService }, { type: i2.ToasterService }]; } });
4641
4882
 
4642
- const routes$e = [
4883
+ const routes$f = [
4643
4884
  {
4644
4885
  path: '',
4645
4886
  component: ContainerLoadingCountsComponent,
@@ -4653,11 +4894,11 @@ class HitContainerLoadingCountsRoutingModule {
4653
4894
  }
4654
4895
  HitContainerLoadingCountsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingCountsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4655
4896
  HitContainerLoadingCountsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingCountsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
4656
- HitContainerLoadingCountsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingCountsRoutingModule, imports: [RouterModule.forChild(routes$e), RouterModule] });
4897
+ HitContainerLoadingCountsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingCountsRoutingModule, imports: [RouterModule.forChild(routes$f), RouterModule] });
4657
4898
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingCountsRoutingModule, decorators: [{
4658
4899
  type: NgModule,
4659
4900
  args: [{
4660
- imports: [RouterModule.forChild(routes$e)],
4901
+ imports: [RouterModule.forChild(routes$f)],
4661
4902
  exports: [RouterModule],
4662
4903
  }]
4663
4904
  }] });
@@ -4807,7 +5048,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4807
5048
  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" }]
4808
5049
  }], 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 }]; } });
4809
5050
 
4810
- const routes$d = [
5051
+ const routes$e = [
4811
5052
  {
4812
5053
  path: '',
4813
5054
  component: ContainerLoadingScenariosComponent,
@@ -4821,11 +5062,11 @@ class HitContainerLoadingScenariosRoutingModule {
4821
5062
  }
4822
5063
  HitContainerLoadingScenariosRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingScenariosRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4823
5064
  HitContainerLoadingScenariosRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingScenariosRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
4824
- HitContainerLoadingScenariosRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingScenariosRoutingModule, imports: [RouterModule.forChild(routes$d), RouterModule] });
5065
+ HitContainerLoadingScenariosRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingScenariosRoutingModule, imports: [RouterModule.forChild(routes$e), RouterModule] });
4825
5066
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerLoadingScenariosRoutingModule, decorators: [{
4826
5067
  type: NgModule,
4827
5068
  args: [{
4828
- imports: [RouterModule.forChild(routes$d)],
5069
+ imports: [RouterModule.forChild(routes$e)],
4829
5070
  exports: [RouterModule],
4830
5071
  }]
4831
5072
  }] });
@@ -4996,7 +5237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
4996
5237
  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" }]
4997
5238
  }], ctorParameters: function () { return [{ type: i1$1.ContainerMixTypeService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
4998
5239
 
4999
- const routes$c = [
5240
+ const routes$d = [
5000
5241
  {
5001
5242
  path: '',
5002
5243
  component: ContainerMixTypesComponent,
@@ -5010,11 +5251,11 @@ class HitContainerMixTypesRoutingModule {
5010
5251
  }
5011
5252
  HitContainerMixTypesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerMixTypesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5012
5253
  HitContainerMixTypesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitContainerMixTypesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
5013
- HitContainerMixTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerMixTypesRoutingModule, imports: [RouterModule.forChild(routes$c), RouterModule] });
5254
+ HitContainerMixTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerMixTypesRoutingModule, imports: [RouterModule.forChild(routes$d), RouterModule] });
5014
5255
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitContainerMixTypesRoutingModule, decorators: [{
5015
5256
  type: NgModule,
5016
5257
  args: [{
5017
- imports: [RouterModule.forChild(routes$c)],
5258
+ imports: [RouterModule.forChild(routes$d)],
5018
5259
  exports: [RouterModule],
5019
5260
  }]
5020
5261
  }] });
@@ -5439,7 +5680,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5439
5680
  type: Output
5440
5681
  }] } });
5441
5682
 
5442
- const routes$b = [
5683
+ const routes$c = [
5443
5684
  {
5444
5685
  path: '',
5445
5686
  component: FreightOffersComponent,
@@ -5453,11 +5694,11 @@ class HitFreightOffersRoutingModule {
5453
5694
  }
5454
5695
  HitFreightOffersRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFreightOffersRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5455
5696
  HitFreightOffersRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitFreightOffersRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
5456
- HitFreightOffersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFreightOffersRoutingModule, imports: [RouterModule.forChild(routes$b), RouterModule] });
5697
+ HitFreightOffersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFreightOffersRoutingModule, imports: [RouterModule.forChild(routes$c), RouterModule] });
5457
5698
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFreightOffersRoutingModule, decorators: [{
5458
5699
  type: NgModule,
5459
5700
  args: [{
5460
- imports: [RouterModule.forChild(routes$b)],
5701
+ imports: [RouterModule.forChild(routes$c)],
5461
5702
  exports: [RouterModule],
5462
5703
  }]
5463
5704
  }] });
@@ -5637,7 +5878,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5637
5878
  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" }]
5638
5879
  }], ctorParameters: function () { return [{ type: i1$1.BlTrackingService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
5639
5880
 
5640
- const routes$a = [
5881
+ const routes$b = [
5641
5882
  {
5642
5883
  path: '',
5643
5884
  component: BlTrackingComponent,
@@ -5651,11 +5892,11 @@ class HitBlTrackingRoutingModule {
5651
5892
  }
5652
5893
  HitBlTrackingRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBlTrackingRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5653
5894
  HitBlTrackingRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitBlTrackingRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
5654
- HitBlTrackingRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBlTrackingRoutingModule, imports: [RouterModule.forChild(routes$a), RouterModule] });
5895
+ HitBlTrackingRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBlTrackingRoutingModule, imports: [RouterModule.forChild(routes$b), RouterModule] });
5655
5896
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBlTrackingRoutingModule, decorators: [{
5656
5897
  type: NgModule,
5657
5898
  args: [{
5658
- imports: [RouterModule.forChild(routes$a)],
5899
+ imports: [RouterModule.forChild(routes$b)],
5659
5900
  exports: [RouterModule],
5660
5901
  }]
5661
5902
  }] });
@@ -5830,7 +6071,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
5830
6071
  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" }]
5831
6072
  }], ctorParameters: function () { return [{ type: i1$1.FobInlandDefinitionService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
5832
6073
 
5833
- const routes$9 = [
6074
+ const routes$a = [
5834
6075
  {
5835
6076
  path: '',
5836
6077
  component: FobInlandDefinitionsComponent,
@@ -5844,11 +6085,11 @@ class HitFobInlandDefinitionsRoutingModule {
5844
6085
  }
5845
6086
  HitFobInlandDefinitionsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFobInlandDefinitionsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5846
6087
  HitFobInlandDefinitionsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitFobInlandDefinitionsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
5847
- HitFobInlandDefinitionsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFobInlandDefinitionsRoutingModule, imports: [RouterModule.forChild(routes$9), RouterModule] });
6088
+ HitFobInlandDefinitionsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFobInlandDefinitionsRoutingModule, imports: [RouterModule.forChild(routes$a), RouterModule] });
5848
6089
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFobInlandDefinitionsRoutingModule, decorators: [{
5849
6090
  type: NgModule,
5850
6091
  args: [{
5851
- imports: [RouterModule.forChild(routes$9)],
6092
+ imports: [RouterModule.forChild(routes$a)],
5852
6093
  exports: [RouterModule],
5853
6094
  }]
5854
6095
  }] });
@@ -6024,7 +6265,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6024
6265
  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" }]
6025
6266
  }], ctorParameters: function () { return [{ type: i1$1.IncotermService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
6026
6267
 
6027
- const routes$8 = [
6268
+ const routes$9 = [
6028
6269
  {
6029
6270
  path: '',
6030
6271
  component: IncotermsComponent,
@@ -6038,11 +6279,11 @@ class HitIncotermsRoutingModule {
6038
6279
  }
6039
6280
  HitIncotermsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIncotermsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6040
6281
  HitIncotermsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitIncotermsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
6041
- HitIncotermsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIncotermsRoutingModule, imports: [RouterModule.forChild(routes$8), RouterModule] });
6282
+ HitIncotermsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIncotermsRoutingModule, imports: [RouterModule.forChild(routes$9), RouterModule] });
6042
6283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIncotermsRoutingModule, decorators: [{
6043
6284
  type: NgModule,
6044
6285
  args: [{
6045
- imports: [RouterModule.forChild(routes$8)],
6286
+ imports: [RouterModule.forChild(routes$9)],
6046
6287
  exports: [RouterModule],
6047
6288
  }]
6048
6289
  }] });
@@ -6216,7 +6457,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6216
6457
  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" }]
6217
6458
  }], ctorParameters: function () { return [{ type: i1$1.CarrierService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
6218
6459
 
6219
- const routes$7 = [
6460
+ const routes$8 = [
6220
6461
  {
6221
6462
  path: '',
6222
6463
  component: CarriersComponent,
@@ -6230,11 +6471,11 @@ class HitCarriersRoutingModule {
6230
6471
  }
6231
6472
  HitCarriersRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCarriersRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6232
6473
  HitCarriersRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitCarriersRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
6233
- HitCarriersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCarriersRoutingModule, imports: [RouterModule.forChild(routes$7), RouterModule] });
6474
+ HitCarriersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCarriersRoutingModule, imports: [RouterModule.forChild(routes$8), RouterModule] });
6234
6475
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCarriersRoutingModule, decorators: [{
6235
6476
  type: NgModule,
6236
6477
  args: [{
6237
- imports: [RouterModule.forChild(routes$7)],
6478
+ imports: [RouterModule.forChild(routes$8)],
6238
6479
  exports: [RouterModule],
6239
6480
  }]
6240
6481
  }] });
@@ -6408,7 +6649,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6408
6649
  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" }]
6409
6650
  }], ctorParameters: function () { return [{ type: i1$1.LineService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
6410
6651
 
6411
- const routes$6 = [
6652
+ const routes$7 = [
6412
6653
  {
6413
6654
  path: '',
6414
6655
  component: LinesComponent,
@@ -6422,11 +6663,11 @@ class HitLinesRoutingModule {
6422
6663
  }
6423
6664
  HitLinesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitLinesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6424
6665
  HitLinesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitLinesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
6425
- HitLinesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitLinesRoutingModule, imports: [RouterModule.forChild(routes$6), RouterModule] });
6666
+ HitLinesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitLinesRoutingModule, imports: [RouterModule.forChild(routes$7), RouterModule] });
6426
6667
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitLinesRoutingModule, decorators: [{
6427
6668
  type: NgModule,
6428
6669
  args: [{
6429
- imports: [RouterModule.forChild(routes$6)],
6670
+ imports: [RouterModule.forChild(routes$7)],
6430
6671
  exports: [RouterModule],
6431
6672
  }]
6432
6673
  }] });
@@ -6598,7 +6839,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6598
6839
  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" }]
6599
6840
  }], ctorParameters: function () { return [{ type: i1$1.PosService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
6600
6841
 
6601
- const routes$5 = [
6842
+ const routes$6 = [
6602
6843
  {
6603
6844
  path: '',
6604
6845
  component: PosComponent,
@@ -6612,11 +6853,11 @@ class HitPosRoutingModule {
6612
6853
  }
6613
6854
  HitPosRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPosRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6614
6855
  HitPosRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitPosRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
6615
- HitPosRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPosRoutingModule, imports: [RouterModule.forChild(routes$5), RouterModule] });
6856
+ HitPosRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPosRoutingModule, imports: [RouterModule.forChild(routes$6), RouterModule] });
6616
6857
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPosRoutingModule, decorators: [{
6617
6858
  type: NgModule,
6618
6859
  args: [{
6619
- imports: [RouterModule.forChild(routes$5)],
6860
+ imports: [RouterModule.forChild(routes$6)],
6620
6861
  exports: [RouterModule],
6621
6862
  }]
6622
6863
  }] });
@@ -6806,7 +7047,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6806
7047
  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" }]
6807
7048
  }], ctorParameters: function () { return [{ type: i1$1.DestinationPortService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
6808
7049
 
6809
- const routes$4 = [
7050
+ const routes$5 = [
6810
7051
  {
6811
7052
  path: '',
6812
7053
  component: DestinationPortsComponent,
@@ -6820,11 +7061,11 @@ class HitDestinationPortsRoutingModule {
6820
7061
  }
6821
7062
  HitDestinationPortsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDestinationPortsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6822
7063
  HitDestinationPortsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitDestinationPortsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
6823
- HitDestinationPortsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDestinationPortsRoutingModule, imports: [RouterModule.forChild(routes$4), RouterModule] });
7064
+ HitDestinationPortsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDestinationPortsRoutingModule, imports: [RouterModule.forChild(routes$5), RouterModule] });
6824
7065
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDestinationPortsRoutingModule, decorators: [{
6825
7066
  type: NgModule,
6826
7067
  args: [{
6827
- imports: [RouterModule.forChild(routes$4)],
7068
+ imports: [RouterModule.forChild(routes$5)],
6828
7069
  exports: [RouterModule],
6829
7070
  }]
6830
7071
  }] });
@@ -7001,7 +7242,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
7001
7242
  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" }]
7002
7243
  }], ctorParameters: function () { return [{ type: i1$1.ItemPackageTypeService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
7003
7244
 
7004
- const routes$3 = [
7245
+ const routes$4 = [
7005
7246
  {
7006
7247
  path: '',
7007
7248
  component: ItemPackageTypesComponent,
@@ -7015,11 +7256,11 @@ class HitItemPackageTypesRoutingModule {
7015
7256
  }
7016
7257
  HitItemPackageTypesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageTypesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7017
7258
  HitItemPackageTypesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageTypesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
7018
- HitItemPackageTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageTypesRoutingModule, imports: [RouterModule.forChild(routes$3), RouterModule] });
7259
+ HitItemPackageTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageTypesRoutingModule, imports: [RouterModule.forChild(routes$4), RouterModule] });
7019
7260
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageTypesRoutingModule, decorators: [{
7020
7261
  type: NgModule,
7021
7262
  args: [{
7022
- imports: [RouterModule.forChild(routes$3)],
7263
+ imports: [RouterModule.forChild(routes$4)],
7023
7264
  exports: [RouterModule],
7024
7265
  }]
7025
7266
  }] });
@@ -7196,7 +7437,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
7196
7437
  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" }]
7197
7438
  }], ctorParameters: function () { return [{ type: i1$1.ItemPackageGroupService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
7198
7439
 
7199
- const routes$2 = [
7440
+ const routes$3 = [
7200
7441
  {
7201
7442
  path: '',
7202
7443
  component: ItemPackageGroupsComponent,
@@ -7210,11 +7451,11 @@ class HitItemPackageGroupsRoutingModule {
7210
7451
  }
7211
7452
  HitItemPackageGroupsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageGroupsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7212
7453
  HitItemPackageGroupsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageGroupsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
7213
- HitItemPackageGroupsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageGroupsRoutingModule, imports: [RouterModule.forChild(routes$2), RouterModule] });
7454
+ HitItemPackageGroupsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageGroupsRoutingModule, imports: [RouterModule.forChild(routes$3), RouterModule] });
7214
7455
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemPackageGroupsRoutingModule, decorators: [{
7215
7456
  type: NgModule,
7216
7457
  args: [{
7217
- imports: [RouterModule.forChild(routes$2)],
7458
+ imports: [RouterModule.forChild(routes$3)],
7218
7459
  exports: [RouterModule],
7219
7460
  }]
7220
7461
  }] });
@@ -7391,7 +7632,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
7391
7632
  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" }]
7392
7633
  }], ctorParameters: function () { return [{ type: i1$1.ItemProductTypeService }, { type: i2.ToasterService }, { type: i2.ConfirmationService }]; } });
7393
7634
 
7394
- const routes$1 = [
7635
+ const routes$2 = [
7395
7636
  {
7396
7637
  path: '',
7397
7638
  component: ItemProductTypesComponent,
@@ -7405,11 +7646,11 @@ class HitItemProductTypesRoutingModule {
7405
7646
  }
7406
7647
  HitItemProductTypesRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemProductTypesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7407
7648
  HitItemProductTypesRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitItemProductTypesRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
7408
- HitItemProductTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemProductTypesRoutingModule, imports: [RouterModule.forChild(routes$1), RouterModule] });
7649
+ HitItemProductTypesRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemProductTypesRoutingModule, imports: [RouterModule.forChild(routes$2), RouterModule] });
7409
7650
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemProductTypesRoutingModule, decorators: [{
7410
7651
  type: NgModule,
7411
7652
  args: [{
7412
- imports: [RouterModule.forChild(routes$1)],
7653
+ imports: [RouterModule.forChild(routes$2)],
7413
7654
  exports: [RouterModule],
7414
7655
  }]
7415
7656
  }] });
@@ -7459,6 +7700,268 @@ function loadHitItemProductTypesModuleAsChild() {
7459
7700
  return Promise.resolve(HitItemProductTypesModule);
7460
7701
  }
7461
7702
 
7703
+ class ItemClassificationsComponent {
7704
+ constructor(service, itemPackageTypeService, itemPackageGroupService, itemProductTypeService, toaster, localization) {
7705
+ this.service = service;
7706
+ this.itemPackageTypeService = itemPackageTypeService;
7707
+ this.itemPackageGroupService = itemPackageGroupService;
7708
+ this.itemProductTypeService = itemProductTypeService;
7709
+ this.toaster = toaster;
7710
+ this.localization = localization;
7711
+ this.kinds = [
7712
+ { labelKey: 'Keops::ItemClassifications:Kind:PackagingMaterials', prefix: '04' },
7713
+ { labelKey: 'Keops::ItemClassifications:Kind:TradeGoods', prefix: '05' },
7714
+ ];
7715
+ this.selectedPrefix = '';
7716
+ this.loading = false;
7717
+ this.saving = false;
7718
+ this.saveProgress = { processed: 0, total: 0 };
7719
+ this.rows = [];
7720
+ this.packageTypes = [];
7721
+ this.packageGroups = [];
7722
+ this.productTypes = [];
7723
+ this.regions = [];
7724
+ this.costGroups = [];
7725
+ this.packagingMaterials = [];
7726
+ this.changes = [];
7727
+ this.selectedKeys = [];
7728
+ // Toplu doldur panel değerleri
7729
+ this.bulkPaketTuru = null;
7730
+ this.bulkPaketGrubu = null;
7731
+ this.bulkUrunTipi = null;
7732
+ this.bulkRegion = null;
7733
+ this.bulkCostGroup = null;
7734
+ this.bulkPckMat = null;
7735
+ this.regions = BUSINESS_REGION_OPTIONS.map(option => ({
7736
+ value: option.value,
7737
+ name: this.localization.instant(option.label),
7738
+ }));
7739
+ }
7740
+ ngOnDestroy() {
7741
+ var _a;
7742
+ (_a = this.saveSub) === null || _a === void 0 ? void 0 : _a.unsubscribe();
7743
+ }
7744
+ get hasKind() {
7745
+ return !!this.selectedPrefix;
7746
+ }
7747
+ onKindChange() {
7748
+ this.rows = [];
7749
+ if (this.selectedPrefix) {
7750
+ this.load();
7751
+ }
7752
+ else {
7753
+ this.resetState();
7754
+ }
7755
+ }
7756
+ load(selectAfter = []) {
7757
+ this.loading = true;
7758
+ forkJoin({
7759
+ rows: this.service.getList(this.selectedPrefix),
7760
+ packageTypes: this.itemPackageTypeService.getList(),
7761
+ packageGroups: this.itemPackageGroupService.getList(),
7762
+ productTypes: this.itemProductTypeService.getList(),
7763
+ costCategories: this.service.getCostCategories(),
7764
+ packagingMaterials: this.service.getPackagingMaterials(),
7765
+ })
7766
+ .pipe(finalize(() => (this.loading = false)))
7767
+ .subscribe(({ rows, packageTypes, packageGroups, productTypes, costCategories, packagingMaterials }) => {
7768
+ this.rows = rows;
7769
+ this.packageTypes = packageTypes.filter(x => x.isActive);
7770
+ this.packageGroups = packageGroups.filter(x => x.isActive);
7771
+ this.productTypes = productTypes.filter(x => x.isActive);
7772
+ this.costGroups = costCategories;
7773
+ this.packagingMaterials = packagingMaterials;
7774
+ this.resetState();
7775
+ this.selectedKeys = selectAfter;
7776
+ });
7777
+ }
7778
+ resetState() {
7779
+ this.changes = [];
7780
+ this.selectedKeys = [];
7781
+ this.bulkPaketTuru = null;
7782
+ this.bulkPaketGrubu = null;
7783
+ this.bulkUrunTipi = null;
7784
+ this.bulkRegion = null;
7785
+ this.bulkCostGroup = null;
7786
+ this.bulkPckMat = null;
7787
+ }
7788
+ /** Grid'in yerleşik batch "kaydet/geri al" (disk/revert) düğmelerini gizler. */
7789
+ onToolbarPreparing(e) {
7790
+ var _a;
7791
+ const items = (_a = e === null || e === void 0 ? void 0 : e.toolbarOptions) === null || _a === void 0 ? void 0 : _a.items;
7792
+ if (Array.isArray(items)) {
7793
+ e.toolbarOptions.items = items.filter((i) => i.name !== 'saveButton' && i.name !== 'revertButton');
7794
+ }
7795
+ }
7796
+ applyBulk() {
7797
+ if (!this.selectedKeys.length) {
7798
+ return;
7799
+ }
7800
+ if (this.bulkPaketTuru) {
7801
+ this.applyValueToSelected('paketTuruCode', this.bulkPaketTuru);
7802
+ }
7803
+ if (this.bulkPaketGrubu) {
7804
+ this.applyValueToSelected('paketGrubuCode', this.bulkPaketGrubu);
7805
+ }
7806
+ if (this.bulkUrunTipi) {
7807
+ this.applyValueToSelected('urunTipiCode', this.bulkUrunTipi);
7808
+ }
7809
+ if (this.bulkRegion) {
7810
+ this.applyValueToSelected('region', this.bulkRegion);
7811
+ }
7812
+ if (this.bulkCostGroup) {
7813
+ this.applyValueToSelected('costGroupCode', this.bulkCostGroup);
7814
+ }
7815
+ if (this.bulkPckMat) {
7816
+ this.applyValueToSelected('pckMatCode', this.bulkPckMat);
7817
+ }
7818
+ }
7819
+ /** Seçili satırların ilgili kolonuna değeri batch-change olarak yazar (sayfadan bağımsız, key bazlı). */
7820
+ applyValueToSelected(field, value) {
7821
+ const next = this.changes.map(c => (Object.assign(Object.assign({}, c), { data: Object.assign({}, c.data) })));
7822
+ for (const key of this.selectedKeys) {
7823
+ let change = next.find(c => c.type === 'update' && c.key === key);
7824
+ if (!change) {
7825
+ change = { type: 'update', key, data: {} };
7826
+ next.push(change);
7827
+ }
7828
+ change.data[field] = value;
7829
+ }
7830
+ this.changes = next;
7831
+ }
7832
+ save() {
7833
+ const updates = this.changes.filter(c => c.type === 'update');
7834
+ if (updates.length === 0 || this.saving) {
7835
+ return;
7836
+ }
7837
+ const byKey = new Map(this.rows.map(r => [r.itemCode, r]));
7838
+ const input = updates.map(change => {
7839
+ var _a, _b, _c, _d, _e, _f;
7840
+ const merged = Object.assign(Object.assign({}, ((_a = byKey.get(change.key)) !== null && _a !== void 0 ? _a : {})), change.data);
7841
+ return {
7842
+ itemCode: change.key,
7843
+ paketTuruCode: (_b = merged.paketTuruCode) !== null && _b !== void 0 ? _b : '',
7844
+ paketGrubuCode: (_c = merged.paketGrubuCode) !== null && _c !== void 0 ? _c : '',
7845
+ urunTipiCode: (_d = merged.urunTipiCode) !== null && _d !== void 0 ? _d : '',
7846
+ region: merged.region,
7847
+ costGroupCode: (_e = merged.costGroupCode) !== null && _e !== void 0 ? _e : '',
7848
+ pckMatCode: (_f = merged.pckMatCode) !== null && _f !== void 0 ? _f : '',
7849
+ };
7850
+ });
7851
+ this.saving = true;
7852
+ this.saveProgress = { processed: 0, total: input.length };
7853
+ this.service.startSave(input).subscribe({
7854
+ next: jobId => this.pollStatus(jobId),
7855
+ error: () => (this.saving = false),
7856
+ });
7857
+ }
7858
+ pollStatus(jobId) {
7859
+ var _a;
7860
+ (_a = this.saveSub) === null || _a === void 0 ? void 0 : _a.unsubscribe();
7861
+ this.saveSub = timer(0, 1500)
7862
+ .pipe(switchMap(() => this.service.getSaveStatus(jobId)), takeWhile(status => !status.completed, true))
7863
+ .subscribe({
7864
+ next: status => {
7865
+ this.saveProgress = { processed: status.processed, total: status.total };
7866
+ if (status.completed) {
7867
+ this.onSaveCompleted(status);
7868
+ }
7869
+ },
7870
+ error: () => (this.saving = false),
7871
+ });
7872
+ }
7873
+ onSaveCompleted(status) {
7874
+ var _a;
7875
+ this.saving = false;
7876
+ const failed = (_a = status.failed) !== null && _a !== void 0 ? _a : [];
7877
+ if (failed.length === 0) {
7878
+ this.toaster.success(this.localization.instant('Keops::ItemClassifications:SaveDoneAll', `${status.succeeded}`));
7879
+ }
7880
+ else {
7881
+ this.toaster.warn(this.localization.instant('Keops::ItemClassifications:SavePartial', `${status.succeeded}`, `${failed.length}`));
7882
+ }
7883
+ const failedKeys = failed.map(f => f.itemCode).filter(Boolean);
7884
+ this.load(failedKeys);
7885
+ }
7886
+ }
7887
+ 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 });
7888
+ 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" }] });
7889
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ItemClassificationsComponent, decorators: [{
7890
+ type: Component,
7891
+ 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" }]
7892
+ }], 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 }]; } });
7893
+
7894
+ const routes$1 = [
7895
+ {
7896
+ path: '',
7897
+ component: ItemClassificationsComponent,
7898
+ canActivate: [AuthGuard, PermissionGuard],
7899
+ data: {
7900
+ requiredPolicy: 'KeopsItemMasterData.ItemClassifications',
7901
+ },
7902
+ },
7903
+ ];
7904
+ class HitItemClassificationsRoutingModule {
7905
+ }
7906
+ HitItemClassificationsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7907
+ HitItemClassificationsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] });
7908
+ HitItemClassificationsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsRoutingModule, imports: [RouterModule.forChild(routes$1), RouterModule] });
7909
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsRoutingModule, decorators: [{
7910
+ type: NgModule,
7911
+ args: [{
7912
+ imports: [RouterModule.forChild(routes$1)],
7913
+ exports: [RouterModule],
7914
+ }]
7915
+ }] });
7916
+
7917
+ class HitItemClassificationsModule {
7918
+ }
7919
+ HitItemClassificationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7920
+ HitItemClassificationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsModule, declarations: [ItemClassificationsComponent], imports: [CommonModule,
7921
+ FormsModule,
7922
+ ReactiveFormsModule,
7923
+ CoreModule,
7924
+ ThemeSharedModule,
7925
+ PageModule,
7926
+ CommercialUiModule,
7927
+ NgbDropdownModule,
7928
+ HitItemClassificationsRoutingModule,
7929
+ DxDataGridModule,
7930
+ DxSelectBoxModule] });
7931
+ HitItemClassificationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsModule, imports: [CommonModule,
7932
+ FormsModule,
7933
+ ReactiveFormsModule,
7934
+ CoreModule,
7935
+ ThemeSharedModule,
7936
+ PageModule,
7937
+ CommercialUiModule,
7938
+ NgbDropdownModule,
7939
+ HitItemClassificationsRoutingModule,
7940
+ DxDataGridModule,
7941
+ DxSelectBoxModule] });
7942
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitItemClassificationsModule, decorators: [{
7943
+ type: NgModule,
7944
+ args: [{
7945
+ declarations: [ItemClassificationsComponent],
7946
+ imports: [
7947
+ CommonModule,
7948
+ FormsModule,
7949
+ ReactiveFormsModule,
7950
+ CoreModule,
7951
+ ThemeSharedModule,
7952
+ PageModule,
7953
+ CommercialUiModule,
7954
+ NgbDropdownModule,
7955
+ HitItemClassificationsRoutingModule,
7956
+ DxDataGridModule,
7957
+ DxSelectBoxModule,
7958
+ ],
7959
+ }]
7960
+ }] });
7961
+ function loadHitItemClassificationsModuleAsChild() {
7962
+ return Promise.resolve(HitItemClassificationsModule);
7963
+ }
7964
+
7462
7965
  const routes = [
7463
7966
  { path: 'cost/calculation', loadChildren: loadHitCostCalculationModuleAsChild },
7464
7967
  { path: 'system/exchange-rates', loadChildren: loadHitExchangeRatesModuleAsChild },
@@ -7489,6 +7992,7 @@ const routes = [
7489
7992
  { path: 'item-master-data/item-package-types', loadChildren: loadHitItemPackageTypesModuleAsChild },
7490
7993
  { path: 'item-master-data/item-package-groups', loadChildren: loadHitItemPackageGroupsModuleAsChild },
7491
7994
  { path: 'item-master-data/item-product-types', loadChildren: loadHitItemProductTypesModuleAsChild },
7995
+ { path: 'item-master-data/item-classifications', loadChildren: loadHitItemClassificationsModuleAsChild },
7492
7996
  ];
7493
7997
  class KadoogluKeopsRoutingModule {
7494
7998
  }
@@ -7556,9 +8060,13 @@ class CostSettingsComponent {
7556
8060
  ngOnInit() {
7557
8061
  this.form = this.fb.group({
7558
8062
  itemPackagePriceListNo: [0, [Validators.required, Validators.min(1)]],
8063
+ itemPackageCodePrefix: ['', Validators.required],
7559
8064
  });
7560
8065
  this.service.get().subscribe(dto => {
7561
- this.form.patchValue({ itemPackagePriceListNo: dto.itemPackagePriceListNo });
8066
+ this.form.patchValue({
8067
+ itemPackagePriceListNo: dto.itemPackagePriceListNo,
8068
+ itemPackageCodePrefix: dto.itemPackageCodePrefix,
8069
+ });
7562
8070
  });
7563
8071
  }
7564
8072
  save() {
@@ -7577,10 +8085,10 @@ class CostSettingsComponent {
7577
8085
  }
7578
8086
  }
7579
8087
  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 });
7580
- 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"] }] });
8088
+ 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"] }] });
7581
8089
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CostSettingsComponent, decorators: [{
7582
8090
  type: Component,
7583
- 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" }]
8091
+ 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" }]
7584
8092
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i1$1.CostSettingsService }, { type: i2.ToasterService }]; } });
7585
8093
 
7586
8094
  // exchange-rates