@hitsoft/kadooglu-keops 0.0.2 → 0.0.3
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.
- package/config/enums/route-names.d.ts +15 -1
- package/esm2020/config/enums/route-names.mjs +1 -1
- package/esm2020/config/providers/route.provider.mjs +132 -4
- package/esm2020/lib/features/bl-tracking/components/bl-tracking-form.component.mjs +82 -0
- package/esm2020/lib/features/bl-tracking/components/bl-tracking.component.mjs +65 -0
- package/esm2020/lib/features/bl-tracking/hit-bl-tracking-routing.module.mjs +29 -0
- package/esm2020/lib/features/bl-tracking/hit-bl-tracking.module.mjs +58 -0
- package/esm2020/lib/features/carriers/components/carrier-form.component.mjs +78 -0
- package/esm2020/lib/features/carriers/components/carriers.component.mjs +66 -0
- package/esm2020/lib/features/carriers/hit-carriers-routing.module.mjs +29 -0
- package/esm2020/lib/features/carriers/hit-carriers.module.mjs +58 -0
- package/esm2020/lib/features/container-loading-counts/components/container-loading-counts.component.mjs +2 -2
- package/esm2020/lib/features/container-pallet-capacities/components/container-pallet-capacities.component.mjs +6 -5
- package/esm2020/lib/features/cost-calculation/components/cost-calculation-inputs.component.mjs +8 -6
- package/esm2020/lib/features/cost-calculation/components/cost-calculation.component.mjs +14 -18
- package/esm2020/lib/features/cost-calculation/engine/stage-builder.mjs +4 -3
- package/esm2020/lib/features/cost-calculation/hit-cost-calculation.module.mjs +7 -3
- package/esm2020/lib/features/cost-parameter-categories/cost-parameter-category-l10n-helper.mjs +1 -4
- package/esm2020/lib/features/cost-parameters/components/cost-parameter-form.component.mjs +19 -35
- package/esm2020/lib/features/cost-parameters/components/cost-parameters.component.mjs +17 -10
- package/esm2020/lib/features/destination-ports/components/destination-port-form.component.mjs +86 -0
- package/esm2020/lib/features/destination-ports/components/destination-ports.component.mjs +74 -0
- package/esm2020/lib/features/destination-ports/hit-destination-ports-routing.module.mjs +29 -0
- package/esm2020/lib/features/destination-ports/hit-destination-ports.module.mjs +58 -0
- package/esm2020/lib/features/fob-inland-definitions/components/fob-inland-definition-form.component.mjs +80 -0
- package/esm2020/lib/features/fob-inland-definitions/components/fob-inland-definitions.component.mjs +65 -0
- package/esm2020/lib/features/fob-inland-definitions/hit-fob-inland-definitions-routing.module.mjs +29 -0
- package/esm2020/lib/features/fob-inland-definitions/hit-fob-inland-definitions.module.mjs +58 -0
- package/esm2020/lib/features/freight-offers/components/freight-offer-copy.component.mjs +67 -0
- package/esm2020/lib/features/freight-offers/components/freight-offer-form.component.mjs +181 -0
- package/esm2020/lib/features/freight-offers/components/freight-offers.component.mjs +159 -0
- package/esm2020/lib/features/freight-offers/hit-freight-offers-routing.module.mjs +29 -0
- package/esm2020/lib/features/freight-offers/hit-freight-offers.module.mjs +62 -0
- package/esm2020/lib/features/incoterms/components/incoterm-form.component.mjs +81 -0
- package/esm2020/lib/features/incoterms/components/incoterms.component.mjs +65 -0
- package/esm2020/lib/features/incoterms/hit-incoterms-routing.module.mjs +29 -0
- package/esm2020/lib/features/incoterms/hit-incoterms.module.mjs +58 -0
- package/esm2020/lib/features/index.mjs +29 -1
- package/esm2020/lib/features/item-package-groups/components/item-package-group-form.component.mjs +78 -0
- package/esm2020/lib/features/item-package-groups/components/item-package-groups.component.mjs +69 -0
- package/esm2020/lib/features/item-package-groups/hit-item-package-groups-routing.module.mjs +29 -0
- package/esm2020/lib/features/item-package-groups/hit-item-package-groups.module.mjs +58 -0
- package/esm2020/lib/features/item-package-types/components/item-package-type-form.component.mjs +78 -0
- package/esm2020/lib/features/item-package-types/components/item-package-types.component.mjs +69 -0
- package/esm2020/lib/features/item-package-types/hit-item-package-types-routing.module.mjs +29 -0
- package/esm2020/lib/features/item-package-types/hit-item-package-types.module.mjs +58 -0
- package/esm2020/lib/features/item-product-types/components/item-product-type-form.component.mjs +78 -0
- package/esm2020/lib/features/item-product-types/components/item-product-types.component.mjs +69 -0
- package/esm2020/lib/features/item-product-types/hit-item-product-types-routing.module.mjs +29 -0
- package/esm2020/lib/features/item-product-types/hit-item-product-types.module.mjs +58 -0
- package/esm2020/lib/features/lines/components/line-form.component.mjs +78 -0
- package/esm2020/lib/features/lines/components/lines.component.mjs +66 -0
- package/esm2020/lib/features/lines/hit-lines-routing.module.mjs +29 -0
- package/esm2020/lib/features/lines/hit-lines.module.mjs +58 -0
- package/esm2020/lib/features/packaging-prices/components/packaging-price-form.component.mjs +4 -9
- package/esm2020/lib/features/packaging-prices/packaging-price-calculator.mjs +1 -1
- package/esm2020/lib/features/pos/components/pos-form.component.mjs +77 -0
- package/esm2020/lib/features/pos/components/pos.component.mjs +65 -0
- package/esm2020/lib/features/pos/hit-pos-routing.module.mjs +29 -0
- package/esm2020/lib/features/pos/hit-pos.module.mjs +58 -0
- package/esm2020/lib/features/price-parameter-types/components/price-parameter-types.component.mjs +3 -3
- package/esm2020/lib/features/price-parameters/components/price-parameter-form-cost-items.component.mjs +32 -0
- package/esm2020/lib/features/price-parameters/components/price-parameter-form-discount-rates-modal.component.mjs +52 -0
- package/esm2020/lib/features/price-parameters/components/price-parameter-form-discount-rates.component.mjs +84 -0
- package/esm2020/lib/features/price-parameters/components/price-parameter-form-items.component.mjs +43 -0
- package/esm2020/lib/features/price-parameters/components/price-parameter-form-price-lists.component.mjs +42 -0
- package/esm2020/lib/features/price-parameters/components/price-parameter-form.component.mjs +252 -0
- package/esm2020/lib/features/price-parameters/components/price-parameters.component.mjs +78 -0
- package/esm2020/lib/features/price-parameters/hit-price-parameters-routing.module.mjs +46 -0
- package/esm2020/lib/features/price-parameters/hit-price-parameters.module.mjs +93 -0
- package/esm2020/lib/features/price-parameters/price-parameter-cost-match.service.mjs +21 -0
- package/esm2020/lib/features/price-parameters/price-parameter-form-data.service.mjs +50 -0
- package/esm2020/lib/features/price-parameters/price-parameter-l10n-helper.mjs +7 -0
- package/esm2020/lib/features/price-parameters/price-parameter-lookups.service.mjs +32 -0
- package/esm2020/lib/kadooglu-keops-routing.module.mjs +25 -1
- package/esm2020/lib/shared/amount-currency-input/amount-currency-input.component.mjs +66 -0
- package/esm2020/lib/shared/cost-item-classification.utils.mjs +12 -0
- package/esm2020/lib/shared/cost-item-rows.builder.mjs +40 -0
- package/esm2020/lib/shared/pipes/resolve-code-name.pipe.mjs +16 -0
- package/esm2020/lib/shared/shared-ui.module.mjs +20 -0
- package/esm2020/lib/utils/currency.utils.mjs +3 -1
- package/esm2020/lib/utils/exchange-rate.utils.mjs +12 -0
- package/esm2020/proxy/bl-tracking/dtos/index.mjs +2 -0
- package/esm2020/proxy/bl-tracking/dtos/models.mjs +2 -0
- package/esm2020/proxy/business-partners/dtos/index.mjs +2 -0
- package/esm2020/proxy/business-partners/dtos/models.mjs +2 -0
- package/esm2020/proxy/carriers/dtos/index.mjs +2 -0
- package/esm2020/proxy/carriers/dtos/models.mjs +2 -0
- package/esm2020/proxy/container-loading-counts/dtos/models.mjs +1 -1
- package/esm2020/proxy/controllers/bl-tracking.service.mjs +36 -0
- package/esm2020/proxy/controllers/business-partner.service.mjs +22 -0
- package/esm2020/proxy/controllers/carrier.service.mjs +36 -0
- package/esm2020/proxy/controllers/container-loading-count.service.mjs +5 -5
- package/esm2020/proxy/controllers/cost-parameter.service.mjs +1 -5
- package/esm2020/proxy/controllers/destination-port.service.mjs +44 -0
- package/esm2020/proxy/controllers/fob-inland-definition.service.mjs +36 -0
- package/esm2020/proxy/controllers/freight-offer.service.mjs +57 -0
- package/esm2020/proxy/controllers/incoterm.service.mjs +36 -0
- package/esm2020/proxy/controllers/index.mjs +15 -1
- package/esm2020/proxy/controllers/item-package-group.service.mjs +40 -0
- package/esm2020/proxy/controllers/item-package-type.service.mjs +40 -0
- package/esm2020/proxy/controllers/item-product-type.service.mjs +40 -0
- package/esm2020/proxy/controllers/line.service.mjs +36 -0
- package/esm2020/proxy/controllers/pos.service.mjs +36 -0
- package/esm2020/proxy/controllers/price-list.service.mjs +28 -0
- package/esm2020/proxy/controllers/price-parameter.service.mjs +40 -0
- package/esm2020/proxy/cost-parameter-categories/cost-parameter-category-parent-code.enum.mjs +1 -4
- package/esm2020/proxy/cost-parameters/dtos/models.mjs +1 -1
- package/esm2020/proxy/destination-ports/dtos/index.mjs +2 -0
- package/esm2020/proxy/destination-ports/dtos/models.mjs +2 -0
- package/esm2020/proxy/fob-inland-definitions/dtos/index.mjs +2 -0
- package/esm2020/proxy/fob-inland-definitions/dtos/models.mjs +2 -0
- package/esm2020/proxy/freight-offers/dtos/index.mjs +2 -0
- package/esm2020/proxy/freight-offers/dtos/models.mjs +2 -0
- package/esm2020/proxy/incoterms/dtos/index.mjs +2 -0
- package/esm2020/proxy/incoterms/dtos/models.mjs +2 -0
- package/esm2020/proxy/item-package-groups/dtos/index.mjs +2 -0
- package/esm2020/proxy/item-package-groups/dtos/models.mjs +2 -0
- package/esm2020/proxy/item-package-types/dtos/index.mjs +2 -0
- package/esm2020/proxy/item-package-types/dtos/models.mjs +2 -0
- package/esm2020/proxy/item-product-types/dtos/index.mjs +2 -0
- package/esm2020/proxy/item-product-types/dtos/models.mjs +2 -0
- package/esm2020/proxy/lines/dtos/index.mjs +2 -0
- package/esm2020/proxy/lines/dtos/models.mjs +2 -0
- package/esm2020/proxy/pos/dtos/index.mjs +2 -0
- package/esm2020/proxy/pos/dtos/models.mjs +2 -0
- package/esm2020/proxy/price-lists/dtos/index.mjs +2 -0
- package/esm2020/proxy/price-lists/dtos/models.mjs +2 -0
- package/esm2020/proxy/price-parameters/dtos/index.mjs +2 -0
- package/esm2020/proxy/price-parameters/dtos/models.mjs +2 -0
- package/esm2020/proxy/price-parameters/price-parameter-status.enum.mjs +9 -0
- package/esm2020/proxy/public-api.mjs +16 -1
- package/fesm2015/hitsoft-kadooglu-keops-config.mjs +131 -3
- package/fesm2015/hitsoft-kadooglu-keops-config.mjs.map +1 -1
- package/fesm2015/hitsoft-kadooglu-keops-proxy.mjs +498 -12
- package/fesm2015/hitsoft-kadooglu-keops-proxy.mjs.map +1 -1
- package/fesm2015/hitsoft-kadooglu-keops.mjs +3958 -719
- package/fesm2015/hitsoft-kadooglu-keops.mjs.map +1 -1
- package/fesm2020/hitsoft-kadooglu-keops-config.mjs +131 -3
- package/fesm2020/hitsoft-kadooglu-keops-config.mjs.map +1 -1
- package/fesm2020/hitsoft-kadooglu-keops-proxy.mjs +498 -12
- package/fesm2020/hitsoft-kadooglu-keops-proxy.mjs.map +1 -1
- package/fesm2020/hitsoft-kadooglu-keops.mjs +3934 -708
- package/fesm2020/hitsoft-kadooglu-keops.mjs.map +1 -1
- package/lib/features/bl-tracking/components/bl-tracking-form.component.d.ts +24 -0
- package/lib/features/bl-tracking/components/bl-tracking.component.d.ts +22 -0
- package/lib/features/bl-tracking/hit-bl-tracking-routing.module.d.ts +7 -0
- package/lib/features/bl-tracking/hit-bl-tracking.module.d.ts +18 -0
- package/lib/features/carriers/components/carrier-form.component.d.ts +24 -0
- package/lib/features/carriers/components/carriers.component.d.ts +22 -0
- package/lib/features/carriers/hit-carriers-routing.module.d.ts +7 -0
- package/lib/features/carriers/hit-carriers.module.d.ts +18 -0
- package/lib/features/container-loading-counts/components/container-loading-counts.component.d.ts +2 -2
- package/lib/features/container-pallet-capacities/components/container-pallet-capacities.component.d.ts +1 -1
- package/lib/features/cost-calculation/components/cost-calculation-inputs.component.d.ts +3 -2
- package/lib/features/cost-calculation/components/cost-calculation.component.d.ts +3 -3
- package/lib/features/cost-calculation/hit-cost-calculation.module.d.ts +2 -1
- package/lib/features/cost-parameters/components/cost-parameter-form.component.d.ts +9 -6
- package/lib/features/cost-parameters/components/cost-parameters.component.d.ts +6 -5
- package/lib/features/destination-ports/components/destination-port-form.component.d.ts +25 -0
- package/lib/features/destination-ports/components/destination-ports.component.d.ts +24 -0
- package/lib/features/destination-ports/hit-destination-ports-routing.module.d.ts +7 -0
- package/lib/features/destination-ports/hit-destination-ports.module.d.ts +18 -0
- package/lib/features/fob-inland-definitions/components/fob-inland-definition-form.component.d.ts +24 -0
- package/lib/features/fob-inland-definitions/components/fob-inland-definitions.component.d.ts +22 -0
- package/lib/features/fob-inland-definitions/hit-fob-inland-definitions-routing.module.d.ts +7 -0
- package/lib/features/fob-inland-definitions/hit-fob-inland-definitions.module.d.ts +18 -0
- package/lib/features/freight-offers/components/freight-offer-copy.component.d.ts +22 -0
- package/lib/features/freight-offers/components/freight-offer-form.component.d.ts +49 -0
- package/lib/features/freight-offers/components/freight-offers.component.d.ts +47 -0
- package/lib/features/freight-offers/hit-freight-offers-routing.module.d.ts +7 -0
- package/lib/features/freight-offers/hit-freight-offers.module.d.ts +19 -0
- package/lib/features/incoterms/components/incoterm-form.component.d.ts +24 -0
- package/lib/features/incoterms/components/incoterms.component.d.ts +22 -0
- package/lib/features/incoterms/hit-incoterms-routing.module.d.ts +7 -0
- package/lib/features/incoterms/hit-incoterms.module.d.ts +18 -0
- package/lib/features/index.d.ts +21 -0
- package/lib/features/item-package-groups/components/item-package-group-form.component.d.ts +24 -0
- package/lib/features/item-package-groups/components/item-package-groups.component.d.ts +22 -0
- package/lib/features/item-package-groups/hit-item-package-groups-routing.module.d.ts +7 -0
- package/lib/features/item-package-groups/hit-item-package-groups.module.d.ts +18 -0
- package/lib/features/item-package-types/components/item-package-type-form.component.d.ts +24 -0
- package/lib/features/item-package-types/components/item-package-types.component.d.ts +22 -0
- package/lib/features/item-package-types/hit-item-package-types-routing.module.d.ts +7 -0
- package/lib/features/item-package-types/hit-item-package-types.module.d.ts +18 -0
- package/lib/features/item-product-types/components/item-product-type-form.component.d.ts +24 -0
- package/lib/features/item-product-types/components/item-product-types.component.d.ts +22 -0
- package/lib/features/item-product-types/hit-item-product-types-routing.module.d.ts +7 -0
- package/lib/features/item-product-types/hit-item-product-types.module.d.ts +18 -0
- package/lib/features/lines/components/line-form.component.d.ts +24 -0
- package/lib/features/lines/components/lines.component.d.ts +22 -0
- package/lib/features/lines/hit-lines-routing.module.d.ts +7 -0
- package/lib/features/lines/hit-lines.module.d.ts +18 -0
- package/lib/features/pos/components/pos-form.component.d.ts +24 -0
- package/lib/features/pos/components/pos.component.d.ts +22 -0
- package/lib/features/pos/hit-pos-routing.module.d.ts +7 -0
- package/lib/features/pos/hit-pos.module.d.ts +18 -0
- package/lib/features/price-parameters/components/price-parameter-form-cost-items.component.d.ts +15 -0
- package/lib/features/price-parameters/components/price-parameter-form-discount-rates-modal.component.d.ts +24 -0
- package/lib/features/price-parameters/components/price-parameter-form-discount-rates.component.d.ts +22 -0
- package/lib/features/price-parameters/components/price-parameter-form-items.component.d.ts +15 -0
- package/lib/features/price-parameters/components/price-parameter-form-price-lists.component.d.ts +15 -0
- package/lib/features/price-parameters/components/price-parameter-form.component.d.ts +70 -0
- package/lib/features/price-parameters/components/price-parameters.component.d.ts +27 -0
- package/lib/features/price-parameters/hit-price-parameters-routing.module.d.ts +7 -0
- package/lib/features/price-parameters/hit-price-parameters.module.d.ts +24 -0
- package/lib/features/price-parameters/price-parameter-cost-match.service.d.ts +10 -0
- package/lib/features/price-parameters/price-parameter-form-data.service.d.ts +26 -0
- package/lib/features/price-parameters/price-parameter-l10n-helper.d.ts +2 -0
- package/lib/features/price-parameters/price-parameter-lookups.service.d.ts +16 -0
- package/lib/shared/amount-currency-input/amount-currency-input.component.d.ts +23 -0
- package/lib/shared/cost-item-classification.utils.d.ts +7 -0
- package/lib/shared/cost-item-rows.builder.d.ts +11 -0
- package/lib/shared/pipes/resolve-code-name.pipe.d.ts +11 -0
- package/lib/shared/shared-ui.module.d.ts +10 -0
- package/lib/utils/currency.utils.d.ts +1 -0
- package/lib/utils/exchange-rate.utils.d.ts +2 -0
- package/package.json +1 -1
- package/proxy/bl-tracking/dtos/index.d.ts +1 -0
- package/proxy/bl-tracking/dtos/models.d.ts +25 -0
- package/proxy/business-partners/dtos/index.d.ts +1 -0
- package/proxy/business-partners/dtos/models.d.ts +4 -0
- package/proxy/carriers/dtos/index.d.ts +1 -0
- package/proxy/carriers/dtos/models.d.ts +10 -0
- package/proxy/container-loading-counts/dtos/models.d.ts +1 -1
- package/proxy/controllers/bl-tracking.service.d.ts +14 -0
- package/proxy/controllers/business-partner.service.d.ts +11 -0
- package/proxy/controllers/carrier.service.d.ts +14 -0
- package/proxy/controllers/container-loading-count.service.d.ts +2 -2
- package/proxy/controllers/cost-parameter.service.d.ts +1 -2
- package/proxy/controllers/destination-port.service.d.ts +17 -0
- package/proxy/controllers/fob-inland-definition.service.d.ts +14 -0
- package/proxy/controllers/freight-offer.service.d.ts +19 -0
- package/proxy/controllers/incoterm.service.d.ts +14 -0
- package/proxy/controllers/index.d.ts +14 -0
- package/proxy/controllers/item-package-group.service.d.ts +15 -0
- package/proxy/controllers/item-package-type.service.d.ts +15 -0
- package/proxy/controllers/item-product-type.service.d.ts +15 -0
- package/proxy/controllers/line.service.d.ts +14 -0
- package/proxy/controllers/pos.service.d.ts +14 -0
- package/proxy/controllers/price-list.service.d.ts +12 -0
- package/proxy/controllers/price-parameter.service.d.ts +15 -0
- package/proxy/cost-parameter-categories/cost-parameter-category-parent-code.enum.d.ts +1 -4
- package/proxy/cost-parameters/dtos/models.d.ts +0 -8
- package/proxy/destination-ports/dtos/index.d.ts +1 -0
- package/proxy/destination-ports/dtos/models.d.ts +19 -0
- package/proxy/fob-inland-definitions/dtos/index.d.ts +1 -0
- package/proxy/fob-inland-definitions/dtos/models.d.ts +19 -0
- package/proxy/freight-offers/dtos/index.d.ts +1 -0
- package/proxy/freight-offers/dtos/models.d.ts +66 -0
- package/proxy/incoterms/dtos/index.d.ts +1 -0
- package/proxy/incoterms/dtos/models.d.ts +22 -0
- package/proxy/item-package-groups/dtos/index.d.ts +1 -0
- package/proxy/item-package-groups/dtos/models.d.ts +13 -0
- package/proxy/item-package-types/dtos/index.d.ts +1 -0
- package/proxy/item-package-types/dtos/models.d.ts +13 -0
- package/proxy/item-product-types/dtos/index.d.ts +1 -0
- package/proxy/item-product-types/dtos/models.d.ts +13 -0
- package/proxy/lines/dtos/index.d.ts +1 -0
- package/proxy/lines/dtos/models.d.ts +10 -0
- package/proxy/pos/dtos/index.d.ts +1 -0
- package/proxy/pos/dtos/models.d.ts +10 -0
- package/proxy/price-lists/dtos/index.d.ts +1 -0
- package/proxy/price-lists/dtos/models.d.ts +10 -0
- package/proxy/price-parameters/dtos/index.d.ts +1 -0
- package/proxy/price-parameters/dtos/models.d.ts +78 -0
- package/proxy/price-parameters/price-parameter-status.enum.d.ts +6 -0
- package/proxy/public-api.d.ts +15 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hitsoft-kadooglu-keops.mjs","sources":["../../../projects/kadooglu-keops/src/lib/features/cost-items/cost-item-l10n-helper.ts","../../../projects/kadooglu-keops/src/lib/features/cost-items/components/cost-item-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-items/components/cost-item-form.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-items/components/cost-items.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-items/components/cost-items.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-items/hit-cost-items-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-items/hit-cost-items.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-groups/cost-group-role-l10n-helper.ts","../../../projects/kadooglu-keops/src/lib/features/cost-groups/components/cost-group-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-groups/components/cost-group-form.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-groups/components/cost-groups.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-groups/components/cost-groups.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-groups/hit-cost-groups-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-groups/hit-cost-groups.module.ts","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/components/central-bank-rates.component.ts","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/components/central-bank-rates.component.html","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/components/fixed-rates-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/components/fixed-rates-form.component.html","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/components/exchange-rates.component.ts","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/components/exchange-rates.component.html","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/hit-exchange-rates-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/hit-exchange-rates.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/engine/models.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/engine/currency.utils.ts","../../../projects/kadooglu-keops/src/lib/utils/number.utils.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/engine/item-resolver.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/engine/stage-builder.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/engine/formulas.ts","../../../projects/kadooglu-keops/src/lib/utils/currency.utils.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation-inputs.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation-inputs.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation-results.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation-results.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation-result-sum.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation-result-sum.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/hit-cost-calculation-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/hit-cost-calculation.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameters/cost-parameter-l10n-helper.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameters/components/cost-parameter-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameters/components/cost-parameter-form.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-parameters/components/cost-parameters.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameters/components/cost-parameters.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-parameters/hit-cost-parameters-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameters/hit-cost-parameters.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameter-categories/cost-parameter-category-l10n-helper.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameter-categories/components/cost-parameter-category-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameter-categories/components/cost-parameter-category-form.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-parameter-categories/components/cost-parameter-categories.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameter-categories/components/cost-parameter-categories.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-parameter-categories/hit-cost-parameter-categories-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameter-categories/hit-cost-parameter-categories.module.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-types/components/packaging-type-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-types/components/packaging-type-form.component.html","../../../projects/kadooglu-keops/src/lib/features/packaging-types/components/packaging-types.component.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-types/components/packaging-types.component.html","../../../projects/kadooglu-keops/src/lib/features/packaging-types/hit-packaging-types-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-types/hit-packaging-types.module.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-materials/components/packaging-material-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-materials/components/packaging-material-form.component.html","../../../projects/kadooglu-keops/src/lib/features/packaging-materials/components/packaging-materials.component.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-materials/components/packaging-materials.component.html","../../../projects/kadooglu-keops/src/lib/features/packaging-materials/hit-packaging-materials-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-materials/hit-packaging-materials.module.ts","../../../projects/kadooglu-keops/src/lib/utils/date.utils.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/packaging-price-form.factory.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/packaging-price-excel.service.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/packaging-price-calculator.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/packaging-price-lines.builder.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/components/packaging-price-lines.component.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/components/packaging-price-lines.component.html","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/components/packaging-price-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/components/packaging-price-form.component.html","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/components/packaging-prices.component.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/components/packaging-prices.component.html","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/hit-packaging-prices-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/hit-packaging-prices.module.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameter-types/components/price-parameter-type-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameter-types/components/price-parameter-type-form.component.html","../../../projects/kadooglu-keops/src/lib/features/price-parameter-types/components/price-parameter-types.component.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameter-types/components/price-parameter-types.component.html","../../../projects/kadooglu-keops/src/lib/features/price-parameter-types/hit-price-parameter-types-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameter-types/hit-price-parameter-types.module.ts","../../../projects/kadooglu-keops/src/lib/features/sap-sales-persons/components/sap-sales-person-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/sap-sales-persons/components/sap-sales-person-form.component.html","../../../projects/kadooglu-keops/src/lib/features/sap-sales-persons/components/sap-sales-persons.component.ts","../../../projects/kadooglu-keops/src/lib/features/sap-sales-persons/components/sap-sales-persons.component.html","../../../projects/kadooglu-keops/src/lib/features/sap-sales-persons/hit-sap-sales-persons-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/sap-sales-persons/hit-sap-sales-persons.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-definitions/components/container-definition-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-definitions/components/container-definition-form.component.html","../../../projects/kadooglu-keops/src/lib/features/container-definitions/components/container-definitions.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-definitions/components/container-definitions.component.html","../../../projects/kadooglu-keops/src/lib/features/container-definitions/hit-container-definitions-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-definitions/hit-container-definitions.module.ts","../../../projects/kadooglu-keops/src/lib/features/pallet-definitions/components/pallet-definition-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/pallet-definitions/components/pallet-definition-form.component.html","../../../projects/kadooglu-keops/src/lib/features/pallet-definitions/components/pallet-definitions.component.ts","../../../projects/kadooglu-keops/src/lib/features/pallet-definitions/components/pallet-definitions.component.html","../../../projects/kadooglu-keops/src/lib/features/pallet-definitions/hit-pallet-definitions-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/pallet-definitions/hit-pallet-definitions.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-pallet-capacities/components/container-pallet-capacity-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-pallet-capacities/components/container-pallet-capacity-form.component.html","../../../projects/kadooglu-keops/src/lib/features/container-pallet-capacities/components/container-pallet-capacities.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-pallet-capacities/components/container-pallet-capacities.component.html","../../../projects/kadooglu-keops/src/lib/features/container-pallet-capacities/hit-container-pallet-capacities-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-pallet-capacities/hit-container-pallet-capacities.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-loading-counts/components/container-loading-counts.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-loading-counts/components/container-loading-counts.component.html","../../../projects/kadooglu-keops/src/lib/features/container-loading-counts/hit-container-loading-counts-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-loading-counts/hit-container-loading-counts.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-loading-scenarios/container-loading-scenario-l10n-helper.ts","../../../projects/kadooglu-keops/src/lib/features/container-loading-scenarios/components/container-loading-scenarios.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-loading-scenarios/components/container-loading-scenarios.component.html","../../../projects/kadooglu-keops/src/lib/features/container-loading-scenarios/hit-container-loading-scenarios-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-loading-scenarios/hit-container-loading-scenarios.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-mix-types/components/container-mix-type-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-mix-types/components/container-mix-type-form.component.html","../../../projects/kadooglu-keops/src/lib/features/container-mix-types/components/container-mix-types.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-mix-types/components/container-mix-types.component.html","../../../projects/kadooglu-keops/src/lib/features/container-mix-types/hit-container-mix-types-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-mix-types/hit-container-mix-types.module.ts","../../../projects/kadooglu-keops/src/lib/kadooglu-keops-routing.module.ts","../../../projects/kadooglu-keops/src/lib/kadooglu-keops.module.ts","../../../projects/kadooglu-keops/src/lib/features/settings/components/cost-settings.component.ts","../../../projects/kadooglu-keops/src/lib/features/settings/components/cost-settings.component.html","../../../projects/kadooglu-keops/src/lib/features/index.ts","../../../projects/kadooglu-keops/src/public-api.ts","../../../projects/kadooglu-keops/src/hitsoft-kadooglu-keops.ts"],"sourcesContent":["import { CostItemCalculationType } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport const calculationTypeLabels: Record<CostItemCalculationType, string> = {\r\n [CostItemCalculationType.Amount]: 'Keops::CostItems:CalculationType:Amount',\r\n [CostItemCalculationType.Rate]: 'Keops::CostItems:CalculationType:Rate',\r\n [CostItemCalculationType.Custom]: 'Keops::CostItems:CalculationType:Custom',\r\n};\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n CostItemService,\r\n CostItemDto,\r\n CostItemCalculationType,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { calculationTypeLabels } from '../cost-item-l10n-helper';\r\n\r\nconst calculationTypeOptions = [\r\n CostItemCalculationType.Amount,\r\n CostItemCalculationType.Rate,\r\n CostItemCalculationType.Custom,\r\n].map(value => ({ value, label: calculationTypeLabels[value] }));\r\n\r\n@Component({\r\n selector: 'lib-cost-item-form',\r\n templateUrl: './cost-item-form.component.html',\r\n})\r\nexport class CostItemFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: CostItemDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n readonly calculationTypeOptions = calculationTypeOptions;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: CostItemService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(256)]],\r\n calculationType: [\r\n { value: this.current?.calculationType ?? null, disabled: !!this.current?.isSystem },\r\n Validators.required,\r\n ],\r\n displayOrder: [this.current?.displayOrder ?? 0, Validators.required],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create' ? 'Keops::CostItems:CreateTitle' : 'Keops::CostItems:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::CostItems:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"name\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"calculationType\" class=\"form-label\">\r\n {{ 'Keops::CostItems:CalculationType' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"calculationType\" class=\"form-select\" formControlName=\"calculationType\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let opt of calculationTypeOptions\" [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=\"displayOrder\" class=\"form-label\">\r\n {{ 'Keops::CostItems:DisplayOrder' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"displayOrder\"\r\n type=\"number\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"displayOrder\"\r\n />\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { CostItemService, CostItemDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { calculationTypeLabels } from '../cost-item-l10n-helper';\r\n\r\n@Component({\r\n selector: 'lib-cost-items',\r\n templateUrl: './cost-items.component.html',\r\n})\r\nexport class CostItemsComponent implements OnInit {\r\n items: CostItemDto[] = [];\r\n\r\n selected: CostItemDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n getCalculationTypeLabel(value: any): string {\r\n return calculationTypeLabels[value as keyof typeof calculationTypeLabels] ?? '';\r\n }\r\n\r\n constructor(\r\n private readonly service: CostItemService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: CostItemDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: CostItemDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { CostItemsComponent } from './components/cost-items.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: CostItemsComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: {\n requiredPolicy: 'KeopsCost.CostItems',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HitCostItemsRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CostItemsComponent } from './components/cost-items.component';\nimport { CostItemFormComponent } from './components/cost-item-form.component';\nimport { HitCostItemsRoutingModule } from './hit-cost-items-routing.module';\nimport { DxDataGridModule } from 'devextreme-angular';\n\n@NgModule({\n declarations: [CostItemsComponent, CostItemFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ThemeSharedModule,\n PageModule,\n CommercialUiModule,\n NgbDropdownModule,\n HitCostItemsRoutingModule,\n DxDataGridModule,\n ],\n})\nexport class HitCostItemsModule {}\n\nexport function loadHitCostItemsModuleAsChild() {\n return Promise.resolve(HitCostItemsModule);\n}\n","import { CostGroupRole } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport const costGroupRoleLabels: Record<CostGroupRole, string> = {\r\n [CostGroupRole.None]: 'Keops::CostGroups:GroupRole:None',\r\n [CostGroupRole.Production]: 'Keops::CostGroups:GroupRole:Production',\r\n [CostGroupRole.Operating]: 'Keops::CostGroups:GroupRole:Operating',\r\n [CostGroupRole.Profit]: 'Keops::CostGroups:GroupRole:Profit',\r\n};\r\n\r\nexport const costGroupRoleTotalLabels: Record<CostGroupRole, string> = {\r\n [CostGroupRole.None]: 'Keops::CostCalculations:OtherTotal',\r\n [CostGroupRole.Production]: 'Keops::CostCalculations:ProductionTotal',\r\n [CostGroupRole.Operating]: 'Keops::CostCalculations:OperatingTotal',\r\n [CostGroupRole.Profit]: 'Keops::CostCalculations:ProfitTotal',\r\n};\r\n\r\nexport const costGroupRoleOptions = [\r\n CostGroupRole.None,\r\n CostGroupRole.Production,\r\n CostGroupRole.Operating,\r\n CostGroupRole.Profit,\r\n].map(value => ({ value, label: costGroupRoleLabels[value] }));\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { CostGroupService, CostGroupDto, CostItemDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { costGroupRoleOptions } from '../cost-group-role-l10n-helper';\r\n\r\n@Component({\r\n selector: 'lib-cost-group-form',\r\n templateUrl: './cost-group-form.component.html',\r\n})\r\nexport class CostGroupFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: CostGroupDto | null = null;\r\n @Input() allCostItems: CostItemDto[] = [];\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n readonly groupRoleOptions = costGroupRoleOptions;\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: CostGroupService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['visible']?.currentValue && this.form) {\r\n this.resetForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n code: ['', Validators.required],\r\n name: ['', Validators.required],\r\n displayOrder: [0, Validators.required],\r\n groupRole: [null, Validators.required],\r\n itemCodes: [[] as string[]],\r\n });\r\n this.resetForm();\r\n }\r\n\r\n private resetForm(): void {\r\n if (!this.form) return;\r\n\r\n if (this.mode === 'edit' && this.current) {\r\n this.form.patchValue({\r\n code: this.current.code ?? '',\r\n name: this.current.name ?? '',\r\n displayOrder: this.current.displayOrder ?? 0,\r\n groupRole: this.current.groupRole ?? null,\r\n itemCodes: this.current.itemCodes ?? [],\r\n });\r\n this.form.get('code')?.disable();\r\n } else {\r\n this.form.reset({ code: '', name: '', displayOrder: 0, groupRole: null, itemCodes: [] });\r\n this.form.get('code')?.enable();\r\n }\r\n }\r\n\r\n isItemSelected(code: string): boolean {\r\n const selected: string[] = this.form.get('itemCodes')?.value ?? [];\r\n return selected.includes(code);\r\n }\r\n\r\n toggleItem(code: string): void {\r\n const control = this.form.get('itemCodes');\r\n const current: string[] = [...(control?.value ?? [])];\r\n const idx = current.indexOf(code);\r\n if (idx >= 0) {\r\n current.splice(idx, 1);\r\n } else {\r\n current.push(code);\r\n }\r\n control?.setValue(current);\r\n }\r\n\r\n close(): void {\r\n this.visibleChange.emit(false);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) return;\r\n\r\n const itemCodes: string[] = this.form.get('itemCodes')?.value ?? [];\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create({\r\n code: this.form.get('code')?.value,\r\n name: this.form.get('name')?.value,\r\n displayOrder: this.form.get('displayOrder')?.value,\r\n groupRole: this.form.get('groupRole')?.value,\r\n itemCodes,\r\n })\r\n : this.service.update(this.current!.code!, {\r\n name: this.form.get('name')?.value,\r\n displayOrder: this.form.get('displayOrder')?.value,\r\n groupRole: this.form.get('groupRole')?.value,\r\n itemCodes,\r\n });\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => this.saved.emit(),\r\n });\r\n }\r\n}\r\n","<abp-modal [(visible)]=\"visible\" (disappear)=\"close()\" [busy]=\"saving\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n <span *ngIf=\"mode === 'create'\">{{ 'Keops::CostGroups:CreateTitle' | abpLocalization }}</span>\r\n <span *ngIf=\"mode === 'edit'\">{{ 'Keops::CostGroups:EditTitle' | abpLocalization }}</span>\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"costGroupForm\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">\r\n {{ 'Keops::CostGroups:Code' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"code\"\r\n [readOnly]=\"mode === 'edit'\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">\r\n {{ 'Keops::CostGroups: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::CostGroups:DisplayOrder' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input type=\"number\" min=\"0\" class=\"form-control\" formControlName=\"displayOrder\" />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">\r\n {{ 'Keops::CostGroups:GroupRole' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select class=\"form-select\" formControlName=\"groupRole\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let opt of groupRoleOptions\" [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 class=\"form-label\">\r\n {{ 'Keops::CostGroups:ItemCodes' | abpLocalization }}\r\n </label>\r\n <div class=\"border rounded p-2\" style=\"max-height: 300px; overflow-y: auto;\">\r\n <div\r\n *ngFor=\"let item of allCostItems\"\r\n class=\"form-check\"\r\n >\r\n <input\r\n class=\"form-check-input\"\r\n type=\"checkbox\"\r\n [id]=\"'item-' + item.code\"\r\n [checked]=\"isItemSelected(item.code!)\"\r\n (change)=\"toggleItem(item.code!)\"\r\n />\r\n <label class=\"form-check-label\" [for]=\"'item-' + item.code\">\r\n {{ item.displayOrder }} – {{ item.name }}\r\n </label>\r\n </div>\r\n </div>\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 <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","import { Component, OnInit } from '@angular/core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport {\r\n CostGroupService,\r\n CostGroupDto,\r\n CostGroupRole,\r\n CostItemService,\r\n CostItemDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { forkJoin } from 'rxjs';\r\nimport { costGroupRoleLabels } from '../cost-group-role-l10n-helper';\r\n\r\n@Component({\r\n selector: 'lib-cost-groups',\r\n templateUrl: './cost-groups.component.html',\r\n})\r\nexport class CostGroupsComponent implements OnInit {\r\n items: CostGroupDto[] = [];\r\n costItems: CostItemDto[] = [];\r\n\r\n selected: CostGroupDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: CostGroupService,\r\n private readonly costItemService: CostItemService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n forkJoin({\r\n groups: this.service.getList(),\r\n items: this.costItemService.getList(),\r\n }).subscribe(({ groups, items }) => {\r\n this.items = groups;\r\n this.costItems = items;\r\n });\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n getItemLabel(code: string): string {\r\n const item = this.costItems.find(x => x.code === code);\r\n return item ? `${item.displayOrder}-${item.name}` : code;\r\n }\r\n\r\n getItemsLabels(codes: string[] | undefined): string[] {\r\n if (!codes || codes.length === 0) return [];\r\n return codes.map(c => this.getItemLabel(c));\r\n }\r\n\r\n roleLabel(role: CostGroupRole | undefined): string {\r\n return costGroupRoleLabels[role ?? CostGroupRole.None];\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: CostGroupDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: CostGroupDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { CostGroupsComponent } from './components/cost-groups.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: CostGroupsComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: {\n requiredPolicy: 'KeopsCost.CostGroups',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HitCostGroupsRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CostGroupsComponent } from './components/cost-groups.component';\nimport { CostGroupFormComponent } from './components/cost-group-form.component';\nimport { HitCostGroupsRoutingModule } from './hit-cost-groups-routing.module';\nimport { DxDataGridModule } from 'devextreme-angular';\n\n@NgModule({\n declarations: [CostGroupsComponent, CostGroupFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ThemeSharedModule,\n PageModule,\n CommercialUiModule,\n NgbDropdownModule,\n HitCostGroupsRoutingModule,\n DxDataGridModule,\n ],\n})\nexport class HitCostGroupsModule {}\n\nexport function loadHitCostGroupsModuleAsChild() {\n return Promise.resolve(HitCostGroupsModule);\n}\n","import { Component, Input } from '@angular/core';\r\nimport { CentralBankExchangeRateDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-central-bank-rates',\r\n templateUrl: './central-bank-rates.component.html',\r\n})\r\nexport class CentralBankRatesComponent {\r\n @Input() cbExchangeRate: CentralBankExchangeRateDto | undefined = undefined;\r\n}\r\n","<div class=\"card\">\n <div class=\"card-header\">\n <h5>{{ 'Keops::ExchangeRates:CentralBankRates' | abpLocalization }}</h5>\n </div>\n\n <div class=\"card-body py-0\">\n <table class=\"table table-borderless\">\n <thead>\n <tr class=\"small\">\n <th>\n {{ 'Keops::ExchangeRates:UsdBuying' | abpLocalization }}\n </th>\n <th>\n {{ 'Keops::ExchangeRates:EurBuying' | abpLocalization }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr class=\"text-muted\">\n <td>{{ cbExchangeRate?.usdBuyingRate }}</td>\n <td>{{ cbExchangeRate?.eurBuyingRate }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport {\r\n ExchangeRateSource,\r\n ExchangeRateDto,\r\n ExchangeRateService,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-fixed-rates-form',\r\n templateUrl: './fixed-rates-form.component.html',\r\n})\r\nexport class FixedRatesFormComponent implements OnInit {\r\n readonly ExchangeRateSource = ExchangeRateSource;\r\n\r\n _exchangeRate: ExchangeRateDto | null = null;\r\n\r\n @Input() set exchangeRate(val: any) {\r\n this._exchangeRate = val;\r\n\r\n if (val) {\r\n this.form.patchValue({ source: this.exchangeRate.source }, { emitEvent: false });\r\n this.applySourceRates(this.exchangeRate.source);\r\n }\r\n }\r\n\r\n get exchangeRate() {\r\n return this._exchangeRate;\r\n }\r\n\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: ExchangeRateService,\r\n private readonly toaster: ToasterService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.form = this.fb.group({\r\n source: [ExchangeRateSource.Fixed, Validators.required],\r\n fixedUsdRate: [0, [Validators.required, Validators.min(1)]],\r\n fixedEurRate: [0, [Validators.required, Validators.min(1)]],\r\n });\r\n\r\n this.form.get('source')!.valueChanges.subscribe((source: ExchangeRateSource) => {\r\n this.applySourceRates(source);\r\n });\r\n }\r\n\r\n get isFixed(): boolean {\r\n return this.form?.get('source')!.value === ExchangeRateSource.Fixed;\r\n }\r\n\r\n private applySourceRates(source: ExchangeRateSource): void {\r\n if (!this.exchangeRate) {\r\n return;\r\n }\r\n\r\n const rates =\r\n source === ExchangeRateSource.CentralBank\r\n ? {\r\n fixedUsdRate: this.exchangeRate.cbExchangeRate?.usdBuyingRate ?? 0,\r\n fixedEurRate: this.exchangeRate.cbExchangeRate?.eurBuyingRate ?? 0,\r\n }\r\n : {\r\n fixedUsdRate: this.exchangeRate.fixedUsdRate,\r\n fixedEurRate: this.exchangeRate.fixedEurRate,\r\n };\r\n\r\n this.form.patchValue(rates, { emitEvent: false });\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n return;\r\n }\r\n\r\n this.saving = true;\r\n\r\n this.service\r\n .update(this.form.value)\r\n .pipe(finalize(() => (this.saving = false)))\r\n .subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.saved.emit();\r\n },\r\n });\r\n }\r\n}\r\n","<form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"card\">\n <div class=\"card-header\">\n <div class=\"row align-items-center\">\n <div class=\"col-6 d-flex flex-wrap gap-4\">\n <div class=\"form-check\">\n <input\n type=\"radio\"\n id=\"sourceFixed\"\n class=\"form-check-input\"\n formControlName=\"source\"\n [value]=\"ExchangeRateSource.Fixed\"\n />\n <h5 for=\"sourceFixed\" class=\"form-check-label\">\n {{ 'Keops::ExchangeRates:Source:Fixed' | abpLocalization }}\n </h5>\n </div>\n\n <div class=\"form-check\">\n <input\n type=\"radio\"\n id=\"sourceCentralBank\"\n class=\"form-check-input\"\n formControlName=\"source\"\n [value]=\"ExchangeRateSource.CentralBank\"\n />\n <h5 for=\"sourceCentralBank\" class=\"form-check-label\">\n {{ 'Keops::ExchangeRates:Source:CentralBank' | abpLocalization }}\n </h5>\n </div>\n </div>\n\n <div class=\"col-6\">\n <small class=\"text-muted d-inline-flex align-items-center gap-1 text-nowrap\">\n <i class=\"fa fa-clock\"></i>\n <span>{{ 'Keops::ExchangeRates:LastUpdated' | abpLocalization }}:</span>\n <span>{{ (exchangeRate?.lastModificationTime | shortDateTime: 'UTC') || '...' }}</span>\n </small>\n </div>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col-6\">\n <label for=\"fixedUsdRate\" class=\"form-label\">\n {{ 'Keops::ExchangeRates:UsdRate' | abpLocalization }}\n </label>\n <input\n id=\"fixedUsdRate\"\n type=\"number\"\n class=\"form-control\"\n formControlName=\"fixedUsdRate\"\n [readonly]=\"!isFixed\"\n />\n </div>\n\n <div class=\"col-6\">\n <label for=\"fixedEurRate\" class=\"form-label\">\n {{ 'Keops::ExchangeRates:EurRate' | abpLocalization }}\n </label>\n <input\n id=\"fixedEurRate\"\n type=\"number\"\n class=\"form-control\"\n formControlName=\"fixedEurRate\"\n [readonly]=\"!isFixed\"\n />\n </div>\n </div>\n </div>\n <div class=\"card-footer\">\n <abp-button\n *abpPermission=\"'KeopsCost.ExchangeRates.Update'\"\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary color-white\"\n buttonType=\"submit\"\n [loading]=\"saving\"\n [disabled]=\"form?.invalid\"\n >{{ 'Keops::Save' | abpLocalization }}</abp-button\n >\n </div>\n </div>\n</form>\n","import { Component, OnInit } from '@angular/core';\r\nimport { ExchangeRateService, ExchangeRateDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-exchange-rates',\r\n templateUrl: './exchange-rates.component.html',\r\n})\r\nexport class ExchangeRatesComponent implements OnInit {\r\n exchangeRate: ExchangeRateDto | null = null;\r\n\r\n constructor(private readonly service: ExchangeRateService) {}\r\n\r\n ngOnInit(): void {\r\n this.loadExchangeRate();\r\n }\r\n\r\n loadExchangeRate(): void {\r\n this.service.get().subscribe({\r\n next: dto => {\r\n this.exchangeRate = dto;\r\n },\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ExchangeRatesComponent } from './components/exchange-rates.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ExchangeRatesComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsSystem.ExchangeRates',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitExchangeRatesRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport {\r\n DxDataGridModule,\r\n DxTextBoxModule,\r\n DxButtonModule,\r\n DxCheckBoxModule,\r\n} from 'devextreme-angular';\r\nimport { ExchangeRatesComponent } from './components/exchange-rates.component';\r\nimport { HitExchangeRatesRoutingModule } from './hit-exchange-rates-routing.module';\r\nimport { CentralBankRatesComponent } from './components/central-bank-rates.component';\r\nimport { FixedRatesFormComponent } from './components/fixed-rates-form.component';\r\n\r\n@NgModule({\r\n declarations: [ExchangeRatesComponent, CentralBankRatesComponent, FixedRatesFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n DxDataGridModule,\r\n DxTextBoxModule,\r\n DxButtonModule,\r\n DxCheckBoxModule,\r\n HitExchangeRatesRoutingModule,\r\n ],\r\n})\r\nexport class HitExchangeRatesModule {}\r\n\r\nexport function loadHitExchangeRatesModuleAsChild() {\r\n return Promise.resolve(HitExchangeRatesModule);\r\n}\r\n","import { CostItemCalculationType, Currency, CostGroupRole } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { CostCalculationStage } from '../cost-calculation.models';\r\n\r\nexport interface CostAmount {\r\n try: number;\r\n usd: number;\r\n eur: number;\r\n}\r\n\r\nexport interface EngineRequest {\r\n rawOilPrice: number;\r\n rawOilCurrency: Currency;\r\n rateUsd: number;\r\n rateEur: number;\r\n stages: CostCalculationStage[];\r\n}\r\n\r\nexport interface CostLine {\r\n costItemCode: string;\r\n costItemName: string;\r\n calculationType: CostItemCalculationType;\r\n systemCode?: number;\r\n currency?: Currency;\r\n ratePercent?: number;\r\n amount: CostAmount;\r\n}\r\n\r\nexport interface CostStage {\r\n groupCode?: string;\r\n groupName?: string;\r\n displayOrder: number;\r\n groupRole: CostGroupRole;\r\n lines: CostLine[];\r\n subtotal: CostAmount;\r\n}\r\n\r\nexport interface CostResult {\r\n rawOil: CostAmount;\r\n stages: CostStage[];\r\n productionCost: CostAmount;\r\n totalCost: CostAmount;\r\n profit: CostAmount;\r\n totalSalePrice: CostAmount;\r\n}\r\n\r\nexport interface RoleGroup {\r\n role: CostGroupRole;\r\n stages: CostStage[];\r\n roleTotal: CostAmount;\r\n}\r\n\r\nexport function addAmounts(...amounts: CostAmount[]): CostAmount {\r\n return amounts.reduce(\r\n (acc, a) => ({ try: acc.try + a.try, usd: acc.usd + a.usd, eur: acc.eur + a.eur }),\r\n { try: 0, usd: 0, eur: 0 },\r\n );\r\n}\r\n\r\nexport function buildRoleGroups(rawOil: CostAmount, stages: CostStage[]): RoleGroup[] {\r\n const ORDER = [CostGroupRole.Production, CostGroupRole.Operating, CostGroupRole.Profit, CostGroupRole.None];\r\n const map = new Map<CostGroupRole, CostStage[]>();\r\n for (const stage of stages) {\r\n const list = map.get(stage.groupRole) ?? [];\r\n list.push(stage);\r\n map.set(stage.groupRole, list);\r\n }\r\n return ORDER.filter(role => map.has(role)).map(role => {\r\n const roleStages = map.get(role)!;\r\n const base = role === CostGroupRole.Production ? rawOil : { try: 0, usd: 0, eur: 0 };\r\n const roleTotal = addAmounts(base, ...roleStages.map(st => st.subtotal));\r\n return { role, stages: roleStages, roleTotal };\r\n });\r\n}\r\n\r\nexport interface ResolvedItems {\r\n port: number;\r\n inspectionCustoms: number;\r\n freight: number;\r\n lossRate: number;\r\n refineryOverhead: number;\r\n refineryAuxMaterials: number;\r\n fillingPackagingOverhead: number;\r\n packaging: number;\r\n salesMarketing: number;\r\n generalAdmin: number;\r\n finance: number;\r\n contingency: number;\r\n variableDepreciation: number;\r\n profitRate: number;\r\n}\r\n","import { Currency } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { CostAmount } from './models';\r\n\r\nexport function toAmount(baseUsd: number, rateUsd: number, rateEur: number): CostAmount {\r\n return {\r\n usd: baseUsd,\r\n try: baseUsd * rateUsd,\r\n eur: rateEur > 0 ? (baseUsd * rateUsd) / rateEur : 0,\r\n };\r\n}\r\n\r\nexport function toBaseUsd(\r\n value: number,\r\n currency: Currency | undefined,\r\n rateUsd: number,\r\n rateEur: number,\r\n): number {\r\n switch (currency) {\r\n case Currency.USD:\r\n return value;\r\n case Currency.TRY:\r\n return rateUsd <= 0 ? 0 : value / rateUsd;\r\n case Currency.EUR:\r\n return rateUsd <= 0 ? 0 : (value * rateEur) / rateUsd;\r\n default:\r\n return value;\r\n }\r\n}\r\n","export function parseDecimal(value: number | string | null | undefined): number {\r\n if (value == null || value === '') return 0;\r\n if (typeof value === 'number') return isNaN(value) ? 0 : value;\r\n const parsed = parseFloat(value.replace(',', '.'));\r\n return isNaN(parsed) ? 0 : parsed;\r\n}\r\n","import { CostItemSystemCode } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { parseDecimal } from '../../../utils/number.utils';\r\nimport { CostCalculationItem, CostCalculationStage } from '../cost-calculation.models';\r\nimport { toBaseUsd } from './currency.utils';\r\nimport { ResolvedItems } from './models';\r\n\r\nexport function indexItemsBySystemCode(\r\n stages: CostCalculationStage[],\r\n): Map<number, CostCalculationItem> {\r\n const map = new Map<number, CostCalculationItem>();\r\n for (const stage of stages) {\r\n for (const item of stage.items) {\r\n if (item.systemCode != null) {\r\n map.set(item.systemCode, item);\r\n }\r\n }\r\n }\r\n return map;\r\n}\r\n\r\nexport function resolveItems(\r\n itemsByCode: Map<number, CostCalculationItem>,\r\n rateUsd: number,\r\n rateEur: number,\r\n): ResolvedItems {\r\n const baseUsd = (code: CostItemSystemCode): number => {\r\n const item = itemsByCode.get(code);\r\n return item ? toBaseUsd(parseDecimal(item.value), item.currency, rateUsd, rateEur) : 0;\r\n };\r\n const ratePercent = (code: CostItemSystemCode): number =>\r\n parseDecimal(itemsByCode.get(code)?.value ?? 0);\r\n\r\n return {\r\n port: baseUsd(CostItemSystemCode.Port),\r\n inspectionCustoms: baseUsd(CostItemSystemCode.InspectionCustoms),\r\n freight: baseUsd(CostItemSystemCode.Freight),\r\n lossRate: ratePercent(CostItemSystemCode.Loss),\r\n refineryOverhead: baseUsd(CostItemSystemCode.RefineryOverhead),\r\n refineryAuxMaterials: baseUsd(CostItemSystemCode.RefineryAuxMaterials),\r\n fillingPackagingOverhead: baseUsd(CostItemSystemCode.FillingPackagingOverhead),\r\n packaging: baseUsd(CostItemSystemCode.Packaging),\r\n salesMarketing: baseUsd(CostItemSystemCode.SalesMarketing),\r\n generalAdmin: baseUsd(CostItemSystemCode.GeneralAdmin),\r\n finance: baseUsd(CostItemSystemCode.Finance),\r\n contingency: baseUsd(CostItemSystemCode.Contingency),\r\n variableDepreciation: baseUsd(CostItemSystemCode.VariableDepreciation),\r\n profitRate: ratePercent(CostItemSystemCode.ProfitRate),\r\n };\r\n}\r\n","import { CostItemCalculationType, CostItemSystemCode } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { parseDecimal } from '../../../utils/number.utils';\r\nimport { CostCalculationItem, CostCalculationStage } from '../cost-calculation.models';\r\nimport { toAmount, toBaseUsd } from './currency.utils';\r\nimport { CostLine, CostStage, ResolvedItems } from './models';\r\n\r\nexport function buildComputedBaseByCode(\r\n resolvedItems: ResolvedItems,\r\n loss: number,\r\n profit: number,\r\n): Map<number, number> {\r\n return new Map([\r\n [CostItemSystemCode.Port, resolvedItems.port],\r\n [CostItemSystemCode.InspectionCustoms, resolvedItems.inspectionCustoms],\r\n [CostItemSystemCode.Freight, resolvedItems.freight],\r\n [CostItemSystemCode.Loss, loss],\r\n [CostItemSystemCode.RefineryOverhead, resolvedItems.refineryOverhead],\r\n [CostItemSystemCode.RefineryAuxMaterials, resolvedItems.refineryAuxMaterials],\r\n [CostItemSystemCode.FillingPackagingOverhead, resolvedItems.fillingPackagingOverhead],\r\n [CostItemSystemCode.Packaging, resolvedItems.packaging],\r\n [CostItemSystemCode.SalesMarketing, resolvedItems.salesMarketing],\r\n [CostItemSystemCode.GeneralAdmin, resolvedItems.generalAdmin],\r\n [CostItemSystemCode.Finance, resolvedItems.finance],\r\n [CostItemSystemCode.Contingency, resolvedItems.contingency],\r\n [CostItemSystemCode.VariableDepreciation, resolvedItems.variableDepreciation],\r\n [CostItemSystemCode.ProfitRate, profit],\r\n ]);\r\n}\r\n\r\nexport function buildCostStages(\r\n stages: CostCalculationStage[],\r\n computedBaseByCode: Map<number, number>,\r\n itemsByCode: Map<number, CostCalculationItem>,\r\n rateUsd: number,\r\n rateEur: number,\r\n): CostStage[] {\r\n return stages\r\n .slice()\r\n .sort((a, b) => a.displayOrder - b.displayOrder)\r\n .map(stage => {\r\n let stageTotalUsd = 0;\r\n const lines: CostLine[] = stage.items.map(item => {\r\n const itemUsd =\r\n item.systemCode != null\r\n ? (computedBaseByCode.get(item.systemCode) ?? 0)\r\n : toBaseUsd(parseDecimal(item.value), item.currency, rateUsd, rateEur);\r\n stageTotalUsd += itemUsd;\r\n return {\r\n costItemCode: item.costItemCode,\r\n costItemName: item.costItemName,\r\n calculationType: item.calculationType,\r\n systemCode: item.systemCode,\r\n currency: item.currency,\r\n ratePercent:\r\n item.calculationType === CostItemCalculationType.Rate\r\n ? parseDecimal(itemsByCode.get(item.systemCode!)?.value ?? 0)\r\n : undefined,\r\n amount: toAmount(itemUsd, rateUsd, rateEur),\r\n };\r\n });\r\n return {\r\n groupCode: stage.groupCode,\r\n groupName: stage.groupName,\r\n displayOrder: stage.displayOrder,\r\n groupRole: stage.groupRole,\r\n lines,\r\n subtotal: toAmount(stageTotalUsd, rateUsd, rateEur),\r\n };\r\n });\r\n}\r\n","import { toAmount, toBaseUsd } from './currency.utils';\r\nimport { indexItemsBySystemCode, resolveItems } from './item-resolver';\r\nimport { buildComputedBaseByCode, buildCostStages } from './stage-builder';\r\nimport { CostResult, EngineRequest, ResolvedItems } from './models';\r\n\r\nexport function calculateLoss(rawOilUsd: number, resolvedItems: ResolvedItems): number {\r\n return (\r\n ((rawOilUsd + resolvedItems.port + resolvedItems.inspectionCustoms + resolvedItems.freight) *\r\n resolvedItems.lossRate) /\r\n 100\r\n );\r\n}\r\n\r\nexport function calculateProductionCost(\r\n rawOilUsd: number,\r\n resolvedItems: ResolvedItems,\r\n loss: number,\r\n): number {\r\n return (\r\n rawOilUsd +\r\n resolvedItems.port +\r\n resolvedItems.inspectionCustoms +\r\n resolvedItems.freight +\r\n loss +\r\n resolvedItems.refineryOverhead +\r\n resolvedItems.refineryAuxMaterials +\r\n resolvedItems.fillingPackagingOverhead\r\n );\r\n}\r\n\r\nexport function calculateTotalCost(productionCost: number, resolvedItems: ResolvedItems): number {\r\n return (\r\n productionCost +\r\n resolvedItems.packaging +\r\n resolvedItems.salesMarketing +\r\n resolvedItems.generalAdmin +\r\n resolvedItems.finance +\r\n resolvedItems.contingency +\r\n resolvedItems.variableDepreciation\r\n );\r\n}\r\n\r\nexport function calculateProfit(totalCost: number, profitRate: number): number {\r\n return (totalCost * profitRate) / 100;\r\n}\r\n\r\nexport function calculateTotalSalePrice(totalCost: number, profit: number): number {\r\n return totalCost + profit;\r\n}\r\n\r\nexport function calculateCost(request: EngineRequest): CostResult {\r\n const { rateUsd, rateEur } = request;\r\n const rawOilUsd = toBaseUsd(request.rawOilPrice, request.rawOilCurrency, rateUsd, rateEur);\r\n const itemsByCode = indexItemsBySystemCode(request.stages);\r\n const resolvedItems = resolveItems(itemsByCode, rateUsd, rateEur);\r\n\r\n const loss = calculateLoss(rawOilUsd, resolvedItems);\r\n const productionCost = calculateProductionCost(rawOilUsd, resolvedItems, loss);\r\n const totalCost = calculateTotalCost(productionCost, resolvedItems);\r\n const profit = calculateProfit(totalCost, resolvedItems.profitRate);\r\n const totalSalePrice = calculateTotalSalePrice(totalCost, profit);\r\n\r\n const computedBaseByCode = buildComputedBaseByCode(resolvedItems, loss, profit);\r\n const stages = buildCostStages(request.stages, computedBaseByCode, itemsByCode, rateUsd, rateEur);\r\n\r\n return {\r\n rawOil: toAmount(rawOilUsd, rateUsd, rateEur),\r\n stages,\r\n productionCost: toAmount(productionCost, rateUsd, rateEur),\r\n totalCost: toAmount(totalCost, rateUsd, rateEur),\r\n profit: toAmount(profit, rateUsd, rateEur),\r\n totalSalePrice: toAmount(totalSalePrice, rateUsd, rateEur),\r\n };\r\n}\r\n","import { Currency } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport interface CurrencyOption {\r\n value: Currency;\r\n label: string;\r\n}\r\n\r\n// Single source of truth for the currency dropdown options shared across feature forms.\r\nexport const CURRENCY_OPTIONS: CurrencyOption[] = [\r\n { value: Currency.TRY, label: 'TRY' },\r\n { value: Currency.USD, label: 'USD' },\r\n { value: Currency.EUR, label: 'EUR' },\r\n];\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport {\r\n CostParameterDto,\r\n ItemDto,\r\n CostItemCalculationType,\r\n Currency,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { CostCalculationStage } from '../cost-calculation.models';\r\nimport { CURRENCY_OPTIONS } from '../../../utils/currency.utils';\r\n\r\n@Component({\r\n selector: 'lib-cost-calculation-inputs',\r\n templateUrl: './cost-calculation-inputs.component.html',\r\n})\r\nexport class CostCalculationInputsComponent {\r\n readonly RateType = CostItemCalculationType.Rate;\r\n readonly currencyOptions = CURRENCY_OPTIONS;\r\n\r\n @Input() itemsDataSource: DataSource | null = null;\r\n @Input() itemDisplayExpr!: (item: ItemDto) => string;\r\n\r\n @Input() parameters: CostParameterDto[] = [];\r\n @Input() parameterDisplayExpr!: (p: CostParameterDto) => string;\r\n\r\n @Input() stages: CostCalculationStage[] = [];\r\n\r\n @Input() selectedItemCode: string | null = null;\r\n @Output() selectedItemCodeChange = new EventEmitter<string | null>();\r\n\r\n @Input() selectedParameterCode: string | null = null;\r\n @Output() selectedParameterCodeChange = new EventEmitter<string | null>();\r\n\r\n @Input() rawOilPrice = 0;\r\n @Output() rawOilPriceChange = new EventEmitter<number>();\r\n\r\n @Input() rawOilCurrency: Currency = Currency.USD;\r\n @Output() rawOilCurrencyChange = new EventEmitter<Currency>();\r\n\r\n @Input() systemRateUsd = 0;\r\n @Input() systemRateEur = 0;\r\n\r\n @Input() rateUsd = 0;\r\n @Output() rateUsdChange = new EventEmitter<number>();\r\n\r\n @Input() rateEur = 0;\r\n @Output() rateEurChange = new EventEmitter<number>();\r\n\r\n @Output() itemChange = new EventEmitter<void>();\r\n @Output() parameterChange = new EventEmitter<void>();\r\n @Output() recalc = new EventEmitter<void>();\r\n\r\n onItemSelected(): void {\r\n this.selectedItemCodeChange.emit(this.selectedItemCode);\r\n this.itemChange.emit();\r\n }\r\n\r\n onParameterSelected(): void {\r\n this.selectedParameterCodeChange.emit(this.selectedParameterCode);\r\n this.parameterChange.emit();\r\n }\r\n\r\n onRawOilPriceChange(): void {\r\n this.emitAndRecalc(this.rawOilPriceChange, this.rawOilPrice);\r\n }\r\n onRawOilCurrencyChange(): void {\r\n this.emitAndRecalc(this.rawOilCurrencyChange, this.rawOilCurrency);\r\n }\r\n onRateUsdChange(): void {\r\n this.emitAndRecalc(this.rateUsdChange, this.rateUsd);\r\n }\r\n onRateEurChange(): void {\r\n this.emitAndRecalc(this.rateEurChange, this.rateEur);\r\n }\r\n\r\n private emitAndRecalc<T>(emitter: EventEmitter<T>, value: T): void {\r\n emitter.emit(value);\r\n this.recalc.emit();\r\n }\r\n}\r\n","<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 <div class=\"input-group\">\r\n <input type=\"number\" class=\"form-control\" [(ngModel)]=\"rawOilPrice\" (ngModelChange)=\"onRawOilPriceChange()\" />\r\n <select\r\n class=\"form-select flex-grow-0 w-auto\"\r\n [(ngModel)]=\"rawOilCurrency\"\r\n (ngModelChange)=\"onRawOilCurrencyChange()\"\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\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=\"item.calculationType === RateType\">%</span>\r\n <select\r\n *ngIf=\"item.calculationType !== RateType\"\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 — {{ 'Keops::CostCalculations:NoItems' | abpLocalization }} —\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { costGroupRoleTotalLabels } from '../../cost-groups/cost-group-role-l10n-helper';\r\nimport { CostResult, RoleGroup } from '../engine';\r\n\r\n@Component({\r\n selector: 'lib-cost-calculation-results',\r\n templateUrl: './cost-calculation-results.component.html',\r\n})\r\nexport class CostCalculationResultsComponent {\r\n @Input() result: CostResult | null = null;\r\n @Input() roleGroups: RoleGroup[] = [];\r\n @Input() itemName: string | null = null;\r\n @Input() rateUsd = 0;\r\n @Input() rateEur = 0;\r\n\r\n readonly costGroupRoleTotalLabels = costGroupRoleTotalLabels;\r\n}\r\n","<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\">·</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 }} …\r\n </div>\r\n </ng-template>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CostGroupRole } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { costGroupRoleTotalLabels } from '../../cost-groups/cost-group-role-l10n-helper';\r\nimport { addAmounts, RoleGroup } from '../engine';\r\n\r\n@Component({\r\n selector: 'lib-cost-calculation-result-sum',\r\n templateUrl: './cost-calculation-result-sum.component.html',\r\n})\r\nexport class CostCalculationResultSumComponent {\r\n @Input() roleGroups: RoleGroup[] = [];\r\n\r\n get summaryCards() {\r\n const production = this.roleGroups.find(g => g.role === CostGroupRole.Production)\r\n ?.roleTotal ?? { try: 0, usd: 0, eur: 0 };\r\n const operating = this.roleGroups.find(g => g.role === CostGroupRole.Operating)?.roleTotal ?? {\r\n try: 0,\r\n usd: 0,\r\n eur: 0,\r\n };\r\n const total = addAmounts(...this.roleGroups.map(g => g.roleTotal));\r\n return [\r\n { label: costGroupRoleTotalLabels[CostGroupRole.Production], amount: production },\r\n { label: costGroupRoleTotalLabels[CostGroupRole.Operating], amount: operating },\r\n { label: 'Keops::CostCalculations:TotalSalePrice', amount: total, highlight: true },\r\n ];\r\n }\r\n}\r\n","<div class=\"row mb-3\">\r\n <div class=\"col-md-4\" *ngFor=\"let card of summaryCards\">\r\n <div class=\"card h-100\" [class.border-warning]=\"card.highlight\">\r\n <div class=\"card-body\">\r\n <div class=\"text-muted text-uppercase small fw-bold\">\r\n {{ card.label | abpLocalization }}\r\n </div>\r\n <div class=\"fs-4 fw-bold\">$ {{ card.amount.usd | number }}</div>\r\n <div class=\"text-muted small\">€ {{ card.amount.eur | number }}</div>\r\n <div class=\"text-muted small\">₺ {{ card.amount.try | number }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { forkJoin } from 'rxjs';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport {\r\n CostGroupService,\r\n CostItemService,\r\n CostParameterService,\r\n ExchangeRateService,\r\n ItemService,\r\n ItemDto,\r\n CostParameterCategoryLookupDto,\r\n CostParameterDto,\r\n CostItemDto,\r\n CostGroupDto,\r\n ExchangeRateDto,\r\n ExchangeRateSource,\r\n Currency,\r\n CostItemCalculationType,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { buildRoleGroups, calculateCost, CostResult, RoleGroup } from '../engine';\r\nimport { CostCalculationItem, CostCalculationStage } from '../cost-calculation.models';\r\nimport { parseDecimal } from '../../../utils/number.utils';\r\n\r\n@Component({\r\n selector: 'lib-cost-calculation',\r\n templateUrl: './cost-calculation.component.html',\r\n styleUrls: ['./cost-calculation.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CostCalculationComponent implements OnInit {\r\n readonly itemCodePrefix = '05';\r\n productItems: ItemDto[] = [];\r\n itemsDataSource: DataSource | null = null;\r\n selectedItemCode: string | null = null;\r\n selectedItemName: string | null = null;\r\n\r\n parameters: CostParameterDto[] = [];\r\n selectedParameterCode: string | null = null;\r\n\r\n rawOilPrice = 0;\r\n rawOilCurrency = Currency.USD;\r\n\r\n systemRateUsd = 0;\r\n systemRateEur = 0;\r\n\r\n rateUsd = 0;\r\n rateEur = 0;\r\n\r\n stages: CostCalculationStage[] = [];\r\n result: CostResult | null = null;\r\n roleGroups: RoleGroup[] = [];\r\n\r\n private costItemsByCode = new Map<string, CostItemDto>();\r\n private groups: CostGroupDto[] = [];\r\n private productGroupNames = new Map<string, string>();\r\n private regionNames = new Map<string, string>();\r\n\r\n constructor(\r\n private readonly parameterService: CostParameterService,\r\n private readonly costItemService: CostItemService,\r\n private readonly costGroupService: CostGroupService,\r\n private readonly exchangeRateService: ExchangeRateService,\r\n private readonly itemService: ItemService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.calculate();\r\n\r\n forkJoin({\r\n parameters: this.parameterService.getList(),\r\n costItems: this.costItemService.getList(),\r\n groups: this.costGroupService.getList(),\r\n rate: this.exchangeRateService.get(),\r\n lookups: this.parameterService.getCodeLookups(),\r\n items: this.itemService.getList(this.itemCodePrefix),\r\n }).subscribe(({ parameters, costItems, groups, rate, lookups, items }) => {\r\n this.parameters = parameters ?? [];\r\n this.productItems = items ?? [];\r\n this.itemsDataSource = new DataSource({\r\n store: new ArrayStore({ key: 'code', data: this.productItems }),\r\n paginate: true,\r\n pageSize: 50,\r\n });\r\n\r\n this.productGroupNames = this.toNameMap(lookups?.productGroups);\r\n this.regionNames = this.toNameMap(lookups?.regions);\r\n\r\n this.costItemsByCode = new Map<string, CostItemDto>();\r\n for (const ci of costItems ?? []) {\r\n if (ci.code) this.costItemsByCode.set(ci.code, ci);\r\n }\r\n\r\n this.groups = (groups ?? []).slice().sort((a, b) => a.displayOrder - b.displayOrder);\r\n\r\n const [usd, eur] = this.resolveRates(rate);\r\n this.systemRateUsd = usd;\r\n this.systemRateEur = eur;\r\n this.rateUsd = usd;\r\n this.rateEur = eur;\r\n\r\n this.calculate();\r\n });\r\n }\r\n\r\n parameterLabel(p: CostParameterDto): string {\r\n const productGroup = this.productGroupNames.get(p.productGroup ?? '') ?? p.productGroup;\r\n const region = this.regionNames.get(p.region ?? '') ?? p.region;\r\n return [productGroup, region].filter(Boolean).join(' — ') || (p.code ?? '');\r\n }\r\n\r\n onItemChange(): void {\r\n const item = this.productItems.find(x => x.code === this.selectedItemCode);\r\n this.selectedItemName = item?.name ?? null;\r\n }\r\n\r\n readonly itemDisplayExpr = (item: ItemDto): string =>\r\n item ? [item.code, item.name].filter(Boolean).join(' — ') : '';\r\n\r\n readonly parameterDisplayExpr = (p: CostParameterDto): string =>\r\n p ? this.parameterLabel(p) : '';\r\n\r\n private toNameMap(options: CostParameterCategoryLookupDto[] | undefined): Map<string, string> {\r\n const map = new Map<string, string>();\r\n for (const option of options ?? []) {\r\n if (option.code) map.set(option.code, option.name ?? option.code);\r\n }\r\n return map;\r\n }\r\n\r\n onParameterChange(): void {\r\n const parameter = this.parameters.find(p => p.code === this.selectedParameterCode);\r\n this.stages = parameter ? this.buildStages(parameter) : [];\r\n this.calculate();\r\n }\r\n\r\n private buildValuesByCode(\r\n parameter: CostParameterDto,\r\n ): Map<string, { value: number; currency?: Currency }> {\r\n const map = new Map<string, { value: number; currency?: Currency }>();\r\n for (const item of parameter.items ?? []) {\r\n if (item.costItemCode) {\r\n map.set(item.costItemCode, { value: parseDecimal(item.value), currency: item.currency });\r\n }\r\n }\r\n return map;\r\n }\r\n\r\n private buildStages(parameter: CostParameterDto): CostCalculationStage[] {\r\n const valuesByCode = this.buildValuesByCode(parameter);\r\n return this.groups.map(group => {\r\n const items: CostCalculationItem[] = [];\r\n for (const code of group.itemCodes ?? []) {\r\n const costItem = this.costItemsByCode.get(code);\r\n if (!costItem) continue;\r\n const stored = valuesByCode.get(code);\r\n const isRate = costItem.calculationType === CostItemCalculationType.Rate;\r\n items.push({\r\n costItemCode: code,\r\n costItemName: costItem.name ?? code,\r\n calculationType: costItem.calculationType,\r\n systemCode: costItem.systemCode ?? undefined,\r\n currency: stored?.currency ?? (isRate ? undefined : Currency.TRY),\r\n value: stored?.value ?? 0,\r\n });\r\n }\r\n return {\r\n groupCode: group.code ?? '',\r\n groupName: group.name ?? '',\r\n displayOrder: group.displayOrder,\r\n groupRole: group.groupRole,\r\n items,\r\n };\r\n });\r\n }\r\n\r\n calculate(): void {\r\n this.result = calculateCost({\r\n rawOilPrice: parseDecimal(this.rawOilPrice),\r\n rawOilCurrency: this.rawOilCurrency,\r\n rateUsd: parseDecimal(this.rateUsd),\r\n rateEur: parseDecimal(this.rateEur),\r\n stages: this.stages,\r\n });\r\n this.roleGroups = buildRoleGroups(this.result.rawOil, this.result.stages);\r\n }\r\n\r\n print(): void {\r\n window.print();\r\n }\r\n\r\n private resolveRates(rate: ExchangeRateDto): [number, number] {\r\n if (!rate) return [0, 0];\r\n if (rate.source === ExchangeRateSource.Fixed) {\r\n return [rate.fixedUsdRate ?? 0, rate.fixedEurRate ?? 0];\r\n }\r\n return [rate.cbExchangeRate?.usdBuyingRate ?? 0, rate.cbExchangeRate?.eurBuyingRate ?? 0];\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { CostCalculationComponent } from './components/cost-calculation.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: CostCalculationComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsCost.CostCalculations',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitCostCalculationRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { DxSelectBoxModule } from 'devextreme-angular';\r\nimport { CostCalculationComponent } from './components/cost-calculation.component';\r\nimport { CostCalculationInputsComponent } from './components/cost-calculation-inputs.component';\r\nimport { CostCalculationResultsComponent } from './components/cost-calculation-results.component';\r\nimport { CostCalculationResultSumComponent } from './components/cost-calculation-result-sum.component';\r\nimport { HitCostCalculationRoutingModule } from './hit-cost-calculation-routing.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n CostCalculationComponent,\r\n CostCalculationInputsComponent,\r\n CostCalculationResultsComponent,\r\n CostCalculationResultSumComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n HitCostCalculationRoutingModule,\r\n DxSelectBoxModule,\r\n ],\r\n})\r\nexport class HitCostCalculationModule {}\r\n\r\nexport function loadHitCostCalculationModuleAsChild() {\r\n return Promise.resolve(HitCostCalculationModule);\r\n}\r\n","import { CostParameterStatus } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport const statusLabels: Record<CostParameterStatus, string> = {\r\n [CostParameterStatus.Active]: 'Keops::CostParameters:Status:Active',\r\n [CostParameterStatus.Passive]: 'Keops::CostParameters:Status:Passive',\r\n [CostParameterStatus.InProgress]: 'Keops::CostParameters:Status:InProgress',\r\n};\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n CostItemService,\r\n CostParameterService,\r\n CostItemDto,\r\n CostItemCalculationType,\r\n Currency,\r\n CostParameterCategoryLookupDto,\r\n CostParameterDto,\r\n CostParameterStatus,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { statusLabels } from '../cost-parameter-l10n-helper';\r\nimport { calculationTypeLabels } from '../../cost-items/cost-item-l10n-helper';\r\nimport { CURRENCY_OPTIONS } from '../../../utils/currency.utils';\r\n\r\nconst statusOptions = [\r\n CostParameterStatus.InProgress,\r\n CostParameterStatus.Active,\r\n CostParameterStatus.Passive,\r\n].map(value => ({ value, label: statusLabels[value] }));\r\n\r\n@Component({\r\n selector: 'lib-cost-parameter-form',\r\n templateUrl: './cost-parameter-form.component.html',\r\n})\r\nexport class CostParameterFormComponent implements OnInit {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: CostParameterDto | null = null;\r\n @Input() productGroupOptions: CostParameterCategoryLookupDto[] = [];\r\n @Input() regionOptions: CostParameterCategoryLookupDto[] = [];\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n costItems: CostItemDto[] = [];\r\n\r\n readonly statusOptions = statusOptions;\r\n readonly currencyOptions = CURRENCY_OPTIONS;\r\n readonly customLabel = calculationTypeLabels[CostItemCalculationType.Custom];\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: CostParameterService,\r\n private readonly costItemService: CostItemService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.form = this.fb.group({\r\n region: [this.current?.region ?? null, [Validators.required]],\r\n productGroup: [this.current?.productGroup ?? null, [Validators.required]],\r\n status: [this.current?.status ?? CostParameterStatus.InProgress, [Validators.required]],\r\n description: [this.current?.description ?? '', [Validators.maxLength(512)]],\r\n items: this.fb.array([]),\r\n });\r\n\r\n this.loadCostItems();\r\n }\r\n\r\n get itemsArray(): FormArray {\r\n return this.form.get('items') as FormArray;\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::CostParameters:CreateTitle'\r\n : 'Keops::CostParameters:EditTitle';\r\n }\r\n\r\n isRate(costItem: CostItemDto): boolean {\r\n return costItem.calculationType === CostItemCalculationType.Rate;\r\n }\r\n\r\n isCustom(costItem: CostItemDto): boolean {\r\n return costItem.calculationType === CostItemCalculationType.Custom;\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n this.saving = true;\r\n\r\n const { items, ...rest } = this.form.value;\r\n\r\n const input = {\r\n ...rest,\r\n items: this.costItems.map((costItem, index) => ({\r\n costItemCode: costItem.code,\r\n value:\r\n items[index].value != null && items[index].value !== ''\r\n ? String(items[index].value)\r\n : null,\r\n currency: this.isRate(costItem) || this.isCustom(costItem) ? null : items[index].currency,\r\n })),\r\n };\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(input)\r\n : this.service.update(this.current!.code!, input);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n\r\n private loadCostItems(): void {\r\n this.costItemService.getList().subscribe(data => {\r\n this.costItems = [...data].sort((a, b) =>\r\n (a.code ?? '').localeCompare(b.code ?? '', undefined, { numeric: true }),\r\n );\r\n\r\n const currentItemsByCode = new Map(\r\n (this.current?.items ?? []).map(item => [item.costItemCode, item]),\r\n );\r\n\r\n this.itemsArray.clear();\r\n this.costItems.forEach(costItem => {\r\n const currentItem = currentItemsByCode.get(costItem.code);\r\n\r\n this.itemsArray.push(\r\n this.fb.group({\r\n value: [currentItem?.value ?? null],\r\n currency: [currentItem?.currency ?? Currency.TRY],\r\n }),\r\n );\r\n });\r\n });\r\n }\r\n}\r\n","<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","import { Component, OnInit } from '@angular/core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport {\r\n CostParameterService,\r\n CostParameterCategoryLookupDto,\r\n CostParameterDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { statusLabels } from '../cost-parameter-l10n-helper';\r\n\r\n@Component({\r\n selector: 'lib-cost-parameters',\r\n templateUrl: './cost-parameters.component.html',\r\n})\r\nexport class CostParametersComponent implements OnInit {\r\n items: CostParameterDto[] = [];\r\n\r\n productGroupOptions: CostParameterCategoryLookupDto[] = [];\r\n regionOptions: CostParameterCategoryLookupDto[] = [];\r\n\r\n selected: CostParameterDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: CostParameterService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadCodeLookups();\r\n this.loadList();\r\n }\r\n\r\n getStatusLabel(value: any): string {\r\n return statusLabels[value as keyof typeof statusLabels] ?? '';\r\n }\r\n\r\n getProductGroupName(code: string | undefined | null): string {\r\n return this.resolveName(this.productGroupOptions, code);\r\n }\r\n\r\n getRegionName(code: string | undefined | null): string {\r\n return this.resolveName(this.regionOptions, code);\r\n }\r\n\r\n private resolveName(\r\n options: CostParameterCategoryLookupDto[],\r\n code: string | undefined | null,\r\n ): string {\r\n if (!code) return '';\r\n return options.find(x => x.code === code)?.name ?? code;\r\n }\r\n\r\n loadCodeLookups(): void {\r\n this.service.getCodeLookups().subscribe(data => {\r\n this.productGroupOptions = data.productGroups ?? [];\r\n this.regionOptions = data.regions ?? [];\r\n });\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: CostParameterDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: CostParameterDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { CostParametersComponent } from './components/cost-parameters.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: CostParametersComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: {\n requiredPolicy: 'KeopsCost.CostParameters',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HitCostParametersRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { NgbDropdownModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CostParametersComponent } from './components/cost-parameters.component';\nimport { CostParameterFormComponent } from './components/cost-parameter-form.component';\nimport { HitCostParametersRoutingModule } from './hit-cost-parameters-routing.module';\nimport { DxDataGridModule } from 'devextreme-angular';\n\n@NgModule({\n declarations: [CostParametersComponent, CostParameterFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ThemeSharedModule,\n PageModule,\n CommercialUiModule,\n NgbDropdownModule,\n NgbNavModule,\n HitCostParametersRoutingModule,\n DxDataGridModule,\n ],\n})\nexport class HitCostParametersModule {}\n\nexport function loadHitCostParametersModuleAsChild() {\n return Promise.resolve(HitCostParametersModule);\n}\n","import { CostParameterCategoryParentCode } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport const parentCodeLabels: Record<CostParameterCategoryParentCode, string> = {\r\n [CostParameterCategoryParentCode.Code1]: 'Keops::CostParameterCategories:ParentCode:Code1',\r\n [CostParameterCategoryParentCode.Code2]: 'Keops::CostParameterCategories:ParentCode:Code2',\r\n [CostParameterCategoryParentCode.Code3]: 'Keops::CostParameterCategories:ParentCode:Code3',\r\n [CostParameterCategoryParentCode.Code4]: 'Keops::CostParameterCategories:ParentCode:Code4',\r\n [CostParameterCategoryParentCode.Code5]: 'Keops::CostParameterCategories:ParentCode:Code5',\r\n};\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport {\r\n CostParameterCategoryService,\r\n CostParameterCategoryDto,\r\n CostParameterCategoryParentCode,\r\n costParameterCategoryParentCodeOptions,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { parentCodeLabels } from '../cost-parameter-category-l10n-helper';\r\n\r\n@Component({\r\n selector: 'lib-cost-parameter-category-form',\r\n templateUrl: './cost-parameter-category-form.component.html',\r\n})\r\nexport class CostParameterCategoryFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: CostParameterCategoryDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n\r\n readonly parentCodeOptions = costParameterCategoryParentCodeOptions.map(option => ({\r\n value: option.value,\r\n label: parentCodeLabels[option.value as CostParameterCategoryParentCode] ?? option.key,\r\n }));\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: CostParameterCategoryService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['visible']?.currentValue && this.form) {\r\n this.resetForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: ['', Validators.required],\r\n parentCode: [null, Validators.required],\r\n });\r\n this.resetForm();\r\n }\r\n\r\n private resetForm(): void {\r\n if (!this.form) return;\r\n\r\n if (this.mode === 'edit' && this.current) {\r\n this.form.patchValue({\r\n name: this.current.name ?? '',\r\n parentCode: this.current.parentCode ?? null,\r\n });\r\n } else {\r\n this.form.reset({ name: '', parentCode: null });\r\n }\r\n }\r\n\r\n close(): void {\r\n this.visibleChange.emit(false);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) return;\r\n\r\n if (this.mode === 'create') {\r\n this.service\r\n .create({\r\n name: this.form.get('name')?.value,\r\n parentCode: this.form.get('parentCode')?.value,\r\n })\r\n .subscribe({ next: () => this.saved.emit() });\r\n } else {\r\n this.service\r\n .update(this.current!.code!, {\r\n name: this.form.get('name')?.value,\r\n parentCode: this.form.get('parentCode')?.value,\r\n })\r\n .subscribe({ next: () => this.saved.emit() });\r\n }\r\n }\r\n}\r\n","<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","import { Component, OnInit } from '@angular/core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport {\r\n CostParameterCategoryService,\r\n CostParameterCategoryDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { parentCodeLabels } from '../cost-parameter-category-l10n-helper';\r\n\r\n@Component({\r\n selector: 'lib-cost-parameter-categories',\r\n templateUrl: './cost-parameter-categories.component.html',\r\n})\r\nexport class CostParameterCategoriesComponent implements OnInit {\r\n items: CostParameterCategoryDto[] = [];\r\n\r\n selected: CostParameterCategoryDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: CostParameterCategoryService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n getParentCodeLabel(value: any): string {\r\n return parentCodeLabels[value as keyof typeof parentCodeLabels] ?? '';\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: CostParameterCategoryDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: CostParameterCategoryDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { CostParameterCategoriesComponent } from './components/cost-parameter-categories.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: CostParameterCategoriesComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: {\n requiredPolicy: 'KeopsCost.CostParameterCategories',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HitCostParameterCategoriesRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CostParameterCategoriesComponent } from './components/cost-parameter-categories.component';\nimport { CostParameterCategoryFormComponent } from './components/cost-parameter-category-form.component';\nimport { HitCostParameterCategoriesRoutingModule } from './hit-cost-parameter-categories-routing.module';\nimport { DxDataGridModule } from 'devextreme-angular';\n\n@NgModule({\n declarations: [CostParameterCategoriesComponent, CostParameterCategoryFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ThemeSharedModule,\n PageModule,\n CommercialUiModule,\n NgbDropdownModule,\n HitCostParameterCategoriesRoutingModule,\n DxDataGridModule,\n ],\n})\nexport class HitCostParameterCategoriesModule {}\n\nexport function loadHitCostParameterCategoriesModuleAsChild() {\n return Promise.resolve(HitCostParameterCategoriesModule);\n}\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { PackagingTypeService, PackagingTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-packaging-type-form',\r\n templateUrl: './packaging-type-form.component.html',\r\n})\r\nexport class PackagingTypeFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: PackagingTypeDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: PackagingTypeService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(50)]],\r\n displayOrder: [this.current?.displayOrder ?? 0, [Validators.required, Validators.min(0)]],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::PackagingTypes:CreateTitle'\r\n : 'Keops::PackagingTypes:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\n [(visible)]=\"visible\"\n (visibleChange)=\"onVisibleChange($event)\"\n [busy]=\"saving\"\n [options]=\"{ size: 'md' }\"\n>\n <ng-template #abpHeader>\n <h3>{{ title | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"mb-3\">\n <label for=\"name\" class=\"form-label\">\n {{ 'Keops::PackagingTypes:Name' | abpLocalization }}\n <span class=\"text-danger\">*</span>\n </label>\n <input id=\"name\" type=\"text\" class=\"form-control\" formControlName=\"name\" />\n </div>\n\n <div class=\"mb-3\">\n <label for=\"displayOrder\" class=\"form-label\">\n {{ 'Keops::PackagingTypes:DisplayOrder' | abpLocalization }}\n <span class=\"text-danger\">*</span>\n </label>\n <input\n id=\"displayOrder\"\n type=\"number\"\n min=\"0\"\n class=\"form-control\"\n formControlName=\"displayOrder\"\n />\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpUi::Cancel' | abpLocalization }}\n </button>\n <abp-button\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary\"\n [loading]=\"saving\"\n [disabled]=\"form?.invalid\"\n (click)=\"save()\"\n >\n {{ 'AbpUi::Save' | abpLocalization }}\n </abp-button>\n </ng-template>\n</abp-modal>\n","import { Component, OnInit } from '@angular/core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport { PackagingTypeService, PackagingTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-packaging-types',\r\n templateUrl: './packaging-types.component.html',\r\n})\r\nexport class PackagingTypesComponent implements OnInit {\r\n items: PackagingTypeDto[] = [];\r\n\r\n selected: PackagingTypeDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: PackagingTypeService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: PackagingTypeDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: PackagingTypeDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { PackagingTypesComponent } from './components/packaging-types.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: PackagingTypesComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: {\n requiredPolicy: 'KeopsCost.PackagingTypes',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HitPackagingTypesRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { PackagingTypesComponent } from './components/packaging-types.component';\nimport { PackagingTypeFormComponent } from './components/packaging-type-form.component';\nimport { HitPackagingTypesRoutingModule } from './hit-packaging-types-routing.module';\nimport { DxDataGridModule } from 'devextreme-angular';\n\n@NgModule({\n declarations: [PackagingTypesComponent, PackagingTypeFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ThemeSharedModule,\n PageModule,\n CommercialUiModule,\n NgbDropdownModule,\n HitPackagingTypesRoutingModule,\n DxDataGridModule,\n ],\n})\nexport class HitPackagingTypesModule {}\n\nexport function loadHitPackagingTypesModuleAsChild() {\n return Promise.resolve(HitPackagingTypesModule);\n}\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n PackagingMaterialService,\r\n PackagingTypeService,\r\n PackagingMaterialDto,\r\n PackagingTypeDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-packaging-material-form',\r\n templateUrl: './packaging-material-form.component.html',\r\n})\r\nexport class PackagingMaterialFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: PackagingMaterialDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n packagingTypes: PackagingTypeDto[] = [];\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: PackagingMaterialService,\r\n private readonly packagingTypeService: PackagingTypeService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n this.loadPackagingTypes();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(100)]],\r\n typeCode: [this.current?.typeCode ?? '', Validators.required],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::PackagingMaterials:CreateTitle'\r\n : 'Keops::PackagingMaterials:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n private loadPackagingTypes(): void {\r\n this.packagingTypeService.getList().subscribe(data => {\r\n this.packagingTypes = data;\r\n });\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\n [(visible)]=\"visible\"\n (visibleChange)=\"onVisibleChange($event)\"\n [busy]=\"saving\"\n [options]=\"{ size: 'md' }\"\n>\n <ng-template #abpHeader>\n <h3>{{ title | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"mb-3\">\n <label for=\"name\" class=\"form-label\">\n {{ 'Keops::PackagingMaterials:Name' | abpLocalization }}\n <span class=\"text-danger\">*</span>\n </label>\n <input id=\"name\" type=\"text\" class=\"form-control\" formControlName=\"name\" />\n </div>\n\n <div class=\"mb-3\">\n <label for=\"type\" class=\"form-label\">\n {{ 'Keops::PackagingMaterials:Type' | abpLocalization }}\n <span class=\"text-danger\">*</span>\n </label>\n <select id=\"type\" class=\"form-select\" formControlName=\"typeCode\">\n <option value=\"\">{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\n <option *ngFor=\"let packagingType of packagingTypes\" [value]=\"packagingType.code\">\n {{ packagingType.name }}\n </option>\n </select>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpUi::Cancel' | abpLocalization }}\n </button>\n <abp-button\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary\"\n [loading]=\"saving\"\n [disabled]=\"form?.invalid\"\n (click)=\"save()\"\n >\n {{ 'AbpUi::Save' | abpLocalization }}\n </abp-button>\n </ng-template>\n</abp-modal>\n","import { Component, OnInit } from '@angular/core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport { PackagingMaterialService, PackagingMaterialDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-packaging-materials',\r\n templateUrl: './packaging-materials.component.html',\r\n})\r\nexport class PackagingMaterialsComponent implements OnInit {\r\n items: PackagingMaterialDto[] = [];\r\n\r\n selected: PackagingMaterialDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: PackagingMaterialService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: PackagingMaterialDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: PackagingMaterialDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { PackagingMaterialsComponent } from './components/packaging-materials.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: PackagingMaterialsComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: {\n requiredPolicy: 'KeopsCost.PackagingMaterials',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HitPackagingMaterialsRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { PackagingMaterialsComponent } from './components/packaging-materials.component';\nimport { PackagingMaterialFormComponent } from './components/packaging-material-form.component';\nimport { HitPackagingMaterialsRoutingModule } from './hit-packaging-materials-routing.module';\nimport { DxDataGridModule } from 'devextreme-angular';\n\n@NgModule({\n declarations: [PackagingMaterialsComponent, PackagingMaterialFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ThemeSharedModule,\n PageModule,\n CommercialUiModule,\n NgbDropdownModule,\n HitPackagingMaterialsRoutingModule,\n DxDataGridModule,\n ],\n})\nexport class HitPackagingMaterialsModule {}\n\nexport function loadHitPackagingMaterialsModuleAsChild() {\n return Promise.resolve(HitPackagingMaterialsModule);\n}\n","/**\n * Trims a backend ISO date/datetime string (e.g. `2026-06-22T00:00:00`) to a date-only\n * `yyyy-MM-dd` string, the shape dx-date-box uses with `dateSerializationFormat=\"yyyy-MM-dd\"`.\n * Returns null for empty input (dx-date-box wants null, not '').\n *\n * Slicing is intentional: ISO 8601 always starts with `yyyy-MM-dd`, so this is timezone-safe\n * (unlike going through a `Date`, which would shift the day across time zones).\n */\nexport function toDateOnly(value: string | null | undefined): string | null {\n return value ? value.slice(0, 10) : null;\n}\n","import { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport {\r\n PackagingPriceCreateDto,\r\n PackagingPriceDto,\r\n PackagingPriceLineInputDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { toDateOnly } from '../../utils/date.utils';\r\nimport { LineRow } from './packaging-price-lines.builder';\r\n\r\n// Single source for the document fields: build the form and map it back to the DTO here.\r\n// Create/Update DTOs are structurally identical, so the create shape fits both.\r\nexport function createPackagingPriceForm(\r\n fb: FormBuilder,\r\n current: PackagingPriceDto | null,\r\n mode: 'create' | 'edit',\r\n): FormGroup {\r\n return fb.group({\r\n name: [current?.name ?? '', [Validators.required, Validators.maxLength(100)]],\r\n materialTypeCode: [\r\n { value: current?.materialTypeCode ?? null, disabled: mode === 'edit' },\r\n Validators.required,\r\n ],\r\n fromDate: [toDateOnly(current?.fromDate), Validators.required],\r\n toDate: [toDateOnly(current?.toDate), Validators.required],\r\n usdRate: [current?.usdRate ?? 0, Validators.required],\r\n eurRate: [current?.eurRate ?? 0, Validators.required],\r\n });\r\n}\r\n\r\nexport function toPackagingPriceInput(form: FormGroup, lineRows: LineRow[]): PackagingPriceCreateDto {\r\n const raw = form.getRawValue();\r\n\r\n return {\r\n name: raw.name,\r\n materialTypeCode: raw.materialTypeCode,\r\n fromDate: raw.fromDate || undefined,\r\n toDate: raw.toDate || undefined,\r\n usdRate: raw.usdRate,\r\n eurRate: raw.eurRate,\r\n // The line group's fields map 1:1 onto PackagingPriceLineInputDto, so its raw value is the DTO.\r\n lines: lineRows.map(row => row.group.getRawValue() as PackagingPriceLineInputDto),\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Rest, RestService } from '@abp/ng.core';\r\nimport { PackagingPriceService, PackagingPriceLineInputDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PackagingPriceExcelService {\r\n // ABP 6.0.x can't generate a client for IRemoteStreamContent uploads (abpframework/abp#8581),\r\n // so importLines posts FormData by hand in the shape ABP would generate.\r\n private readonly apiName = 'KadoogluKeops';\r\n\r\n constructor(\r\n private readonly service: PackagingPriceService,\r\n private readonly restService: RestService,\r\n ) {}\r\n\r\n exportLines(\r\n docEntry: number | undefined,\r\n materialTypeCode: string | undefined,\r\n ): Observable<Blob> {\r\n return this.service.getLinesAsExcelFile({ docEntry, materialTypeCode });\r\n }\r\n\r\n importLines(file: File, config?: Partial<Rest.Config>): Observable<PackagingPriceLineInputDto[]> {\r\n const formData = new FormData();\r\n formData.append('file', file, file.name);\r\n\r\n return this.restService.request<FormData, PackagingPriceLineInputDto[]>(\r\n {\r\n method: 'POST',\r\n url: '/api/kadoogluKeops/packaging-prices/import-lines-from-excel',\r\n body: formData,\r\n },\r\n { apiName: this.apiName, ...config },\r\n );\r\n }\r\n}\r\n","import { Currency } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport interface PackagingPriceConversion {\r\n tryPrice: number;\r\n usdPrice: number;\r\n eurPrice: number;\r\n}\r\n\r\nfunction roundTo4Decimals(value: number): number {\r\n return Math.round((value + Number.EPSILON) * 10000) / 10000;\r\n}\r\n\r\n/** Pure currency conversion for a packaging price line; no Angular-forms dependency. */\r\nexport function computePackagingPriceConversion(\r\n price: number,\r\n currency: Currency,\r\n usdRate: number,\r\n eurRate: number,\r\n): PackagingPriceConversion {\r\n const p = Number(price) || 0;\r\n const usd = Number(usdRate) || 0;\r\n const eur = Number(eurRate) || 0;\r\n\r\n let tryPrice = 0;\r\n let usdPrice = 0;\r\n let eurPrice = 0;\r\n\r\n if (usd > 0 && eur > 0) {\r\n if (currency === Currency.USD) {\r\n usdPrice = p;\r\n tryPrice = p * usd;\r\n eurPrice = tryPrice / eur;\r\n } else if (currency === Currency.EUR) {\r\n eurPrice = p;\r\n tryPrice = p * eur;\r\n usdPrice = tryPrice / usd;\r\n } else {\r\n tryPrice = p;\r\n usdPrice = p / usd;\r\n eurPrice = p / eur;\r\n }\r\n }\r\n\r\n return {\r\n tryPrice: roundTo4Decimals(tryPrice),\r\n usdPrice: roundTo4Decimals(usdPrice),\r\n eurPrice: roundTo4Decimals(eurPrice),\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { PackagingPriceLineDto, Currency } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { computePackagingPriceConversion } from './packaging-price-calculator';\r\n\r\nexport interface LineRow {\r\n group: FormGroup;\r\n materialCode: string;\r\n materialName: string;\r\n}\r\n\r\nexport interface RateSnapshot {\r\n usdRate: number;\r\n eurRate: number;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PackagingPriceLinesBuilder {\r\n constructor(private readonly fb: FormBuilder) {}\r\n\r\n // getRates is read lazily so each recompute uses the document's current USD/EUR rates.\r\n build(line: PackagingPriceLineDto, getRates: () => RateSnapshot): LineRow {\r\n const group = this.fb.group({\r\n materialCode: [line.materialCode ?? '', Validators.required],\r\n price: [line.price ?? 0, Validators.required],\r\n currency: [line.currency ?? Currency.TRY, Validators.required],\r\n tryPrice: [line.tryPrice ?? 0],\r\n usdPrice: [line.usdPrice ?? 0],\r\n eurPrice: [line.eurPrice ?? 0],\r\n });\r\n\r\n // Recompute only on price/currency; editing an equivalent directly must not cascade back.\r\n group.get('price')!.valueChanges.subscribe(() => this.compute(group, getRates()));\r\n group.get('currency')!.valueChanges.subscribe(() => this.compute(group, getRates()));\r\n\r\n // Auto-fill only when nothing was saved yet, so a reload keeps the user's edited values.\r\n const hasSavedEquivalents =\r\n (line.tryPrice ?? 0) !== 0 || (line.usdPrice ?? 0) !== 0 || (line.eurPrice ?? 0) !== 0;\r\n if (!hasSavedEquivalents) {\r\n this.compute(group, getRates());\r\n }\r\n\r\n return {\r\n group,\r\n materialCode: line.materialCode ?? '',\r\n materialName: line.materialName ?? '',\r\n };\r\n }\r\n\r\n recompute(rows: LineRow[], rates: RateSnapshot): void {\r\n rows.forEach(row => this.compute(row.group, rates));\r\n }\r\n\r\n private compute(group: FormGroup, rates: RateSnapshot): void {\r\n const conversion = computePackagingPriceConversion(\r\n group.get('price')!.value,\r\n group.get('currency')!.value,\r\n rates.usdRate,\r\n rates.eurRate,\r\n );\r\n\r\n group.patchValue(conversion, { emitEvent: false });\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { LocalizationService } from '@abp/ng.core';\r\nimport { LineRow } from '../packaging-price-lines.builder';\r\nimport { CurrencyOption } from '../../../utils/currency.utils';\r\n\r\n@Component({\r\n selector: 'lib-packaging-price-lines',\r\n templateUrl: './packaging-price-lines.component.html',\r\n})\r\nexport class PackagingPriceLinesComponent implements OnChanges {\r\n @Input() rows: LineRow[] = [];\r\n @Input() currencyOptions: CurrencyOption[] = [];\r\n @Input() exporting = false;\r\n @Input() importing = false;\r\n // Only used to gate the Excel buttons (export/import act on the selected type).\r\n @Input() selectedTypeCode: string | null = null;\r\n @Output() exportClick = new EventEmitter<void>();\r\n @Output() importFile = new EventEmitter<File>();\r\n\r\n @ViewChild('fileInput') private fileInput?: ElementRef<HTMLInputElement>;\r\n\r\n private grid?: { repaint(): void };\r\n\r\n constructor(private readonly localization: LocalizationService) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // onToolbarPreparing runs once; repaint so the Excel buttons reflect the new selection state.\r\n if (changes['selectedTypeCode'] && this.grid) {\r\n this.grid.repaint();\r\n }\r\n }\r\n\r\n get canUseExcel(): boolean {\r\n return !!this.selectedTypeCode;\r\n }\r\n\r\n onToolbarPreparing(e: any): void {\r\n this.grid = e.component;\r\n\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'before',\r\n widget: 'dxButton',\r\n options: {\r\n icon: 'exportxlsx',\r\n text: this.localization.instant('Keops::Excel:Export'),\r\n type: 'success',\r\n disabled: this.exporting || !this.canUseExcel,\r\n onClick: () => this.exportClick.emit(),\r\n },\r\n },\r\n {\r\n location: 'before',\r\n widget: 'dxButton',\r\n options: {\r\n icon: 'upload',\r\n text: this.localization.instant('Keops::Excel:Import'),\r\n type: 'default',\r\n disabled: this.importing || !this.canUseExcel,\r\n onClick: () => this.fileInput?.nativeElement.click(),\r\n },\r\n },\r\n );\r\n }\r\n\r\n onFileSelected(event: Event): void {\r\n const input = event.target as HTMLInputElement;\r\n const file = input.files?.[0];\r\n if (file) {\r\n this.importFile.emit(file);\r\n }\r\n input.value = '';\r\n }\r\n\r\n control(group: FormGroup, name: string): FormControl {\r\n return group.get(name) as FormControl;\r\n }\r\n}\r\n","<input\r\n #fileInput\r\n type=\"file\"\r\n class=\"d-none\"\r\n accept=\".xlsx\"\r\n (change)=\"onFileSelected($event)\"\r\n/>\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]=\"rows\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\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-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [visible]=\"true\" [width]=\"200\"></dxo-search-panel>\r\n\r\n\r\n <dxi-column\r\n cellTemplate=\"seqTpl\"\r\n width=\"80\"\r\n caption=\"{{ 'Keops::PackagingPrices:SequenceNo' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'seqTpl'\">\r\n {{ row.rowIndex + 1 }}\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"materialName\"\r\n caption=\"{{ 'Keops::PackagingMaterials:Name' | abpLocalization }}\"\r\n ></dxi-column>\r\n\r\n <dxi-column\r\n cellTemplate=\"priceTpl\"\r\n caption=\"{{ 'Keops::PackagingPrices:Price' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'priceTpl'\">\r\n <input\r\n type=\"number\"\r\n step=\"any\"\r\n class=\"form-control form-control-sm\"\r\n [formControl]=\"control(row.data.group, 'price')\"\r\n />\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n cellTemplate=\"currencyTpl\"\r\n width=\"110\"\r\n caption=\"{{ 'Keops::PackagingPrices:Currency' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'currencyTpl'\">\r\n <select class=\"form-select form-select-sm\" [formControl]=\"control(row.data.group, 'currency')\">\r\n <option *ngFor=\"let currency of currencyOptions\" [ngValue]=\"currency.value\">\r\n {{ currency.label }}\r\n </option>\r\n </select>\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column cellTemplate=\"tryPriceTpl\" caption=\"TRY\">\r\n <div *dxTemplate=\"let row of 'tryPriceTpl'\">\r\n <input\r\n type=\"number\"\r\n step=\"any\"\r\n class=\"form-control form-control-sm\"\r\n [formControl]=\"control(row.data.group, 'tryPrice')\"\r\n />\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column cellTemplate=\"usdPriceTpl\" caption=\"USD\">\r\n <div *dxTemplate=\"let row of 'usdPriceTpl'\">\r\n <input\r\n type=\"number\"\r\n step=\"any\"\r\n class=\"form-control form-control-sm\"\r\n [formControl]=\"control(row.data.group, 'usdPrice')\"\r\n />\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column cellTemplate=\"eurPriceTpl\" caption=\"EUR\">\r\n <div *dxTemplate=\"let row of 'eurPriceTpl'\">\r\n <input\r\n type=\"number\"\r\n step=\"any\"\r\n class=\"form-control form-control-sm\"\r\n [formControl]=\"control(row.data.group, 'eurPrice')\"\r\n />\r\n </div>\r\n </dxi-column>\r\n</dx-data-grid>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n ExchangeRateService,\r\n PackagingPriceService,\r\n PackagingPriceDto,\r\n PackagingTypeDto,\r\n ExchangeRateSource,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { PackagingPriceExcelService } from '../packaging-price-excel.service';\r\nimport {\r\n LineRow,\r\n PackagingPriceLinesBuilder,\r\n RateSnapshot,\r\n} from '../packaging-price-lines.builder';\r\nimport { createPackagingPriceForm, toPackagingPriceInput } from '../packaging-price-form.factory';\r\nimport { downloadBlob, LocalizationService } from '@abp/ng.core';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { CURRENCY_OPTIONS } from '../../../utils/currency.utils';\r\n\r\n@Component({\r\n selector: 'lib-packaging-price-form',\r\n templateUrl: './packaging-price-form.component.html',\r\n})\r\nexport class PackagingPriceFormComponent implements OnInit {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: PackagingPriceDto | null = null;\r\n @Input() typeOptions: PackagingTypeDto[] = [];\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n exporting = false;\r\n importing = false;\r\n lineRows: LineRow[] = [];\r\n\r\n readonly currencyOptions = CURRENCY_OPTIONS;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: PackagingPriceService,\r\n private readonly exchangeRateService: ExchangeRateService,\r\n private readonly excelService: PackagingPriceExcelService,\r\n private readonly linesBuilder: PackagingPriceLinesBuilder,\r\n private readonly localization: LocalizationService,\r\n private readonly toaster: ToasterService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n if (this.mode === 'edit') {\r\n this.loadLines(this.current?.materialTypeCode ?? null);\r\n }\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::PackagingPrices:CreateTitle'\r\n : 'Keops::PackagingPrices:EditTitle';\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = createPackagingPriceForm(this.fb, this.current, this.mode);\r\n\r\n const recompute = () => this.linesBuilder.recompute(this.lineRows, this.rates());\r\n this.form.get('usdRate')!.valueChanges.subscribe(recompute);\r\n this.form.get('eurRate')!.valueChanges.subscribe(recompute);\r\n this.form.get('materialTypeCode')!.valueChanges.subscribe(code => this.loadLines(code));\r\n\r\n if (this.mode === 'create') {\r\n this.prefillRates();\r\n }\r\n }\r\n\r\n private rates(): RateSnapshot {\r\n return {\r\n usdRate: this.form.get('usdRate')!.value,\r\n eurRate: this.form.get('eurRate')!.value,\r\n };\r\n }\r\n\r\n private prefillRates(): void {\r\n this.exchangeRateService.get().subscribe(dto => {\r\n const isCentralBank = dto.source === ExchangeRateSource.CentralBank;\r\n const usdRate = isCentralBank ? dto.cbExchangeRate?.usdBuyingRate : dto.fixedUsdRate;\r\n const eurRate = isCentralBank ? dto.cbExchangeRate?.eurBuyingRate : dto.fixedEurRate;\r\n\r\n this.form.patchValue({\r\n usdRate: usdRate ?? 0,\r\n eurRate: eurRate ?? 0,\r\n });\r\n });\r\n }\r\n\r\n // Loads the type's materials, merged with saved prices on edit (backend does the merge).\r\n private loadLines(materialTypeCode: string | null): void {\r\n if (!materialTypeCode) {\r\n this.lineRows = [];\r\n return;\r\n }\r\n\r\n this.service.getMergedLines(this.current?.docEntry!, materialTypeCode).subscribe(lines => {\r\n this.lineRows = lines.map(line => this.linesBuilder.build(line, () => this.rates()));\r\n });\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n this.saving = true;\r\n\r\n const input = toPackagingPriceInput(this.form, this.lineRows);\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(input)\r\n : this.service.update(this.current!.docEntry!, input);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n\r\n exportToExcel(): void {\r\n this.exporting = true;\r\n this.excelService\r\n .exportLines(this.current?.docEntry, this.form.get('materialTypeCode')!.value ?? undefined)\r\n .pipe(finalize(() => (this.exporting = false)))\r\n .subscribe(blob =>\r\n downloadBlob(blob, `${this.localization.instant('Keops::PackagingPrices:Title')}.xlsx`),\r\n );\r\n }\r\n\r\n // Import only fills the grid: patch parsed rows onto matching lines; the user still saves.\r\n importFromExcel(file: File): void {\r\n this.importing = true;\r\n this.excelService\r\n .importLines(file)\r\n .pipe(finalize(() => (this.importing = false)))\r\n .subscribe(lines => {\r\n const byCode = new Map(lines.map(line => [line.materialCode, line]));\r\n\r\n // Patch the loaded rows by material code; codes not present in the grid are ignored.\r\n let matched = 0;\r\n this.lineRows.forEach(row => {\r\n const imported = byCode.get(row.materialCode);\r\n if (imported) {\r\n row.group.patchValue({ price: imported.price, currency: imported.currency });\r\n matched++;\r\n }\r\n });\r\n\r\n this.toaster.success(\r\n this.localization.instant('Keops::PackagingPrices:ImportSucceeded', `${matched}`),\r\n );\r\n });\r\n }\r\n}\r\n","<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 <div class=\"flex-fill position-relative\">\r\n <h3 class=\"mb-0\">{{ title | abpLocalization }}</h3>\r\n <small\r\n class=\"text-muted text-nowrap position-absolute top-50 start-50 translate-middle\"\r\n *ngIf=\"mode === 'edit'\"\r\n >\r\n {{ 'Keops::PackagingPrices:DocNum' | abpLocalization }}: {{ current?.docNum ?? '-' }} ·\r\n {{ 'Keops::PackagingPrices:DocDate' | abpLocalization }}:\r\n {{ (current?.docDate! | shortDate) ?? '-' }}\r\n </small>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input id=\"name\" type=\"text\" class=\"form-control\" formControlName=\"name\" />\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"mb-3\">\r\n <label for=\"materialTypeCode\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:Type' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"materialTypeCode\" class=\"form-select\" formControlName=\"materialTypeCode\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</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 </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"fromDate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:FromDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <dx-date-box\r\n id=\"fromDate\"\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 <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"toDate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:ToDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <dx-date-box\r\n id=\"toDate\"\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 <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"usdRate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:UsdRate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"usdRate\"\r\n type=\"number\"\r\n step=\"any\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"usdRate\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"eurRate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:EurRate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"eurRate\"\r\n type=\"number\"\r\n step=\"any\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"eurRate\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div class=\"mb-3\">\r\n <label for=\"fromDate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:Lines' | abpLocalization }}\r\n </label>\r\n <lib-packaging-price-lines\r\n [rows]=\"lineRows\"\r\n [currencyOptions]=\"currencyOptions\"\r\n [exporting]=\"exporting\"\r\n [importing]=\"importing\"\r\n [selectedTypeCode]=\"form.get('materialTypeCode')?.value\"\r\n (exportClick)=\"exportToExcel()\"\r\n (importFile)=\"importFromExcel($event)\"\r\n ></lib-packaging-price-lines>\r\n </div>\r\n </div>\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport {\r\n PackagingPriceService,\r\n PackagingTypeService,\r\n PackagingPriceDto,\r\n PackagingTypeDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-packaging-prices',\r\n templateUrl: './packaging-prices.component.html',\r\n})\r\nexport class PackagingPricesComponent implements OnInit {\r\n items: PackagingPriceDto[] = [];\r\n // Loaded once here so the form's Cins dropdown already has its options when the modal opens.\r\n typeOptions: PackagingTypeDto[] = [];\r\n\r\n selected: PackagingPriceDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: PackagingPriceService,\r\n private readonly packagingTypeService: PackagingTypeService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n this.packagingTypeService.getList().subscribe(types => (this.typeOptions = types));\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: PackagingPriceDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n updateSapItemPrices(row: PackagingPriceDto): void {\r\n this.confirmation\r\n .warn('Keops::PackagingPrices:UpdateSapItemPricesConfirm', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.updateSapItemPrices(row.docEntry!).subscribe({\r\n next: () => {\r\n this.toaster.success('Keops::PackagingPrices:UpdateSapItemPricesSucceeded');\r\n },\r\n });\r\n }\r\n });\r\n }\r\n\r\n remove(row: PackagingPriceDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.docEntry!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { PackagingPricesComponent } from './components/packaging-prices.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: PackagingPricesComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: {\n requiredPolicy: 'KeopsCost.PackagingPrices',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HitPackagingPricesRoutingModule {}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PackagingPricesComponent } from './components/packaging-prices.component';\r\nimport { PackagingPriceFormComponent } from './components/packaging-price-form.component';\r\nimport { PackagingPriceLinesComponent } from './components/packaging-price-lines.component';\r\nimport { HitPackagingPricesRoutingModule } from './hit-packaging-prices-routing.module';\r\nimport { DxDataGridModule, DxDateBoxModule } from 'devextreme-angular';\r\n\r\n@NgModule({\r\n declarations: [\r\n PackagingPricesComponent,\r\n PackagingPriceFormComponent,\r\n PackagingPriceLinesComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n NgbNavModule,\r\n HitPackagingPricesRoutingModule,\r\n DxDataGridModule,\r\n DxDateBoxModule,\r\n ],\r\n})\r\nexport class HitPackagingPricesModule {}\r\n\r\nexport function loadHitPackagingPricesModuleAsChild() {\r\n return Promise.resolve(HitPackagingPricesModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { PriceParameterTypeService, PriceParameterTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-price-parameter-type-form',\r\n templateUrl: './price-parameter-type-form.component.html',\r\n})\r\nexport class PriceParameterTypeFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: PriceParameterTypeDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: PriceParameterTypeService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(200)]],\r\n isActive: [this.current?.isActive ?? true],\r\n description: [this.current?.description ?? '', [Validators.maxLength(500)]],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::PriceParameterTypes:CreateTitle'\r\n : 'Keops::PriceParameterTypes:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create({ name: value.name, description: value.description })\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::PriceParameterTypes:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input id=\"name\" type=\"text\" class=\"form-control\" formControlName=\"name\" />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <div class=\"form-check\">\r\n <input\r\n id=\"isActive\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n formControlName=\"isActive\"\r\n />\r\n <label for=\"isActive\" class=\"form-check-label\">\r\n {{ 'Keops::PriceParameterTypes:IsActive' | abpLocalization }}?\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"description\" class=\"form-label\">\r\n {{ 'Keops::PriceParameterTypes:Description' | abpLocalization }}\r\n </label>\r\n <textarea\r\n id=\"description\"\r\n class=\"form-control\"\r\n rows=\"3\"\r\n formControlName=\"description\"\r\n ></textarea>\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport { PriceParameterTypeService, PriceParameterTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-price-parameter-types',\r\n templateUrl: './price-parameter-types.component.html',\r\n})\r\nexport class PriceParameterTypesComponent implements OnInit {\r\n items: PriceParameterTypeDto[] = [];\r\n\r\n selected: PriceParameterTypeDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: PriceParameterTypeService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: PriceParameterTypeDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: PriceParameterTypeDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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=\"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 <dxi-column\r\n dataField=\"description\"\r\n caption=\"{{ 'Keops::PriceParameterTypes:Description' | 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-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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { PriceParameterTypesComponent } from './components/price-parameter-types.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: PriceParameterTypesComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsCost.PriceParameterTypes',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitPriceParameterTypesRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\nimport { PriceParameterTypesComponent } from './components/price-parameter-types.component';\r\nimport { PriceParameterTypeFormComponent } from './components/price-parameter-type-form.component';\r\nimport { HitPriceParameterTypesRoutingModule } from './hit-price-parameter-types-routing.module';\r\n\r\n@NgModule({\r\n declarations: [PriceParameterTypesComponent, PriceParameterTypeFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitPriceParameterTypesRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitPriceParameterTypesModule {}\r\n\r\nexport function loadHitPriceParameterTypesModuleAsChild() {\r\n return Promise.resolve(HitPriceParameterTypesModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { SapSalesPersonService, SapSalesPersonDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { IdentityUserDto } from '@volo/abp.ng.identity/proxy';\r\n\r\n@Component({\r\n selector: 'lib-sap-sales-person-form',\r\n templateUrl: './sap-sales-person-form.component.html',\r\n})\r\nexport class SapSalesPersonFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() current: SapSalesPersonDto | null = null;\r\n @Input() abpUsers: IdentityUserDto[] = [];\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: SapSalesPersonService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n abpUserId: [this.current?.abpUserId ?? null],\r\n });\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n userDisplayExpr = (user: IdentityUserDto): string =>\r\n user ? user.name || user.userName || '' : '';\r\n\r\n save(): void {\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n this.service\r\n .update(this.current!.salesEmployeeCode!, value)\r\n .pipe(finalize(() => (this.saving = false)))\r\n .subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\r\n>\r\n <ng-template #abpHeader>\r\n <h3>{{ 'Keops::SalesPersons:EditTitle' | abpLocalization }} — {{ current?.salesEmployeeName }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"mb-3\">\r\n <label for=\"abpUserId\" class=\"form-label\">\r\n {{ 'Keops::SalesPersons:AbpUser' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n id=\"abpUserId\"\r\n formControlName=\"abpUserId\"\r\n [dataSource]=\"abpUsers\"\r\n valueExpr=\"id\"\r\n [displayExpr]=\"userDisplayExpr\"\r\n [searchEnabled]=\"true\"\r\n [searchExpr]=\"['name', 'userName']\"\r\n searchMode=\"contains\"\r\n [searchTimeout]=\"200\"\r\n [minSearchLength]=\"0\"\r\n [showDataBeforeSearch]=\"true\"\r\n [showClearButton]=\"true\"\r\n [placeholder]=\"'Keops::SelectAnOption' | abpLocalization\"\r\n ></dx-select-box>\r\n </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 (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { SapSalesPersonService, SapSalesPersonDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { IdentityUserService } from '@volo/abp.ng.identity/proxy';\r\nimport { IdentityUserDto } from '@volo/abp.ng.identity/proxy';\r\n\r\n@Component({\r\n selector: 'lib-sap-sales-persons',\r\n templateUrl: './sap-sales-persons.component.html',\r\n})\r\nexport class SapSalesPersonsComponent implements OnInit {\r\n items: SapSalesPersonDto[] = [];\r\n abpUsers: IdentityUserDto[] = [];\r\n\r\n selected: SapSalesPersonDto | null = null;\r\n formVisible = false;\r\n\r\n constructor(\r\n private readonly service: SapSalesPersonService,\r\n private readonly identityUserService: IdentityUserService,\r\n private readonly toaster: ToasterService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.identityUserService\r\n .getList({ maxResultCount: 1000, sorting: 'userName' })\r\n .subscribe(result => {\r\n this.abpUsers = result.items;\r\n });\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openEdit(row: SapSalesPersonDto): void {\r\n this.selected = row;\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n getUserName = (user: IdentityUserDto): string => (user ? user.name || user.userName || '' : '');\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { SapSalesPersonsComponent } from './components/sap-sales-persons.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: SapSalesPersonsComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsSystem.SalesPersons',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitSapSalesPersonsRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DxDataGridModule, DxSelectBoxModule } from 'devextreme-angular';\r\nimport { SapSalesPersonsComponent } from './components/sap-sales-persons.component';\r\nimport { SapSalesPersonFormComponent } from './components/sap-sales-person-form.component';\r\nimport { HitSapSalesPersonsRoutingModule } from './hit-sap-sales-persons-routing.module';\r\n\r\n@NgModule({\r\n declarations: [SapSalesPersonsComponent, SapSalesPersonFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitSapSalesPersonsRoutingModule,\r\n DxDataGridModule,\r\n DxSelectBoxModule,\r\n ],\r\n})\r\nexport class HitSapSalesPersonsModule {}\r\n\r\nexport function loadHitSapSalesPersonsModuleAsChild() {\r\n return Promise.resolve(HitSapSalesPersonsModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ContainerDefinitionService, ContainerDefinitionDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-container-definition-form',\r\n templateUrl: './container-definition-form.component.html',\r\n})\r\nexport class ContainerDefinitionFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: ContainerDefinitionDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: ContainerDefinitionService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(256)]],\r\n innerVolumeM3: [this.current?.innerVolumeM3 ?? 0, [Validators.required, Validators.min(0)]],\r\n netLoadKg: [this.current?.netLoadKg ?? 0, [Validators.required, Validators.min(0)]],\r\n grossLoadKg: [this.current?.grossLoadKg ?? 0, [Validators.required, Validators.min(0)]],\r\n isActive: [this.current?.isActive ?? true],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::ContainerDefinitions:CreateTitle'\r\n : 'Keops::ContainerDefinitions:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.getRawValue();\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::ContainerDefinitions:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"name\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"innerVolumeM3\" class=\"form-label\">\r\n {{ 'Keops::ContainerDefinitions:InnerVolumeM3' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"innerVolumeM3\"\r\n type=\"number\"\r\n min=\"0\"\r\n step=\"any\"\r\n class=\"form-control\"\r\n formControlName=\"innerVolumeM3\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"netLoadKg\" class=\"form-label\">\r\n {{ 'Keops::ContainerDefinitions:NetLoadKg' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"netLoadKg\"\r\n type=\"number\"\r\n min=\"0\"\r\n step=\"any\"\r\n class=\"form-control\"\r\n formControlName=\"netLoadKg\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"grossLoadKg\" class=\"form-label\">\r\n {{ 'Keops::ContainerDefinitions:GrossLoadKg' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"grossLoadKg\"\r\n type=\"number\"\r\n min=\"0\"\r\n step=\"any\"\r\n class=\"form-control\"\r\n formControlName=\"grossLoadKg\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3 form-check\">\r\n <input\r\n id=\"isActive\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n formControlName=\"isActive\"\r\n />\r\n <label for=\"isActive\" class=\"form-check-label\">\r\n {{ 'Keops::ContainerDefinitions:IsActive' | abpLocalization }}\r\n </label>\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { ContainerDefinitionService, ContainerDefinitionDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-container-definitions',\r\n templateUrl: './container-definitions.component.html',\r\n})\r\nexport class ContainerDefinitionsComponent implements OnInit {\r\n items: ContainerDefinitionDto[] = [];\r\n\r\n selected: ContainerDefinitionDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: ContainerDefinitionService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: ContainerDefinitionDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: ContainerDefinitionDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ContainerDefinitionsComponent } from './components/container-definitions.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ContainerDefinitionsComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.ContainerDefinitions',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitContainerDefinitionsRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ContainerDefinitionsComponent } from './components/container-definitions.component';\r\nimport { ContainerDefinitionFormComponent } from './components/container-definition-form.component';\r\nimport { HitContainerDefinitionsRoutingModule } from './hit-container-definitions-routing.module';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\n\r\n@NgModule({\r\n declarations: [ContainerDefinitionsComponent, ContainerDefinitionFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitContainerDefinitionsRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitContainerDefinitionsModule {}\r\n\r\nexport function loadHitContainerDefinitionsModuleAsChild() {\r\n return Promise.resolve(HitContainerDefinitionsModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { PalletDefinitionService, PalletDefinitionDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-pallet-definition-form',\r\n templateUrl: './pallet-definition-form.component.html',\r\n})\r\nexport class PalletDefinitionFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: PalletDefinitionDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: PalletDefinitionService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(256)]],\r\n dimensionCm: [this.current?.dimensionCm ?? '', [Validators.maxLength(64)]],\r\n weightKg: [this.current?.weightKg ?? 0, [Validators.required, Validators.min(0)]],\r\n isActive: [this.current?.isActive ?? true],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::PalletDefinitions:CreateTitle'\r\n : 'Keops::PalletDefinitions:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.getRawValue();\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::PalletDefinitions:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"name\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"dimensionCm\" class=\"form-label\">\r\n {{ 'Keops::PalletDefinitions:DimensionCm' | abpLocalization }}\r\n </label>\r\n <input\r\n id=\"dimensionCm\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"dimensionCm\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"weightKg\" class=\"form-label\">\r\n {{ 'Keops::PalletDefinitions:WeightKg' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"weightKg\"\r\n type=\"number\"\r\n min=\"0\"\r\n step=\"any\"\r\n class=\"form-control\"\r\n formControlName=\"weightKg\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3 form-check\">\r\n <input\r\n id=\"isActive\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n formControlName=\"isActive\"\r\n />\r\n <label for=\"isActive\" class=\"form-check-label\">\r\n {{ 'Keops::PalletDefinitions:IsActive' | abpLocalization }}\r\n </label>\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { PalletDefinitionService, PalletDefinitionDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-pallet-definitions',\r\n templateUrl: './pallet-definitions.component.html',\r\n})\r\nexport class PalletDefinitionsComponent implements OnInit {\r\n items: PalletDefinitionDto[] = [];\r\n\r\n selected: PalletDefinitionDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: PalletDefinitionService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: PalletDefinitionDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: PalletDefinitionDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { PalletDefinitionsComponent } from './components/pallet-definitions.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: PalletDefinitionsComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.PalletDefinitions',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitPalletDefinitionsRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PalletDefinitionsComponent } from './components/pallet-definitions.component';\r\nimport { PalletDefinitionFormComponent } from './components/pallet-definition-form.component';\r\nimport { HitPalletDefinitionsRoutingModule } from './hit-pallet-definitions-routing.module';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\n\r\n@NgModule({\r\n declarations: [PalletDefinitionsComponent, PalletDefinitionFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitPalletDefinitionsRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitPalletDefinitionsModule {}\r\n\r\nexport function loadHitPalletDefinitionsModuleAsChild() {\r\n return Promise.resolve(HitPalletDefinitionsModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n ContainerPalletCapacityService,\r\n ContainerPalletCapacityDto,\r\n ContainerDefinitionDto,\r\n PalletDefinitionDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-container-pallet-capacity-form',\r\n templateUrl: './container-pallet-capacity-form.component.html',\r\n})\r\nexport class ContainerPalletCapacityFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: ContainerPalletCapacityDto | null = null;\r\n @Input() containerOptions: ContainerDefinitionDto[] = [];\r\n @Input() palletOptions: PalletDefinitionDto[] = [];\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: ContainerPalletCapacityService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n containerCode: [this.current?.containerCode ?? null, [Validators.required]],\r\n palletCode: [this.current?.palletCode ?? null, [Validators.required]],\r\n palletCount: [this.current?.palletCount ?? 0, [Validators.required, Validators.min(0)]],\r\n maxPalletCountMixed: [\r\n this.current?.maxPalletCountMixed ?? 0,\r\n [Validators.required, Validators.min(0)],\r\n ],\r\n isActive: [this.current?.isActive ?? true],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::ContainerPalletCapacities:CreateTitle'\r\n : 'Keops::ContainerPalletCapacities:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"containerCode\" class=\"form-label\">\r\n {{ 'Keops::ContainerPalletCapacities:Container' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"containerCode\" class=\"form-select\" formControlName=\"containerCode\">\r\n <option [ngValue]=\"null\">-</option>\r\n <option *ngFor=\"let container of containerOptions\" [ngValue]=\"container.code\">\r\n {{ container.name }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"palletCode\" class=\"form-label\">\r\n {{ 'Keops::ContainerPalletCapacities:Pallet' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"palletCode\" class=\"form-select\" formControlName=\"palletCode\">\r\n <option [ngValue]=\"null\">-</option>\r\n <option *ngFor=\"let pallet of palletOptions\" [ngValue]=\"pallet.code\">\r\n {{ pallet.name }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"palletCount\" class=\"form-label\">\r\n {{ 'Keops::ContainerPalletCapacities:PalletCount' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"palletCount\"\r\n type=\"number\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"palletCount\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"maxPalletCountMixed\" class=\"form-label\">\r\n {{ 'Keops::ContainerPalletCapacities:MaxPalletCountMixed' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"maxPalletCountMixed\"\r\n type=\"number\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"maxPalletCountMixed\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3 form-check\">\r\n <input\r\n id=\"isActive\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n formControlName=\"isActive\"\r\n />\r\n <label for=\"isActive\" class=\"form-check-label\">\r\n {{ 'Keops::ContainerPalletCapacities:IsActive' | abpLocalization }}\r\n </label>\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { forkJoin } from 'rxjs';\r\nimport {\r\n ContainerDefinitionService,\r\n ContainerPalletCapacityService,\r\n PalletDefinitionService,\r\n ContainerPalletCapacityDto,\r\n ContainerDefinitionDto,\r\n PalletDefinitionDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-container-pallet-capacities',\r\n templateUrl: './container-pallet-capacities.component.html',\r\n})\r\nexport class ContainerPalletCapacitiesComponent implements OnInit {\r\n items: ContainerPalletCapacityDto[] = [];\r\n containerOptions: ContainerDefinitionDto[] = [];\r\n palletOptions: PalletDefinitionDto[] = [];\r\n\r\n selected: ContainerPalletCapacityDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: ContainerPalletCapacityService,\r\n private readonly containerDefinitionService: ContainerDefinitionService,\r\n private readonly palletDefinitionService: PalletDefinitionService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadLookups();\r\n this.loadList();\r\n }\r\n\r\n loadLookups(): void {\r\n forkJoin({\r\n containers: this.containerDefinitionService.getList(),\r\n pallets: this.palletDefinitionService.getList(),\r\n }).subscribe(({ containers, pallets }) => {\r\n this.containerOptions = containers;\r\n this.palletOptions = pallets;\r\n });\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n getContainerName(code: string | undefined | null): string {\r\n return this.resolveName(this.containerOptions, code);\r\n }\r\n\r\n getPalletName(code: string | undefined | null): string {\r\n return this.resolveName(this.palletOptions, code);\r\n }\r\n\r\n private resolveName(\r\n options: { code?: string; name?: string }[],\r\n code: string | undefined | null,\r\n ): string {\r\n if (!code) return '';\r\n return options.find(x => x.code === code)?.name ?? code;\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: ContainerPalletCapacityDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: ContainerPalletCapacityDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ContainerPalletCapacitiesComponent } from './components/container-pallet-capacities.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ContainerPalletCapacitiesComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.ContainerPalletCapacities',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitContainerPalletCapacitiesRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ContainerPalletCapacitiesComponent } from './components/container-pallet-capacities.component';\r\nimport { ContainerPalletCapacityFormComponent } from './components/container-pallet-capacity-form.component';\r\nimport { HitContainerPalletCapacitiesRoutingModule } from './hit-container-pallet-capacities-routing.module';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\n\r\n@NgModule({\r\n declarations: [ContainerPalletCapacitiesComponent, ContainerPalletCapacityFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitContainerPalletCapacitiesRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitContainerPalletCapacitiesModule {}\r\n\r\nexport function loadHitContainerPalletCapacitiesModuleAsChild() {\r\n return Promise.resolve(HitContainerPalletCapacitiesModule);\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { forkJoin } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n ContainerDefinitionService,\r\n ContainerLoadingCountService,\r\n PalletDefinitionService,\r\n ContainerDefinitionDto,\r\n PalletDefinitionDto,\r\n ProductTypeLookupDto,\r\n LoadingTargetKind,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-container-loading-counts',\r\n templateUrl: './container-loading-counts.component.html',\r\n})\r\nexport class ContainerLoadingCountsComponent implements OnInit {\r\n loading = true;\r\n saving = false;\r\n\r\n productTypes: ProductTypeLookupDto[] = [];\r\n containers: ContainerDefinitionDto[] = [];\r\n pallets: PalletDefinitionDto[] = [];\r\n\r\n private readonly controls = new Map<string, FormControl>();\r\n\r\n constructor(\r\n private readonly service: ContainerLoadingCountService,\r\n private readonly containerDefinitionService: ContainerDefinitionService,\r\n private readonly palletDefinitionService: PalletDefinitionService,\r\n private readonly toaster: ToasterService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.load();\r\n }\r\n\r\n get hasColumns(): boolean {\r\n return this.containers.length + this.pallets.length > 0;\r\n }\r\n\r\n cell(\r\n productTypeCode: string | undefined,\r\n prefix: 'c' | 'p',\r\n targetCode: string | undefined,\r\n ): FormControl {\r\n return this.controls.get(this.key(productTypeCode, prefix, targetCode))!;\r\n }\r\n\r\n load(): void {\r\n this.loading = true;\r\n forkJoin({\r\n productTypes: this.service.getProductTypes(),\r\n containers: this.containerDefinitionService.getList(),\r\n pallets: this.palletDefinitionService.getList(),\r\n existing: this.service.getList(),\r\n }).subscribe(({ productTypes, containers, pallets, existing }) => {\r\n this.productTypes = productTypes;\r\n this.containers = containers.filter(c => c.isActive);\r\n this.pallets = pallets.filter(p => p.isActive);\r\n\r\n const existingByPt = new Map<string, Map<string, number>>();\r\n for (const row of existing) {\r\n const inner = new Map<string, number>();\r\n for (const line of row.lines ?? []) {\r\n inner.set(`${line.kind}|${line.targetCode}`, line.boxCount);\r\n }\r\n existingByPt.set(row.productTypeCode!, inner);\r\n }\r\n\r\n this.controls.clear();\r\n for (const pt of this.productTypes) {\r\n const inner = existingByPt.get(pt.code!) ?? new Map<string, number>();\r\n for (const c of this.containers) {\r\n const value = inner.get(`${LoadingTargetKind.Container}|${c.code}`) ?? 0;\r\n this.controls.set(this.key(pt.code, 'c', c.code), new FormControl(value));\r\n }\r\n for (const p of this.pallets) {\r\n const value = inner.get(`${LoadingTargetKind.Pallet}|${p.code}`) ?? 0;\r\n this.controls.set(this.key(pt.code, 'p', p.code), new FormControl(value));\r\n }\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n save(): void {\r\n const input = this.productTypes.map(pt => ({\r\n productTypeCode: pt.code,\r\n lines: [\r\n ...this.containers.map(c => ({\r\n kind: LoadingTargetKind.Container,\r\n targetCode: c.code,\r\n boxCount: Number(this.cell(pt.code, 'c', c.code).value) || 0,\r\n })),\r\n ...this.pallets.map(p => ({\r\n kind: LoadingTargetKind.Pallet,\r\n targetCode: p.code,\r\n boxCount: Number(this.cell(pt.code, 'p', p.code).value) || 0,\r\n })),\r\n ],\r\n }));\r\n\r\n this.saving = true;\r\n this.service\r\n .save(input)\r\n .pipe(finalize(() => (this.saving = false)))\r\n .subscribe(() => {\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.load();\r\n });\r\n }\r\n\r\n private key(\r\n productTypeCode: string | undefined,\r\n prefix: 'c' | 'p',\r\n targetCode: string | undefined,\r\n ): string {\r\n return `${productTypeCode}||${prefix}||${targetCode}`;\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ContainerLoadingCountsComponent } from './components/container-loading-counts.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ContainerLoadingCountsComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.ContainerLoadingCounts',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitContainerLoadingCountsRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { ContainerLoadingCountsComponent } from './components/container-loading-counts.component';\r\nimport { HitContainerLoadingCountsRoutingModule } from './hit-container-loading-counts-routing.module';\r\n\r\n@NgModule({\r\n declarations: [ContainerLoadingCountsComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n HitContainerLoadingCountsRoutingModule,\r\n ],\r\n})\r\nexport class HitContainerLoadingCountsModule {}\r\n\r\nexport function loadHitContainerLoadingCountsModuleAsChild() {\r\n return Promise.resolve(HitContainerLoadingCountsModule);\r\n}\r\n","import { PalletStatus } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport const palletStatusLabels: Record<PalletStatus, string> = {\r\n [PalletStatus.Unpalletized]: 'Keops::ContainerLoadingScenarios:PalletStatus:Unpalletized',\r\n [PalletStatus.Palletized]: 'Keops::ContainerLoadingScenarios:PalletStatus:Palletized',\r\n};\r\n\r\nexport const palletStatusOrder: PalletStatus[] = [\r\n PalletStatus.Unpalletized,\r\n PalletStatus.Palletized,\r\n];\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { forkJoin } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n ContainerDefinitionService,\r\n ContainerLoadingScenarioService,\r\n ContainerMixTypeService,\r\n PalletDefinitionService,\r\n ContainerDefinitionDto,\r\n PalletDefinitionDto,\r\n ContainerMixTypeDto,\r\n PalletStatus,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { palletStatusLabels, palletStatusOrder } from '../container-loading-scenario-l10n-helper';\r\n\r\ninterface ScenarioRow {\r\n palletStatus: PalletStatus;\r\n mixedType: ContainerMixTypeDto;\r\n container: ContainerDefinitionDto;\r\n pallet: PalletDefinitionDto;\r\n group: FormGroup;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-container-loading-scenarios',\r\n templateUrl: './container-loading-scenarios.component.html',\r\n})\r\nexport class ContainerLoadingScenariosComponent implements OnInit {\r\n loading = true;\r\n saving = false;\r\n\r\n containers: ContainerDefinitionDto[] = [];\r\n pallets: PalletDefinitionDto[] = [];\r\n mixedTypes: ContainerMixTypeDto[] = [];\r\n rows: ScenarioRow[] = [];\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: ContainerLoadingScenarioService,\r\n private readonly containerDefinitionService: ContainerDefinitionService,\r\n private readonly palletDefinitionService: PalletDefinitionService,\r\n private readonly containerMixTypeService: ContainerMixTypeService,\r\n private readonly toaster: ToasterService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.load();\r\n }\r\n\r\n get hasRows(): boolean {\r\n return this.rows.length > 0;\r\n }\r\n\r\n palletStatusLabel(value: PalletStatus): string {\r\n return palletStatusLabels[value] ?? '';\r\n }\r\n\r\n load(): void {\r\n this.loading = true;\r\n forkJoin({\r\n containers: this.containerDefinitionService.getList(),\r\n pallets: this.palletDefinitionService.getList(),\r\n mixedTypes: this.containerMixTypeService.getList(),\r\n existing: this.service.getList(),\r\n }).subscribe(({ containers, pallets, mixedTypes, existing }) => {\r\n this.containers = containers.filter(c => c.isActive);\r\n this.pallets = pallets.filter(p => p.isActive);\r\n this.mixedTypes = [...mixedTypes].sort(\r\n (a, b) => (a.displayOrder ?? 0) - (b.displayOrder ?? 0),\r\n );\r\n\r\n const existingByKey = new Map(\r\n existing.map(x => [\r\n this.key(x.palletStatus, x.mixedTypeCode, x.containerCode, x.palletCode),\r\n x,\r\n ]),\r\n );\r\n\r\n this.rows = [];\r\n for (const ps of palletStatusOrder) {\r\n for (const mixedType of this.mixedTypes) {\r\n for (const container of this.containers) {\r\n for (const pallet of this.pallets) {\r\n const current = existingByKey.get(\r\n this.key(ps, mixedType.code, container.code, pallet.code),\r\n );\r\n this.rows.push({\r\n palletStatus: ps,\r\n mixedType,\r\n container,\r\n pallet,\r\n group: this.fb.group({\r\n maxPalletCount: [current?.maxPalletCount ?? 0],\r\n netWeightKg: [current?.netWeightKg ?? 0],\r\n grossWeightKg: [current?.grossWeightKg ?? 0],\r\n toleranceKg: [current?.toleranceKg ?? 0],\r\n }),\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n save(): void {\r\n const input = this.rows.map(row => ({\r\n palletStatus: row.palletStatus,\r\n mixedTypeCode: row.mixedType.code,\r\n containerCode: row.container.code,\r\n palletCode: row.pallet.code,\r\n maxPalletCount: Number(row.group.value.maxPalletCount) || 0,\r\n netWeightKg: Number(row.group.value.netWeightKg) || 0,\r\n grossWeightKg: Number(row.group.value.grossWeightKg) || 0,\r\n toleranceKg: Number(row.group.value.toleranceKg) || 0,\r\n }));\r\n\r\n this.saving = true;\r\n this.service\r\n .save(input)\r\n .pipe(finalize(() => (this.saving = false)))\r\n .subscribe(() => {\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.load();\r\n });\r\n }\r\n\r\n private key(\r\n palletStatus: PalletStatus,\r\n mixedTypeCode: string | undefined | null,\r\n containerCode: string | undefined | null,\r\n palletCode: string | undefined | null,\r\n ): string {\r\n return `${palletStatus}|${mixedTypeCode ?? ''}|${containerCode ?? ''}|${palletCode ?? ''}`;\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ContainerLoadingScenariosComponent } from './components/container-loading-scenarios.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ContainerLoadingScenariosComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.ContainerLoadingScenarios',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitContainerLoadingScenariosRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { ContainerLoadingScenariosComponent } from './components/container-loading-scenarios.component';\r\nimport { HitContainerLoadingScenariosRoutingModule } from './hit-container-loading-scenarios-routing.module';\r\n\r\n@NgModule({\r\n declarations: [ContainerLoadingScenariosComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n HitContainerLoadingScenariosRoutingModule,\r\n ],\r\n})\r\nexport class HitContainerLoadingScenariosModule {}\r\n\r\nexport function loadHitContainerLoadingScenariosModuleAsChild() {\r\n return Promise.resolve(HitContainerLoadingScenariosModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ContainerMixTypeService, ContainerMixTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-container-mix-type-form',\r\n templateUrl: './container-mix-type-form.component.html',\r\n})\r\nexport class ContainerMixTypeFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: ContainerMixTypeDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: ContainerMixTypeService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(256)]],\r\n displayOrder: [this.current?.displayOrder ?? 0, [Validators.required, Validators.min(0)]],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::ContainerMixTypes:CreateTitle'\r\n : 'Keops::ContainerMixTypes:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::ContainerMixTypes:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"name\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"displayOrder\" class=\"form-label\">\r\n {{ 'Keops::ContainerMixTypes:DisplayOrder' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"displayOrder\"\r\n type=\"number\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"displayOrder\"\r\n />\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { ContainerMixTypeService, ContainerMixTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-container-mix-types',\r\n templateUrl: './container-mix-types.component.html',\r\n})\r\nexport class ContainerMixTypesComponent implements OnInit {\r\n items: ContainerMixTypeDto[] = [];\r\n\r\n selected: ContainerMixTypeDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: ContainerMixTypeService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: ContainerMixTypeDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: ContainerMixTypeDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ContainerMixTypesComponent } from './components/container-mix-types.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ContainerMixTypesComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.ContainerMixTypes',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitContainerMixTypesRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ContainerMixTypesComponent } from './components/container-mix-types.component';\r\nimport { ContainerMixTypeFormComponent } from './components/container-mix-type-form.component';\r\nimport { HitContainerMixTypesRoutingModule } from './hit-container-mix-types-routing.module';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\n\r\n@NgModule({\r\n declarations: [ContainerMixTypesComponent, ContainerMixTypeFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitContainerMixTypesRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitContainerMixTypesModule {}\r\n\r\nexport function loadHitContainerMixTypesModuleAsChild() {\r\n return Promise.resolve(HitContainerMixTypesModule);\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { loadHitCostItemsModuleAsChild } from './features/cost-items/hit-cost-items.module';\r\nimport { loadHitCostGroupsModuleAsChild } from './features/cost-groups/hit-cost-groups.module';\r\nimport { loadHitExchangeRatesModuleAsChild } from './features/exchange-rates/hit-exchange-rates.module';\r\nimport { loadHitCostCalculationModuleAsChild } from './features/cost-calculation/hit-cost-calculation.module';\r\nimport { loadHitCostParametersModuleAsChild } from './features/cost-parameters/hit-cost-parameters.module';\r\nimport { loadHitCostParameterCategoriesModuleAsChild } from './features/cost-parameter-categories/hit-cost-parameter-categories.module';\r\nimport { loadHitPackagingTypesModuleAsChild } from './features/packaging-types/hit-packaging-types.module';\r\nimport { loadHitPackagingMaterialsModuleAsChild } from './features/packaging-materials/hit-packaging-materials.module';\r\nimport { loadHitPackagingPricesModuleAsChild } from './features/packaging-prices/hit-packaging-prices.module';\r\nimport { loadHitPriceParameterTypesModuleAsChild } from './features/price-parameter-types/hit-price-parameter-types.module';\r\nimport { loadHitSapSalesPersonsModuleAsChild } from './features/sap-sales-persons/hit-sap-sales-persons.module';\r\nimport { loadHitContainerDefinitionsModuleAsChild } from './features/container-definitions/hit-container-definitions.module';\r\nimport { loadHitPalletDefinitionsModuleAsChild } from './features/pallet-definitions/hit-pallet-definitions.module';\r\nimport { loadHitContainerPalletCapacitiesModuleAsChild } from './features/container-pallet-capacities/hit-container-pallet-capacities.module';\r\nimport { loadHitContainerLoadingCountsModuleAsChild } from './features/container-loading-counts/hit-container-loading-counts.module';\r\nimport { loadHitContainerLoadingScenariosModuleAsChild } from './features/container-loading-scenarios/hit-container-loading-scenarios.module';\r\nimport { loadHitContainerMixTypesModuleAsChild } from './features/container-mix-types/hit-container-mix-types.module';\r\n\r\nconst routes: Routes = [\r\n { path: 'cost/calculation', loadChildren: loadHitCostCalculationModuleAsChild },\r\n { path: 'system/exchange-rates', loadChildren: loadHitExchangeRatesModuleAsChild },\r\n { path: 'cost/items', loadChildren: loadHitCostItemsModuleAsChild },\r\n { path: 'cost/groups', loadChildren: loadHitCostGroupsModuleAsChild },\r\n { path: 'cost/parameters', loadChildren: loadHitCostParametersModuleAsChild },\r\n { path: 'cost/parameter-categories', loadChildren: loadHitCostParameterCategoriesModuleAsChild },\r\n { path: 'cost/packaging-types', loadChildren: loadHitPackagingTypesModuleAsChild },\r\n { path: 'cost/packaging-materials', loadChildren: loadHitPackagingMaterialsModuleAsChild },\r\n { path: 'cost/packaging-prices', loadChildren: loadHitPackagingPricesModuleAsChild },\r\n { path: 'cost/price-parameter-types', loadChildren: loadHitPriceParameterTypesModuleAsChild },\r\n { path: 'system/sales-persons', loadChildren: loadHitSapSalesPersonsModuleAsChild },\r\n { path: 'item-master-data/container-definitions', loadChildren: loadHitContainerDefinitionsModuleAsChild },\r\n { path: 'item-master-data/pallet-definitions', loadChildren: loadHitPalletDefinitionsModuleAsChild },\r\n { path: 'item-master-data/container-pallet-capacities', loadChildren: loadHitContainerPalletCapacitiesModuleAsChild },\r\n { path: 'item-master-data/container-loading-counts', loadChildren: loadHitContainerLoadingCountsModuleAsChild },\r\n { path: 'item-master-data/container-loading-scenarios', loadChildren: loadHitContainerLoadingScenariosModuleAsChild },\r\n { path: 'item-master-data/container-mix-types', loadChildren: loadHitContainerMixTypesModuleAsChild },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class KadoogluKeopsRoutingModule {}\r\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule, LazyModuleFactory, LocalizationService } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { locale } from 'devextreme/localization';\nimport { KadoogluKeopsRoutingModule } from './kadooglu-keops-routing.module';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n CoreModule,\n ThemeSharedModule,\n PageModule,\n KadoogluKeopsRoutingModule,\n ],\n})\nexport class KadoogluKeopsModule {\n static forChild(): ModuleWithProviders<KadoogluKeopsModule> {\n return {\n ngModule: KadoogluKeopsModule,\n providers: [],\n };\n }\n\n static forLazy(): NgModuleFactory<KadoogluKeopsModule> {\n return new LazyModuleFactory(KadoogluKeopsModule.forChild());\n }\n\n constructor(private readonly localizationService: LocalizationService) {\n // Sync DevExtreme's locale to ABP's current language.\n this.localizationService.currentLang$.subscribe(language => language && locale(language));\n }\n}\n","import { Component, OnInit } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule, ToasterService } from '@abp/ng.theme.shared';\r\nimport { CostSettingsService } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-cost-settings',\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule, CoreModule, ThemeSharedModule],\r\n templateUrl: './cost-settings.component.html',\r\n})\r\nexport class CostSettingsComponent implements OnInit {\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: CostSettingsService,\r\n private readonly toaster: ToasterService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.form = this.fb.group({\r\n itemPackagePriceListNo: [0, [Validators.required, Validators.min(1)]],\r\n });\r\n\r\n this.service.get().subscribe(dto => {\r\n this.form.patchValue({ itemPackagePriceListNo: dto.itemPackagePriceListNo });\r\n });\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n return;\r\n }\r\n\r\n this.saving = true;\r\n\r\n this.service\r\n .update(this.form.value)\r\n .pipe(finalize(() => (this.saving = false)))\r\n .subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n },\r\n });\r\n }\r\n}\r\n","<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","// exchange-rates\r\nexport * from './exchange-rates/hit-exchange-rates.module';\r\nexport * from './exchange-rates/components/exchange-rates.component';\r\nexport * from './exchange-rates/components/central-bank-rates.component';\r\n\r\n// cost-items\r\nexport * from './cost-items/hit-cost-items.module';\r\nexport * from './cost-items/components/cost-items.component';\r\nexport * from './cost-items/components/cost-item-form.component';\r\n\r\n// cost-parameters\r\nexport * from './cost-parameters/hit-cost-parameters.module';\r\nexport * from './cost-parameters/components/cost-parameters.component';\r\nexport * from './cost-parameters/components/cost-parameter-form.component';\r\n\r\n// settings\r\nexport * from './settings/components/cost-settings.component';\r\n","/*\r\n * Public API Surface of kadooglu-keops\r\n */\r\n\r\nexport * from './lib/kadooglu-keops.module';\r\nexport * from './lib/features';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i5","i1","i10.CostItemFormComponent","routes","i4","i10.CostGroupFormComponent","i3","i3.CentralBankRatesComponent","i4.FixedRatesFormComponent","i3.CostCalculationInputsComponent","i4.CostCalculationResultsComponent","i5.CostCalculationResultSumComponent","i6","i10.CostParameterFormComponent","i10.CostParameterCategoryFormComponent","i10.PackagingTypeFormComponent","i10.PackagingMaterialFormComponent","i3.PackagingPriceExcelService","i4.PackagingPriceLinesBuilder","i7","i8","i9.PackagingPriceLinesComponent","i10.PackagingPriceFormComponent","i10.PriceParameterTypeFormComponent","i9","i10","i11.SapSalesPersonFormComponent","i10.ContainerDefinitionFormComponent","i10.PalletDefinitionFormComponent","i10.ContainerPalletCapacityFormComponent","i10.ContainerMixTypeFormComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hitsoft-kadooglu-keops.mjs","sources":["../../../projects/kadooglu-keops/src/lib/features/cost-items/cost-item-l10n-helper.ts","../../../projects/kadooglu-keops/src/lib/features/cost-items/components/cost-item-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-items/components/cost-item-form.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-items/components/cost-items.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-items/components/cost-items.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-items/hit-cost-items-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-items/hit-cost-items.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-groups/cost-group-role-l10n-helper.ts","../../../projects/kadooglu-keops/src/lib/features/cost-groups/components/cost-group-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-groups/components/cost-group-form.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-groups/components/cost-groups.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-groups/components/cost-groups.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-groups/hit-cost-groups-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-groups/hit-cost-groups.module.ts","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/components/central-bank-rates.component.ts","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/components/central-bank-rates.component.html","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/components/fixed-rates-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/components/fixed-rates-form.component.html","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/components/exchange-rates.component.ts","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/components/exchange-rates.component.html","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/hit-exchange-rates-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/exchange-rates/hit-exchange-rates.module.ts","../../../projects/kadooglu-keops/src/lib/utils/currency.utils.ts","../../../projects/kadooglu-keops/src/lib/shared/amount-currency-input/amount-currency-input.component.ts","../../../projects/kadooglu-keops/src/lib/shared/amount-currency-input/amount-currency-input.component.html","../../../projects/kadooglu-keops/src/lib/shared/pipes/resolve-code-name.pipe.ts","../../../projects/kadooglu-keops/src/lib/shared/shared-ui.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/engine/models.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/engine/currency.utils.ts","../../../projects/kadooglu-keops/src/lib/utils/number.utils.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/engine/item-resolver.ts","../../../projects/kadooglu-keops/src/lib/shared/cost-item-classification.utils.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/engine/stage-builder.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/engine/formulas.ts","../../../projects/kadooglu-keops/src/lib/utils/exchange-rate.utils.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation-inputs.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation-inputs.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation-results.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation-results.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation-result-sum.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation-result-sum.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/components/cost-calculation.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/hit-cost-calculation-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-calculation/hit-cost-calculation.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameters/cost-parameter-l10n-helper.ts","../../../projects/kadooglu-keops/src/lib/shared/cost-item-rows.builder.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameters/components/cost-parameter-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameters/components/cost-parameter-form.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-parameters/components/cost-parameters.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameters/components/cost-parameters.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-parameters/hit-cost-parameters-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameters/hit-cost-parameters.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameter-categories/cost-parameter-category-l10n-helper.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameter-categories/components/cost-parameter-category-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameter-categories/components/cost-parameter-category-form.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-parameter-categories/components/cost-parameter-categories.component.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameter-categories/components/cost-parameter-categories.component.html","../../../projects/kadooglu-keops/src/lib/features/cost-parameter-categories/hit-cost-parameter-categories-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/cost-parameter-categories/hit-cost-parameter-categories.module.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-types/components/packaging-type-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-types/components/packaging-type-form.component.html","../../../projects/kadooglu-keops/src/lib/features/packaging-types/components/packaging-types.component.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-types/components/packaging-types.component.html","../../../projects/kadooglu-keops/src/lib/features/packaging-types/hit-packaging-types-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-types/hit-packaging-types.module.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-materials/components/packaging-material-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-materials/components/packaging-material-form.component.html","../../../projects/kadooglu-keops/src/lib/features/packaging-materials/components/packaging-materials.component.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-materials/components/packaging-materials.component.html","../../../projects/kadooglu-keops/src/lib/features/packaging-materials/hit-packaging-materials-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-materials/hit-packaging-materials.module.ts","../../../projects/kadooglu-keops/src/lib/utils/date.utils.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/packaging-price-form.factory.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/packaging-price-excel.service.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/packaging-price-calculator.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/packaging-price-lines.builder.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/components/packaging-price-lines.component.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/components/packaging-price-lines.component.html","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/components/packaging-price-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/components/packaging-price-form.component.html","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/components/packaging-prices.component.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/components/packaging-prices.component.html","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/hit-packaging-prices-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/packaging-prices/hit-packaging-prices.module.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameter-types/components/price-parameter-type-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameter-types/components/price-parameter-type-form.component.html","../../../projects/kadooglu-keops/src/lib/features/price-parameter-types/components/price-parameter-types.component.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameter-types/components/price-parameter-types.component.html","../../../projects/kadooglu-keops/src/lib/features/price-parameter-types/hit-price-parameter-types-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameter-types/hit-price-parameter-types.module.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameters/price-parameter-l10n-helper.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameters/price-parameter-lookups.service.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameters/components/price-parameters.component.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameters/components/price-parameters.component.html","../../../projects/kadooglu-keops/src/lib/features/price-parameters/price-parameter-form-data.service.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameters/price-parameter-cost-match.service.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameters/components/price-parameter-form-cost-items.component.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameters/components/price-parameter-form-cost-items.component.html","../../../projects/kadooglu-keops/src/lib/features/price-parameters/components/price-parameter-form-price-lists.component.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameters/components/price-parameter-form-price-lists.component.html","../../../projects/kadooglu-keops/src/lib/features/price-parameters/components/price-parameter-form-items.component.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameters/components/price-parameter-form-items.component.html","../../../projects/kadooglu-keops/src/lib/features/price-parameters/components/price-parameter-form-discount-rates-modal.component.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameters/components/price-parameter-form-discount-rates-modal.component.html","../../../projects/kadooglu-keops/src/lib/features/price-parameters/components/price-parameter-form-discount-rates.component.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameters/components/price-parameter-form-discount-rates.component.html","../../../projects/kadooglu-keops/src/lib/features/price-parameters/components/price-parameter-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameters/components/price-parameter-form.component.html","../../../projects/kadooglu-keops/src/lib/features/price-parameters/hit-price-parameters-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/price-parameters/hit-price-parameters.module.ts","../../../projects/kadooglu-keops/src/lib/features/sap-sales-persons/components/sap-sales-person-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/sap-sales-persons/components/sap-sales-person-form.component.html","../../../projects/kadooglu-keops/src/lib/features/sap-sales-persons/components/sap-sales-persons.component.ts","../../../projects/kadooglu-keops/src/lib/features/sap-sales-persons/components/sap-sales-persons.component.html","../../../projects/kadooglu-keops/src/lib/features/sap-sales-persons/hit-sap-sales-persons-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/sap-sales-persons/hit-sap-sales-persons.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-definitions/components/container-definition-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-definitions/components/container-definition-form.component.html","../../../projects/kadooglu-keops/src/lib/features/container-definitions/components/container-definitions.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-definitions/components/container-definitions.component.html","../../../projects/kadooglu-keops/src/lib/features/container-definitions/hit-container-definitions-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-definitions/hit-container-definitions.module.ts","../../../projects/kadooglu-keops/src/lib/features/pallet-definitions/components/pallet-definition-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/pallet-definitions/components/pallet-definition-form.component.html","../../../projects/kadooglu-keops/src/lib/features/pallet-definitions/components/pallet-definitions.component.ts","../../../projects/kadooglu-keops/src/lib/features/pallet-definitions/components/pallet-definitions.component.html","../../../projects/kadooglu-keops/src/lib/features/pallet-definitions/hit-pallet-definitions-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/pallet-definitions/hit-pallet-definitions.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-pallet-capacities/components/container-pallet-capacity-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-pallet-capacities/components/container-pallet-capacity-form.component.html","../../../projects/kadooglu-keops/src/lib/features/container-pallet-capacities/components/container-pallet-capacities.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-pallet-capacities/components/container-pallet-capacities.component.html","../../../projects/kadooglu-keops/src/lib/features/container-pallet-capacities/hit-container-pallet-capacities-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-pallet-capacities/hit-container-pallet-capacities.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-loading-counts/components/container-loading-counts.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-loading-counts/components/container-loading-counts.component.html","../../../projects/kadooglu-keops/src/lib/features/container-loading-counts/hit-container-loading-counts-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-loading-counts/hit-container-loading-counts.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-loading-scenarios/container-loading-scenario-l10n-helper.ts","../../../projects/kadooglu-keops/src/lib/features/container-loading-scenarios/components/container-loading-scenarios.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-loading-scenarios/components/container-loading-scenarios.component.html","../../../projects/kadooglu-keops/src/lib/features/container-loading-scenarios/hit-container-loading-scenarios-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-loading-scenarios/hit-container-loading-scenarios.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-mix-types/components/container-mix-type-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-mix-types/components/container-mix-type-form.component.html","../../../projects/kadooglu-keops/src/lib/features/container-mix-types/components/container-mix-types.component.ts","../../../projects/kadooglu-keops/src/lib/features/container-mix-types/components/container-mix-types.component.html","../../../projects/kadooglu-keops/src/lib/features/container-mix-types/hit-container-mix-types-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/container-mix-types/hit-container-mix-types.module.ts","../../../projects/kadooglu-keops/src/lib/features/freight-offers/components/freight-offer-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/freight-offers/components/freight-offer-form.component.html","../../../projects/kadooglu-keops/src/lib/features/freight-offers/components/freight-offers.component.ts","../../../projects/kadooglu-keops/src/lib/features/freight-offers/components/freight-offers.component.html","../../../projects/kadooglu-keops/src/lib/features/freight-offers/components/freight-offer-copy.component.ts","../../../projects/kadooglu-keops/src/lib/features/freight-offers/components/freight-offer-copy.component.html","../../../projects/kadooglu-keops/src/lib/features/freight-offers/hit-freight-offers-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/freight-offers/hit-freight-offers.module.ts","../../../projects/kadooglu-keops/src/lib/features/bl-tracking/components/bl-tracking-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/bl-tracking/components/bl-tracking-form.component.html","../../../projects/kadooglu-keops/src/lib/features/bl-tracking/components/bl-tracking.component.ts","../../../projects/kadooglu-keops/src/lib/features/bl-tracking/components/bl-tracking.component.html","../../../projects/kadooglu-keops/src/lib/features/bl-tracking/hit-bl-tracking-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/bl-tracking/hit-bl-tracking.module.ts","../../../projects/kadooglu-keops/src/lib/features/fob-inland-definitions/components/fob-inland-definition-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/fob-inland-definitions/components/fob-inland-definition-form.component.html","../../../projects/kadooglu-keops/src/lib/features/fob-inland-definitions/components/fob-inland-definitions.component.ts","../../../projects/kadooglu-keops/src/lib/features/fob-inland-definitions/components/fob-inland-definitions.component.html","../../../projects/kadooglu-keops/src/lib/features/fob-inland-definitions/hit-fob-inland-definitions-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/fob-inland-definitions/hit-fob-inland-definitions.module.ts","../../../projects/kadooglu-keops/src/lib/features/incoterms/components/incoterm-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/incoterms/components/incoterm-form.component.html","../../../projects/kadooglu-keops/src/lib/features/incoterms/components/incoterms.component.ts","../../../projects/kadooglu-keops/src/lib/features/incoterms/components/incoterms.component.html","../../../projects/kadooglu-keops/src/lib/features/incoterms/hit-incoterms-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/incoterms/hit-incoterms.module.ts","../../../projects/kadooglu-keops/src/lib/features/carriers/components/carrier-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/carriers/components/carrier-form.component.html","../../../projects/kadooglu-keops/src/lib/features/carriers/components/carriers.component.ts","../../../projects/kadooglu-keops/src/lib/features/carriers/components/carriers.component.html","../../../projects/kadooglu-keops/src/lib/features/carriers/hit-carriers-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/carriers/hit-carriers.module.ts","../../../projects/kadooglu-keops/src/lib/features/lines/components/line-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/lines/components/line-form.component.html","../../../projects/kadooglu-keops/src/lib/features/lines/components/lines.component.ts","../../../projects/kadooglu-keops/src/lib/features/lines/components/lines.component.html","../../../projects/kadooglu-keops/src/lib/features/lines/hit-lines-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/lines/hit-lines.module.ts","../../../projects/kadooglu-keops/src/lib/features/pos/components/pos-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/pos/components/pos-form.component.html","../../../projects/kadooglu-keops/src/lib/features/pos/components/pos.component.ts","../../../projects/kadooglu-keops/src/lib/features/pos/components/pos.component.html","../../../projects/kadooglu-keops/src/lib/features/pos/hit-pos-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/pos/hit-pos.module.ts","../../../projects/kadooglu-keops/src/lib/features/destination-ports/components/destination-port-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/destination-ports/components/destination-port-form.component.html","../../../projects/kadooglu-keops/src/lib/features/destination-ports/components/destination-ports.component.ts","../../../projects/kadooglu-keops/src/lib/features/destination-ports/components/destination-ports.component.html","../../../projects/kadooglu-keops/src/lib/features/destination-ports/hit-destination-ports-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/destination-ports/hit-destination-ports.module.ts","../../../projects/kadooglu-keops/src/lib/features/item-package-types/components/item-package-type-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/item-package-types/components/item-package-type-form.component.html","../../../projects/kadooglu-keops/src/lib/features/item-package-types/components/item-package-types.component.ts","../../../projects/kadooglu-keops/src/lib/features/item-package-types/components/item-package-types.component.html","../../../projects/kadooglu-keops/src/lib/features/item-package-types/hit-item-package-types-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/item-package-types/hit-item-package-types.module.ts","../../../projects/kadooglu-keops/src/lib/features/item-package-groups/components/item-package-group-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/item-package-groups/components/item-package-group-form.component.html","../../../projects/kadooglu-keops/src/lib/features/item-package-groups/components/item-package-groups.component.ts","../../../projects/kadooglu-keops/src/lib/features/item-package-groups/components/item-package-groups.component.html","../../../projects/kadooglu-keops/src/lib/features/item-package-groups/hit-item-package-groups-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/item-package-groups/hit-item-package-groups.module.ts","../../../projects/kadooglu-keops/src/lib/features/item-product-types/components/item-product-type-form.component.ts","../../../projects/kadooglu-keops/src/lib/features/item-product-types/components/item-product-type-form.component.html","../../../projects/kadooglu-keops/src/lib/features/item-product-types/components/item-product-types.component.ts","../../../projects/kadooglu-keops/src/lib/features/item-product-types/components/item-product-types.component.html","../../../projects/kadooglu-keops/src/lib/features/item-product-types/hit-item-product-types-routing.module.ts","../../../projects/kadooglu-keops/src/lib/features/item-product-types/hit-item-product-types.module.ts","../../../projects/kadooglu-keops/src/lib/kadooglu-keops-routing.module.ts","../../../projects/kadooglu-keops/src/lib/kadooglu-keops.module.ts","../../../projects/kadooglu-keops/src/lib/features/settings/components/cost-settings.component.ts","../../../projects/kadooglu-keops/src/lib/features/settings/components/cost-settings.component.html","../../../projects/kadooglu-keops/src/lib/features/index.ts","../../../projects/kadooglu-keops/src/public-api.ts","../../../projects/kadooglu-keops/src/hitsoft-kadooglu-keops.ts"],"sourcesContent":["import { CostItemCalculationType } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport const calculationTypeLabels: Record<CostItemCalculationType, string> = {\r\n [CostItemCalculationType.Amount]: 'Keops::CostItems:CalculationType:Amount',\r\n [CostItemCalculationType.Rate]: 'Keops::CostItems:CalculationType:Rate',\r\n [CostItemCalculationType.Custom]: 'Keops::CostItems:CalculationType:Custom',\r\n};\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n CostItemService,\r\n CostItemDto,\r\n CostItemCalculationType,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { calculationTypeLabels } from '../cost-item-l10n-helper';\r\n\r\nconst calculationTypeOptions = [\r\n CostItemCalculationType.Amount,\r\n CostItemCalculationType.Rate,\r\n CostItemCalculationType.Custom,\r\n].map(value => ({ value, label: calculationTypeLabels[value] }));\r\n\r\n@Component({\r\n selector: 'lib-cost-item-form',\r\n templateUrl: './cost-item-form.component.html',\r\n})\r\nexport class CostItemFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: CostItemDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n readonly calculationTypeOptions = calculationTypeOptions;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: CostItemService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(256)]],\r\n calculationType: [\r\n { value: this.current?.calculationType ?? null, disabled: !!this.current?.isSystem },\r\n Validators.required,\r\n ],\r\n displayOrder: [this.current?.displayOrder ?? 0, Validators.required],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create' ? 'Keops::CostItems:CreateTitle' : 'Keops::CostItems:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::CostItems:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"name\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"calculationType\" class=\"form-label\">\r\n {{ 'Keops::CostItems:CalculationType' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"calculationType\" class=\"form-select\" formControlName=\"calculationType\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let opt of calculationTypeOptions\" [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=\"displayOrder\" class=\"form-label\">\r\n {{ 'Keops::CostItems:DisplayOrder' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"displayOrder\"\r\n type=\"number\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"displayOrder\"\r\n />\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { CostItemService, CostItemDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { calculationTypeLabels } from '../cost-item-l10n-helper';\r\n\r\n@Component({\r\n selector: 'lib-cost-items',\r\n templateUrl: './cost-items.component.html',\r\n})\r\nexport class CostItemsComponent implements OnInit {\r\n items: CostItemDto[] = [];\r\n\r\n selected: CostItemDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n getCalculationTypeLabel(value: any): string {\r\n return calculationTypeLabels[value as keyof typeof calculationTypeLabels] ?? '';\r\n }\r\n\r\n constructor(\r\n private readonly service: CostItemService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: CostItemDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: CostItemDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { CostItemsComponent } from './components/cost-items.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: CostItemsComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: {\n requiredPolicy: 'KeopsCost.CostItems',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HitCostItemsRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CostItemsComponent } from './components/cost-items.component';\nimport { CostItemFormComponent } from './components/cost-item-form.component';\nimport { HitCostItemsRoutingModule } from './hit-cost-items-routing.module';\nimport { DxDataGridModule } from 'devextreme-angular';\n\n@NgModule({\n declarations: [CostItemsComponent, CostItemFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ThemeSharedModule,\n PageModule,\n CommercialUiModule,\n NgbDropdownModule,\n HitCostItemsRoutingModule,\n DxDataGridModule,\n ],\n})\nexport class HitCostItemsModule {}\n\nexport function loadHitCostItemsModuleAsChild() {\n return Promise.resolve(HitCostItemsModule);\n}\n","import { CostGroupRole } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport const costGroupRoleLabels: Record<CostGroupRole, string> = {\r\n [CostGroupRole.None]: 'Keops::CostGroups:GroupRole:None',\r\n [CostGroupRole.Production]: 'Keops::CostGroups:GroupRole:Production',\r\n [CostGroupRole.Operating]: 'Keops::CostGroups:GroupRole:Operating',\r\n [CostGroupRole.Profit]: 'Keops::CostGroups:GroupRole:Profit',\r\n};\r\n\r\nexport const costGroupRoleTotalLabels: Record<CostGroupRole, string> = {\r\n [CostGroupRole.None]: 'Keops::CostCalculations:OtherTotal',\r\n [CostGroupRole.Production]: 'Keops::CostCalculations:ProductionTotal',\r\n [CostGroupRole.Operating]: 'Keops::CostCalculations:OperatingTotal',\r\n [CostGroupRole.Profit]: 'Keops::CostCalculations:ProfitTotal',\r\n};\r\n\r\nexport const costGroupRoleOptions = [\r\n CostGroupRole.None,\r\n CostGroupRole.Production,\r\n CostGroupRole.Operating,\r\n CostGroupRole.Profit,\r\n].map(value => ({ value, label: costGroupRoleLabels[value] }));\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { CostGroupService, CostGroupDto, CostItemDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { costGroupRoleOptions } from '../cost-group-role-l10n-helper';\r\n\r\n@Component({\r\n selector: 'lib-cost-group-form',\r\n templateUrl: './cost-group-form.component.html',\r\n})\r\nexport class CostGroupFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: CostGroupDto | null = null;\r\n @Input() allCostItems: CostItemDto[] = [];\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n readonly groupRoleOptions = costGroupRoleOptions;\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: CostGroupService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['visible']?.currentValue && this.form) {\r\n this.resetForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n code: ['', Validators.required],\r\n name: ['', Validators.required],\r\n displayOrder: [0, Validators.required],\r\n groupRole: [null, Validators.required],\r\n itemCodes: [[] as string[]],\r\n });\r\n this.resetForm();\r\n }\r\n\r\n private resetForm(): void {\r\n if (!this.form) return;\r\n\r\n if (this.mode === 'edit' && this.current) {\r\n this.form.patchValue({\r\n code: this.current.code ?? '',\r\n name: this.current.name ?? '',\r\n displayOrder: this.current.displayOrder ?? 0,\r\n groupRole: this.current.groupRole ?? null,\r\n itemCodes: this.current.itemCodes ?? [],\r\n });\r\n this.form.get('code')?.disable();\r\n } else {\r\n this.form.reset({ code: '', name: '', displayOrder: 0, groupRole: null, itemCodes: [] });\r\n this.form.get('code')?.enable();\r\n }\r\n }\r\n\r\n isItemSelected(code: string): boolean {\r\n const selected: string[] = this.form.get('itemCodes')?.value ?? [];\r\n return selected.includes(code);\r\n }\r\n\r\n toggleItem(code: string): void {\r\n const control = this.form.get('itemCodes');\r\n const current: string[] = [...(control?.value ?? [])];\r\n const idx = current.indexOf(code);\r\n if (idx >= 0) {\r\n current.splice(idx, 1);\r\n } else {\r\n current.push(code);\r\n }\r\n control?.setValue(current);\r\n }\r\n\r\n close(): void {\r\n this.visibleChange.emit(false);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) return;\r\n\r\n const itemCodes: string[] = this.form.get('itemCodes')?.value ?? [];\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create({\r\n code: this.form.get('code')?.value,\r\n name: this.form.get('name')?.value,\r\n displayOrder: this.form.get('displayOrder')?.value,\r\n groupRole: this.form.get('groupRole')?.value,\r\n itemCodes,\r\n })\r\n : this.service.update(this.current!.code!, {\r\n name: this.form.get('name')?.value,\r\n displayOrder: this.form.get('displayOrder')?.value,\r\n groupRole: this.form.get('groupRole')?.value,\r\n itemCodes,\r\n });\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => this.saved.emit(),\r\n });\r\n }\r\n}\r\n","<abp-modal [(visible)]=\"visible\" (disappear)=\"close()\" [busy]=\"saving\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n <span *ngIf=\"mode === 'create'\">{{ 'Keops::CostGroups:CreateTitle' | abpLocalization }}</span>\r\n <span *ngIf=\"mode === 'edit'\">{{ 'Keops::CostGroups:EditTitle' | abpLocalization }}</span>\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"costGroupForm\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">\r\n {{ 'Keops::CostGroups:Code' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"code\"\r\n [readOnly]=\"mode === 'edit'\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">\r\n {{ 'Keops::CostGroups: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::CostGroups:DisplayOrder' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input type=\"number\" min=\"0\" class=\"form-control\" formControlName=\"displayOrder\" />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">\r\n {{ 'Keops::CostGroups:GroupRole' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select class=\"form-select\" formControlName=\"groupRole\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\r\n <option *ngFor=\"let opt of groupRoleOptions\" [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 class=\"form-label\">\r\n {{ 'Keops::CostGroups:ItemCodes' | abpLocalization }}\r\n </label>\r\n <div class=\"border rounded p-2\" style=\"max-height: 300px; overflow-y: auto;\">\r\n <div\r\n *ngFor=\"let item of allCostItems\"\r\n class=\"form-check\"\r\n >\r\n <input\r\n class=\"form-check-input\"\r\n type=\"checkbox\"\r\n [id]=\"'item-' + item.code\"\r\n [checked]=\"isItemSelected(item.code!)\"\r\n (change)=\"toggleItem(item.code!)\"\r\n />\r\n <label class=\"form-check-label\" [for]=\"'item-' + item.code\">\r\n {{ item.displayOrder }} – {{ item.name }}\r\n </label>\r\n </div>\r\n </div>\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 <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","import { Component, OnInit } from '@angular/core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport {\r\n CostGroupService,\r\n CostGroupDto,\r\n CostGroupRole,\r\n CostItemService,\r\n CostItemDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { forkJoin } from 'rxjs';\r\nimport { costGroupRoleLabels } from '../cost-group-role-l10n-helper';\r\n\r\n@Component({\r\n selector: 'lib-cost-groups',\r\n templateUrl: './cost-groups.component.html',\r\n})\r\nexport class CostGroupsComponent implements OnInit {\r\n items: CostGroupDto[] = [];\r\n costItems: CostItemDto[] = [];\r\n\r\n selected: CostGroupDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: CostGroupService,\r\n private readonly costItemService: CostItemService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n forkJoin({\r\n groups: this.service.getList(),\r\n items: this.costItemService.getList(),\r\n }).subscribe(({ groups, items }) => {\r\n this.items = groups;\r\n this.costItems = items;\r\n });\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n getItemLabel(code: string): string {\r\n const item = this.costItems.find(x => x.code === code);\r\n return item ? `${item.displayOrder}-${item.name}` : code;\r\n }\r\n\r\n getItemsLabels(codes: string[] | undefined): string[] {\r\n if (!codes || codes.length === 0) return [];\r\n return codes.map(c => this.getItemLabel(c));\r\n }\r\n\r\n roleLabel(role: CostGroupRole | undefined): string {\r\n return costGroupRoleLabels[role ?? CostGroupRole.None];\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: CostGroupDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: CostGroupDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { CostGroupsComponent } from './components/cost-groups.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: CostGroupsComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: {\n requiredPolicy: 'KeopsCost.CostGroups',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HitCostGroupsRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CostGroupsComponent } from './components/cost-groups.component';\nimport { CostGroupFormComponent } from './components/cost-group-form.component';\nimport { HitCostGroupsRoutingModule } from './hit-cost-groups-routing.module';\nimport { DxDataGridModule } from 'devextreme-angular';\n\n@NgModule({\n declarations: [CostGroupsComponent, CostGroupFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ThemeSharedModule,\n PageModule,\n CommercialUiModule,\n NgbDropdownModule,\n HitCostGroupsRoutingModule,\n DxDataGridModule,\n ],\n})\nexport class HitCostGroupsModule {}\n\nexport function loadHitCostGroupsModuleAsChild() {\n return Promise.resolve(HitCostGroupsModule);\n}\n","import { Component, Input } from '@angular/core';\r\nimport { CentralBankExchangeRateDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-central-bank-rates',\r\n templateUrl: './central-bank-rates.component.html',\r\n})\r\nexport class CentralBankRatesComponent {\r\n @Input() cbExchangeRate: CentralBankExchangeRateDto | undefined = undefined;\r\n}\r\n","<div class=\"card\">\n <div class=\"card-header\">\n <h5>{{ 'Keops::ExchangeRates:CentralBankRates' | abpLocalization }}</h5>\n </div>\n\n <div class=\"card-body py-0\">\n <table class=\"table table-borderless\">\n <thead>\n <tr class=\"small\">\n <th>\n {{ 'Keops::ExchangeRates:UsdBuying' | abpLocalization }}\n </th>\n <th>\n {{ 'Keops::ExchangeRates:EurBuying' | abpLocalization }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr class=\"text-muted\">\n <td>{{ cbExchangeRate?.usdBuyingRate }}</td>\n <td>{{ cbExchangeRate?.eurBuyingRate }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport {\r\n ExchangeRateSource,\r\n ExchangeRateDto,\r\n ExchangeRateService,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-fixed-rates-form',\r\n templateUrl: './fixed-rates-form.component.html',\r\n})\r\nexport class FixedRatesFormComponent implements OnInit {\r\n readonly ExchangeRateSource = ExchangeRateSource;\r\n\r\n _exchangeRate: ExchangeRateDto | null = null;\r\n\r\n @Input() set exchangeRate(val: any) {\r\n this._exchangeRate = val;\r\n\r\n if (val) {\r\n this.form.patchValue({ source: this.exchangeRate.source }, { emitEvent: false });\r\n this.applySourceRates(this.exchangeRate.source);\r\n }\r\n }\r\n\r\n get exchangeRate() {\r\n return this._exchangeRate;\r\n }\r\n\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: ExchangeRateService,\r\n private readonly toaster: ToasterService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.form = this.fb.group({\r\n source: [ExchangeRateSource.Fixed, Validators.required],\r\n fixedUsdRate: [0, [Validators.required, Validators.min(1)]],\r\n fixedEurRate: [0, [Validators.required, Validators.min(1)]],\r\n });\r\n\r\n this.form.get('source')!.valueChanges.subscribe((source: ExchangeRateSource) => {\r\n this.applySourceRates(source);\r\n });\r\n }\r\n\r\n get isFixed(): boolean {\r\n return this.form?.get('source')!.value === ExchangeRateSource.Fixed;\r\n }\r\n\r\n private applySourceRates(source: ExchangeRateSource): void {\r\n if (!this.exchangeRate) {\r\n return;\r\n }\r\n\r\n const rates =\r\n source === ExchangeRateSource.CentralBank\r\n ? {\r\n fixedUsdRate: this.exchangeRate.cbExchangeRate?.usdBuyingRate ?? 0,\r\n fixedEurRate: this.exchangeRate.cbExchangeRate?.eurBuyingRate ?? 0,\r\n }\r\n : {\r\n fixedUsdRate: this.exchangeRate.fixedUsdRate,\r\n fixedEurRate: this.exchangeRate.fixedEurRate,\r\n };\r\n\r\n this.form.patchValue(rates, { emitEvent: false });\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n return;\r\n }\r\n\r\n this.saving = true;\r\n\r\n this.service\r\n .update(this.form.value)\r\n .pipe(finalize(() => (this.saving = false)))\r\n .subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.saved.emit();\r\n },\r\n });\r\n }\r\n}\r\n","<form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"card\">\n <div class=\"card-header\">\n <div class=\"row align-items-center\">\n <div class=\"col-6 d-flex flex-wrap gap-4\">\n <div class=\"form-check\">\n <input\n type=\"radio\"\n id=\"sourceFixed\"\n class=\"form-check-input\"\n formControlName=\"source\"\n [value]=\"ExchangeRateSource.Fixed\"\n />\n <h5 for=\"sourceFixed\" class=\"form-check-label\">\n {{ 'Keops::ExchangeRates:Source:Fixed' | abpLocalization }}\n </h5>\n </div>\n\n <div class=\"form-check\">\n <input\n type=\"radio\"\n id=\"sourceCentralBank\"\n class=\"form-check-input\"\n formControlName=\"source\"\n [value]=\"ExchangeRateSource.CentralBank\"\n />\n <h5 for=\"sourceCentralBank\" class=\"form-check-label\">\n {{ 'Keops::ExchangeRates:Source:CentralBank' | abpLocalization }}\n </h5>\n </div>\n </div>\n\n <div class=\"col-6\">\n <small class=\"text-muted d-inline-flex align-items-center gap-1 text-nowrap\">\n <i class=\"fa fa-clock\"></i>\n <span>{{ 'Keops::ExchangeRates:LastUpdated' | abpLocalization }}:</span>\n <span>{{ (exchangeRate?.lastModificationTime | shortDateTime: 'UTC') || '...' }}</span>\n </small>\n </div>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col-6\">\n <label for=\"fixedUsdRate\" class=\"form-label\">\n {{ 'Keops::ExchangeRates:UsdRate' | abpLocalization }}\n </label>\n <input\n id=\"fixedUsdRate\"\n type=\"number\"\n class=\"form-control\"\n formControlName=\"fixedUsdRate\"\n [readonly]=\"!isFixed\"\n />\n </div>\n\n <div class=\"col-6\">\n <label for=\"fixedEurRate\" class=\"form-label\">\n {{ 'Keops::ExchangeRates:EurRate' | abpLocalization }}\n </label>\n <input\n id=\"fixedEurRate\"\n type=\"number\"\n class=\"form-control\"\n formControlName=\"fixedEurRate\"\n [readonly]=\"!isFixed\"\n />\n </div>\n </div>\n </div>\n <div class=\"card-footer\">\n <abp-button\n *abpPermission=\"'KeopsCost.ExchangeRates.Update'\"\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary color-white\"\n buttonType=\"submit\"\n [loading]=\"saving\"\n [disabled]=\"form?.invalid\"\n >{{ 'Keops::Save' | abpLocalization }}</abp-button\n >\n </div>\n </div>\n</form>\n","import { Component, OnInit } from '@angular/core';\r\nimport { ExchangeRateService, ExchangeRateDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-exchange-rates',\r\n templateUrl: './exchange-rates.component.html',\r\n})\r\nexport class ExchangeRatesComponent implements OnInit {\r\n exchangeRate: ExchangeRateDto | null = null;\r\n\r\n constructor(private readonly service: ExchangeRateService) {}\r\n\r\n ngOnInit(): void {\r\n this.loadExchangeRate();\r\n }\r\n\r\n loadExchangeRate(): void {\r\n this.service.get().subscribe({\r\n next: dto => {\r\n this.exchangeRate = dto;\r\n },\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ExchangeRatesComponent } from './components/exchange-rates.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ExchangeRatesComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsSystem.ExchangeRates',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitExchangeRatesRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport {\r\n DxDataGridModule,\r\n DxTextBoxModule,\r\n DxButtonModule,\r\n DxCheckBoxModule,\r\n} from 'devextreme-angular';\r\nimport { ExchangeRatesComponent } from './components/exchange-rates.component';\r\nimport { HitExchangeRatesRoutingModule } from './hit-exchange-rates-routing.module';\r\nimport { CentralBankRatesComponent } from './components/central-bank-rates.component';\r\nimport { FixedRatesFormComponent } from './components/fixed-rates-form.component';\r\n\r\n@NgModule({\r\n declarations: [ExchangeRatesComponent, CentralBankRatesComponent, FixedRatesFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n DxDataGridModule,\r\n DxTextBoxModule,\r\n DxButtonModule,\r\n DxCheckBoxModule,\r\n HitExchangeRatesRoutingModule,\r\n ],\r\n})\r\nexport class HitExchangeRatesModule {}\r\n\r\nexport function loadHitExchangeRatesModuleAsChild() {\r\n return Promise.resolve(HitExchangeRatesModule);\r\n}\r\n","import { Currency } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport interface CurrencyOption {\r\n value: Currency;\r\n label: string;\r\n}\r\n\r\n// Single source of truth for the currency dropdown options shared across feature forms.\r\nexport const CURRENCY_OPTIONS: CurrencyOption[] = [\r\n { value: Currency.TRY, label: 'TRY' },\r\n { value: Currency.USD, label: 'USD' },\r\n { value: Currency.EUR, label: 'EUR' },\r\n];\r\n\r\n// Foreign-exchange-only subset (no TRY) for fields that express a rate against TRY.\r\nexport const CURRENCY_OPTIONS_FX_ONLY: CurrencyOption[] = CURRENCY_OPTIONS.filter(\r\n o => o.value === Currency.USD || o.value === Currency.EUR,\r\n);\r\n","import { Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Currency } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { CURRENCY_OPTIONS, CurrencyOption } from '../../utils/currency.utils';\r\n\r\n@Component({\r\n selector: 'lib-amount-currency-input',\r\n templateUrl: './amount-currency-input.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AmountCurrencyInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class AmountCurrencyInputComponent implements ControlValueAccessor {\r\n @Input() currencyOptions: CurrencyOption[] = CURRENCY_OPTIONS;\r\n @Input() currency: Currency = Currency.TRY;\r\n @Output() currencyChange = new EventEmitter<Currency>();\r\n\r\n value: number | null = null;\r\n disabled = false;\r\n\r\n private onChange: (value: number | null) => void = () => undefined;\r\n private onTouched: () => void = () => undefined;\r\n\r\n writeValue(value: number | null): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: (value: number | null) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onValueChange(value: number | null): void {\r\n this.value = value;\r\n this.onChange(value);\r\n }\r\n\r\n onCurrencyChange(value: Currency): void {\r\n this.currency = value;\r\n this.currencyChange.emit(value);\r\n }\r\n\r\n onBlur(): void {\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"input-group\">\r\n <input\r\n type=\"number\"\r\n class=\"form-control\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"onValueChange($event)\"\r\n (blur)=\"onBlur()\"\r\n [disabled]=\"disabled\"\r\n />\r\n <select\r\n class=\"form-select flex-grow-0 w-auto\"\r\n [ngModel]=\"currency\"\r\n (ngModelChange)=\"onCurrencyChange($event)\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n >\r\n <option *ngFor=\"let c of currencyOptions\" [ngValue]=\"c.value\">{{ c.label }}</option>\r\n </select>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nexport interface CodeNamePair {\r\n code?: string;\r\n name?: string;\r\n}\r\n\r\n@Pipe({ name: 'resolveCodeName' })\r\nexport class ResolveCodeNamePipe implements PipeTransform {\r\n transform(\r\n code: string | undefined | null,\r\n options: ReadonlyArray<CodeNamePair> | undefined | null,\r\n ): string {\r\n if (!code) return '';\r\n return (options ?? []).find(x => x.code === code)?.name ?? code;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AmountCurrencyInputComponent } from './amount-currency-input/amount-currency-input.component';\r\nimport { ResolveCodeNamePipe } from './pipes/resolve-code-name.pipe';\r\n\r\n@NgModule({\r\n declarations: [AmountCurrencyInputComponent, ResolveCodeNamePipe],\r\n imports: [CommonModule, FormsModule],\r\n exports: [AmountCurrencyInputComponent, ResolveCodeNamePipe],\r\n})\r\nexport class SharedUiModule {}\r\n","import { CostItemCalculationType, Currency, CostGroupRole } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { CostCalculationStage } from '../cost-calculation.models';\r\n\r\nexport interface CostAmount {\r\n try: number;\r\n usd: number;\r\n eur: number;\r\n}\r\n\r\nexport interface EngineRequest {\r\n rawOilPrice: number;\r\n rawOilCurrency: Currency;\r\n rateUsd: number;\r\n rateEur: number;\r\n stages: CostCalculationStage[];\r\n}\r\n\r\nexport interface CostLine {\r\n costItemCode: string;\r\n costItemName: string;\r\n calculationType: CostItemCalculationType;\r\n systemCode?: number;\r\n currency?: Currency;\r\n ratePercent?: number;\r\n amount: CostAmount;\r\n}\r\n\r\nexport interface CostStage {\r\n groupCode?: string;\r\n groupName?: string;\r\n displayOrder: number;\r\n groupRole: CostGroupRole;\r\n lines: CostLine[];\r\n subtotal: CostAmount;\r\n}\r\n\r\nexport interface CostResult {\r\n rawOil: CostAmount;\r\n stages: CostStage[];\r\n productionCost: CostAmount;\r\n totalCost: CostAmount;\r\n profit: CostAmount;\r\n totalSalePrice: CostAmount;\r\n}\r\n\r\nexport interface RoleGroup {\r\n role: CostGroupRole;\r\n stages: CostStage[];\r\n roleTotal: CostAmount;\r\n}\r\n\r\nexport function addAmounts(...amounts: CostAmount[]): CostAmount {\r\n return amounts.reduce(\r\n (acc, a) => ({ try: acc.try + a.try, usd: acc.usd + a.usd, eur: acc.eur + a.eur }),\r\n { try: 0, usd: 0, eur: 0 },\r\n );\r\n}\r\n\r\nexport function buildRoleGroups(rawOil: CostAmount, stages: CostStage[]): RoleGroup[] {\r\n const ORDER = [CostGroupRole.Production, CostGroupRole.Operating, CostGroupRole.Profit, CostGroupRole.None];\r\n const map = new Map<CostGroupRole, CostStage[]>();\r\n for (const stage of stages) {\r\n const list = map.get(stage.groupRole) ?? [];\r\n list.push(stage);\r\n map.set(stage.groupRole, list);\r\n }\r\n return ORDER.filter(role => map.has(role)).map(role => {\r\n const roleStages = map.get(role)!;\r\n const base = role === CostGroupRole.Production ? rawOil : { try: 0, usd: 0, eur: 0 };\r\n const roleTotal = addAmounts(base, ...roleStages.map(st => st.subtotal));\r\n return { role, stages: roleStages, roleTotal };\r\n });\r\n}\r\n\r\nexport interface ResolvedItems {\r\n port: number;\r\n inspectionCustoms: number;\r\n freight: number;\r\n lossRate: number;\r\n refineryOverhead: number;\r\n refineryAuxMaterials: number;\r\n fillingPackagingOverhead: number;\r\n packaging: number;\r\n salesMarketing: number;\r\n generalAdmin: number;\r\n finance: number;\r\n contingency: number;\r\n variableDepreciation: number;\r\n profitRate: number;\r\n}\r\n","import { Currency } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { CostAmount } from './models';\r\n\r\nexport function toAmount(baseUsd: number, rateUsd: number, rateEur: number): CostAmount {\r\n return {\r\n usd: baseUsd,\r\n try: baseUsd * rateUsd,\r\n eur: rateEur > 0 ? (baseUsd * rateUsd) / rateEur : 0,\r\n };\r\n}\r\n\r\nexport function toBaseUsd(\r\n value: number,\r\n currency: Currency | undefined,\r\n rateUsd: number,\r\n rateEur: number,\r\n): number {\r\n switch (currency) {\r\n case Currency.USD:\r\n return value;\r\n case Currency.TRY:\r\n return rateUsd <= 0 ? 0 : value / rateUsd;\r\n case Currency.EUR:\r\n return rateUsd <= 0 ? 0 : (value * rateEur) / rateUsd;\r\n default:\r\n return value;\r\n }\r\n}\r\n","export function parseDecimal(value: number | string | null | undefined): number {\r\n if (value == null || value === '') return 0;\r\n if (typeof value === 'number') return isNaN(value) ? 0 : value;\r\n const parsed = parseFloat(value.replace(',', '.'));\r\n return isNaN(parsed) ? 0 : parsed;\r\n}\r\n","import { CostItemSystemCode } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { parseDecimal } from '../../../utils/number.utils';\r\nimport { CostCalculationItem, CostCalculationStage } from '../cost-calculation.models';\r\nimport { toBaseUsd } from './currency.utils';\r\nimport { ResolvedItems } from './models';\r\n\r\nexport function indexItemsBySystemCode(\r\n stages: CostCalculationStage[],\r\n): Map<number, CostCalculationItem> {\r\n const map = new Map<number, CostCalculationItem>();\r\n for (const stage of stages) {\r\n for (const item of stage.items) {\r\n if (item.systemCode != null) {\r\n map.set(item.systemCode, item);\r\n }\r\n }\r\n }\r\n return map;\r\n}\r\n\r\nexport function resolveItems(\r\n itemsByCode: Map<number, CostCalculationItem>,\r\n rateUsd: number,\r\n rateEur: number,\r\n): ResolvedItems {\r\n const baseUsd = (code: CostItemSystemCode): number => {\r\n const item = itemsByCode.get(code);\r\n return item ? toBaseUsd(parseDecimal(item.value), item.currency, rateUsd, rateEur) : 0;\r\n };\r\n const ratePercent = (code: CostItemSystemCode): number =>\r\n parseDecimal(itemsByCode.get(code)?.value ?? 0);\r\n\r\n return {\r\n port: baseUsd(CostItemSystemCode.Port),\r\n inspectionCustoms: baseUsd(CostItemSystemCode.InspectionCustoms),\r\n freight: baseUsd(CostItemSystemCode.Freight),\r\n lossRate: ratePercent(CostItemSystemCode.Loss),\r\n refineryOverhead: baseUsd(CostItemSystemCode.RefineryOverhead),\r\n refineryAuxMaterials: baseUsd(CostItemSystemCode.RefineryAuxMaterials),\r\n fillingPackagingOverhead: baseUsd(CostItemSystemCode.FillingPackagingOverhead),\r\n packaging: baseUsd(CostItemSystemCode.Packaging),\r\n salesMarketing: baseUsd(CostItemSystemCode.SalesMarketing),\r\n generalAdmin: baseUsd(CostItemSystemCode.GeneralAdmin),\r\n finance: baseUsd(CostItemSystemCode.Finance),\r\n contingency: baseUsd(CostItemSystemCode.Contingency),\r\n variableDepreciation: baseUsd(CostItemSystemCode.VariableDepreciation),\r\n profitRate: ratePercent(CostItemSystemCode.ProfitRate),\r\n };\r\n}\r\n","import { CostItemCalculationType } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport interface CostItemLike {\r\n calculationType: CostItemCalculationType;\r\n}\r\n\r\nexport function isRateCostItem(item: CostItemLike): boolean {\r\n return item.calculationType === CostItemCalculationType.Rate;\r\n}\r\n\r\nexport function isCustomCostItem(item: CostItemLike): boolean {\r\n return item.calculationType === CostItemCalculationType.Custom;\r\n}\r\n\r\nexport function currencyApplies(calculationType: CostItemCalculationType): boolean {\r\n return (\r\n calculationType !== CostItemCalculationType.Rate &&\r\n calculationType !== CostItemCalculationType.Custom\r\n );\r\n}\r\n","import { CostItemSystemCode } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { parseDecimal } from '../../../utils/number.utils';\r\nimport { isRateCostItem } from '../../../shared/cost-item-classification.utils';\r\nimport { CostCalculationItem, CostCalculationStage } from '../cost-calculation.models';\r\nimport { toAmount, toBaseUsd } from './currency.utils';\r\nimport { CostLine, CostStage, ResolvedItems } from './models';\r\n\r\nexport function buildComputedBaseByCode(\r\n resolvedItems: ResolvedItems,\r\n loss: number,\r\n profit: number,\r\n): Map<number, number> {\r\n return new Map([\r\n [CostItemSystemCode.Port, resolvedItems.port],\r\n [CostItemSystemCode.InspectionCustoms, resolvedItems.inspectionCustoms],\r\n [CostItemSystemCode.Freight, resolvedItems.freight],\r\n [CostItemSystemCode.Loss, loss],\r\n [CostItemSystemCode.RefineryOverhead, resolvedItems.refineryOverhead],\r\n [CostItemSystemCode.RefineryAuxMaterials, resolvedItems.refineryAuxMaterials],\r\n [CostItemSystemCode.FillingPackagingOverhead, resolvedItems.fillingPackagingOverhead],\r\n [CostItemSystemCode.Packaging, resolvedItems.packaging],\r\n [CostItemSystemCode.SalesMarketing, resolvedItems.salesMarketing],\r\n [CostItemSystemCode.GeneralAdmin, resolvedItems.generalAdmin],\r\n [CostItemSystemCode.Finance, resolvedItems.finance],\r\n [CostItemSystemCode.Contingency, resolvedItems.contingency],\r\n [CostItemSystemCode.VariableDepreciation, resolvedItems.variableDepreciation],\r\n [CostItemSystemCode.ProfitRate, profit],\r\n ]);\r\n}\r\n\r\nexport function buildCostStages(\r\n stages: CostCalculationStage[],\r\n computedBaseByCode: Map<number, number>,\r\n itemsByCode: Map<number, CostCalculationItem>,\r\n rateUsd: number,\r\n rateEur: number,\r\n): CostStage[] {\r\n return stages\r\n .slice()\r\n .sort((a, b) => a.displayOrder - b.displayOrder)\r\n .map(stage => {\r\n let stageTotalUsd = 0;\r\n const lines: CostLine[] = stage.items.map(item => {\r\n const itemUsd =\r\n item.systemCode != null\r\n ? (computedBaseByCode.get(item.systemCode) ?? 0)\r\n : toBaseUsd(parseDecimal(item.value), item.currency, rateUsd, rateEur);\r\n stageTotalUsd += itemUsd;\r\n return {\r\n costItemCode: item.costItemCode,\r\n costItemName: item.costItemName,\r\n calculationType: item.calculationType,\r\n systemCode: item.systemCode,\r\n currency: item.currency,\r\n ratePercent: isRateCostItem(item)\r\n ? parseDecimal(itemsByCode.get(item.systemCode!)?.value ?? 0)\r\n : undefined,\r\n amount: toAmount(itemUsd, rateUsd, rateEur),\r\n };\r\n });\r\n return {\r\n groupCode: stage.groupCode,\r\n groupName: stage.groupName,\r\n displayOrder: stage.displayOrder,\r\n groupRole: stage.groupRole,\r\n lines,\r\n subtotal: toAmount(stageTotalUsd, rateUsd, rateEur),\r\n };\r\n });\r\n}\r\n","import { toAmount, toBaseUsd } from './currency.utils';\r\nimport { indexItemsBySystemCode, resolveItems } from './item-resolver';\r\nimport { buildComputedBaseByCode, buildCostStages } from './stage-builder';\r\nimport { CostResult, EngineRequest, ResolvedItems } from './models';\r\n\r\nexport function calculateLoss(rawOilUsd: number, resolvedItems: ResolvedItems): number {\r\n return (\r\n ((rawOilUsd + resolvedItems.port + resolvedItems.inspectionCustoms + resolvedItems.freight) *\r\n resolvedItems.lossRate) /\r\n 100\r\n );\r\n}\r\n\r\nexport function calculateProductionCost(\r\n rawOilUsd: number,\r\n resolvedItems: ResolvedItems,\r\n loss: number,\r\n): number {\r\n return (\r\n rawOilUsd +\r\n resolvedItems.port +\r\n resolvedItems.inspectionCustoms +\r\n resolvedItems.freight +\r\n loss +\r\n resolvedItems.refineryOverhead +\r\n resolvedItems.refineryAuxMaterials +\r\n resolvedItems.fillingPackagingOverhead\r\n );\r\n}\r\n\r\nexport function calculateTotalCost(productionCost: number, resolvedItems: ResolvedItems): number {\r\n return (\r\n productionCost +\r\n resolvedItems.packaging +\r\n resolvedItems.salesMarketing +\r\n resolvedItems.generalAdmin +\r\n resolvedItems.finance +\r\n resolvedItems.contingency +\r\n resolvedItems.variableDepreciation\r\n );\r\n}\r\n\r\nexport function calculateProfit(totalCost: number, profitRate: number): number {\r\n return (totalCost * profitRate) / 100;\r\n}\r\n\r\nexport function calculateTotalSalePrice(totalCost: number, profit: number): number {\r\n return totalCost + profit;\r\n}\r\n\r\nexport function calculateCost(request: EngineRequest): CostResult {\r\n const { rateUsd, rateEur } = request;\r\n const rawOilUsd = toBaseUsd(request.rawOilPrice, request.rawOilCurrency, rateUsd, rateEur);\r\n const itemsByCode = indexItemsBySystemCode(request.stages);\r\n const resolvedItems = resolveItems(itemsByCode, rateUsd, rateEur);\r\n\r\n const loss = calculateLoss(rawOilUsd, resolvedItems);\r\n const productionCost = calculateProductionCost(rawOilUsd, resolvedItems, loss);\r\n const totalCost = calculateTotalCost(productionCost, resolvedItems);\r\n const profit = calculateProfit(totalCost, resolvedItems.profitRate);\r\n const totalSalePrice = calculateTotalSalePrice(totalCost, profit);\r\n\r\n const computedBaseByCode = buildComputedBaseByCode(resolvedItems, loss, profit);\r\n const stages = buildCostStages(request.stages, computedBaseByCode, itemsByCode, rateUsd, rateEur);\r\n\r\n return {\r\n rawOil: toAmount(rawOilUsd, rateUsd, rateEur),\r\n stages,\r\n productionCost: toAmount(productionCost, rateUsd, rateEur),\r\n totalCost: toAmount(totalCost, rateUsd, rateEur),\r\n profit: toAmount(profit, rateUsd, rateEur),\r\n totalSalePrice: toAmount(totalSalePrice, rateUsd, rateEur),\r\n };\r\n}\r\n","import { ExchangeRateDto, ExchangeRateSource } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n// Resolves the \"current\" USD/EUR rate pair from an ExchangeRateDto, regardless of\r\n// whether the tenant configured a fixed rate or a central-bank-sourced rate.\r\nexport function resolveSystemRates(\r\n rate: ExchangeRateDto | null | undefined,\r\n): [number, number] {\r\n if (!rate) return [0, 0];\r\n if (rate.source === ExchangeRateSource.Fixed) {\r\n return [rate.fixedUsdRate ?? 0, rate.fixedEurRate ?? 0];\r\n }\r\n return [rate.cbExchangeRate?.usdBuyingRate ?? 0, rate.cbExchangeRate?.eurBuyingRate ?? 0];\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { CostParameterDto, ItemDto, Currency } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { CostCalculationStage } from '../cost-calculation.models';\r\nimport { CURRENCY_OPTIONS } from '../../../utils/currency.utils';\r\nimport { isRateCostItem } from '../../../shared/cost-item-classification.utils';\r\n\r\n@Component({\r\n selector: 'lib-cost-calculation-inputs',\r\n templateUrl: './cost-calculation-inputs.component.html',\r\n})\r\nexport class CostCalculationInputsComponent {\r\n readonly isRate = isRateCostItem;\r\n readonly currencyOptions = CURRENCY_OPTIONS;\r\n\r\n @Input() itemsDataSource: DataSource | null = null;\r\n @Input() itemDisplayExpr!: (item: ItemDto) => string;\r\n\r\n @Input() parameters: CostParameterDto[] = [];\r\n @Input() parameterDisplayExpr!: (p: CostParameterDto) => string;\r\n\r\n @Input() stages: CostCalculationStage[] = [];\r\n\r\n @Input() selectedItemCode: string | null = null;\r\n @Output() selectedItemCodeChange = new EventEmitter<string | null>();\r\n\r\n @Input() selectedParameterCode: string | null = null;\r\n @Output() selectedParameterCodeChange = new EventEmitter<string | null>();\r\n\r\n @Input() rawOilPrice = 0;\r\n @Output() rawOilPriceChange = new EventEmitter<number>();\r\n\r\n @Input() rawOilCurrency: Currency = Currency.USD;\r\n @Output() rawOilCurrencyChange = new EventEmitter<Currency>();\r\n\r\n @Input() systemRateUsd = 0;\r\n @Input() systemRateEur = 0;\r\n\r\n @Input() rateUsd = 0;\r\n @Output() rateUsdChange = new EventEmitter<number>();\r\n\r\n @Input() rateEur = 0;\r\n @Output() rateEurChange = new EventEmitter<number>();\r\n\r\n @Output() itemChange = new EventEmitter<void>();\r\n @Output() parameterChange = new EventEmitter<void>();\r\n @Output() recalc = new EventEmitter<void>();\r\n\r\n onItemSelected(): void {\r\n this.selectedItemCodeChange.emit(this.selectedItemCode);\r\n this.itemChange.emit();\r\n }\r\n\r\n onParameterSelected(): void {\r\n this.selectedParameterCodeChange.emit(this.selectedParameterCode);\r\n this.parameterChange.emit();\r\n }\r\n\r\n onRawOilPriceChange(): void {\r\n this.emitAndRecalc(this.rawOilPriceChange, this.rawOilPrice);\r\n }\r\n onRawOilCurrencyChange(): void {\r\n this.emitAndRecalc(this.rawOilCurrencyChange, this.rawOilCurrency);\r\n }\r\n onRateUsdChange(): void {\r\n this.emitAndRecalc(this.rateUsdChange, this.rateUsd);\r\n }\r\n onRateEurChange(): void {\r\n this.emitAndRecalc(this.rateEurChange, this.rateEur);\r\n }\r\n\r\n private emitAndRecalc<T>(emitter: EventEmitter<T>, value: T): void {\r\n emitter.emit(value);\r\n this.recalc.emit();\r\n }\r\n}\r\n","<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 — {{ 'Keops::CostCalculations:NoItems' | abpLocalization }} —\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { costGroupRoleTotalLabels } from '../../cost-groups/cost-group-role-l10n-helper';\r\nimport { CostResult, RoleGroup } from '../engine';\r\n\r\n@Component({\r\n selector: 'lib-cost-calculation-results',\r\n templateUrl: './cost-calculation-results.component.html',\r\n})\r\nexport class CostCalculationResultsComponent {\r\n @Input() result: CostResult | null = null;\r\n @Input() roleGroups: RoleGroup[] = [];\r\n @Input() itemName: string | null = null;\r\n @Input() rateUsd = 0;\r\n @Input() rateEur = 0;\r\n\r\n readonly costGroupRoleTotalLabels = costGroupRoleTotalLabels;\r\n}\r\n","<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\">·</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 }} …\r\n </div>\r\n </ng-template>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CostGroupRole } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { costGroupRoleTotalLabels } from '../../cost-groups/cost-group-role-l10n-helper';\r\nimport { addAmounts, RoleGroup } from '../engine';\r\n\r\n@Component({\r\n selector: 'lib-cost-calculation-result-sum',\r\n templateUrl: './cost-calculation-result-sum.component.html',\r\n})\r\nexport class CostCalculationResultSumComponent {\r\n @Input() roleGroups: RoleGroup[] = [];\r\n\r\n get summaryCards() {\r\n const production = this.roleGroups.find(g => g.role === CostGroupRole.Production)\r\n ?.roleTotal ?? { try: 0, usd: 0, eur: 0 };\r\n const operating = this.roleGroups.find(g => g.role === CostGroupRole.Operating)?.roleTotal ?? {\r\n try: 0,\r\n usd: 0,\r\n eur: 0,\r\n };\r\n const total = addAmounts(...this.roleGroups.map(g => g.roleTotal));\r\n return [\r\n { label: costGroupRoleTotalLabels[CostGroupRole.Production], amount: production },\r\n { label: costGroupRoleTotalLabels[CostGroupRole.Operating], amount: operating },\r\n { label: 'Keops::CostCalculations:TotalSalePrice', amount: total, highlight: true },\r\n ];\r\n }\r\n}\r\n","<div class=\"row mb-3\">\r\n <div class=\"col-md-4\" *ngFor=\"let card of summaryCards\">\r\n <div class=\"card h-100\" [class.border-warning]=\"card.highlight\">\r\n <div class=\"card-body\">\r\n <div class=\"text-muted text-uppercase small fw-bold\">\r\n {{ card.label | abpLocalization }}\r\n </div>\r\n <div class=\"fs-4 fw-bold\">$ {{ card.amount.usd | number }}</div>\r\n <div class=\"text-muted small\">€ {{ card.amount.eur | number }}</div>\r\n <div class=\"text-muted small\">₺ {{ card.amount.try | number }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { forkJoin } from 'rxjs';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport {\r\n CostGroupService,\r\n CostItemService,\r\n CostParameterCategoryService,\r\n CostParameterService,\r\n ExchangeRateService,\r\n ItemService,\r\n ItemDto,\r\n CostParameterDto,\r\n CostItemDto,\r\n CostGroupDto,\r\n Currency,\r\n CostParameterCategoryParentCode,\r\n CostParameterCategoryDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { buildRoleGroups, calculateCost, CostResult, RoleGroup } from '../engine';\r\nimport { CostCalculationItem, CostCalculationStage } from '../cost-calculation.models';\r\nimport { parseDecimal } from '../../../utils/number.utils';\r\nimport { resolveSystemRates } from '../../../utils/exchange-rate.utils';\r\nimport { isRateCostItem } from '../../../shared/cost-item-classification.utils';\r\n\r\n@Component({\r\n selector: 'lib-cost-calculation',\r\n templateUrl: './cost-calculation.component.html',\r\n styleUrls: ['./cost-calculation.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CostCalculationComponent implements OnInit {\r\n readonly itemCodePrefix = '05';\r\n productItems: ItemDto[] = [];\r\n itemsDataSource: DataSource | null = null;\r\n selectedItemCode: string | null = null;\r\n selectedItemName: string | null = null;\r\n\r\n parameters: CostParameterDto[] = [];\r\n selectedParameterCode: string | null = null;\r\n\r\n rawOilPrice = 0;\r\n rawOilCurrency = Currency.USD;\r\n\r\n systemRateUsd = 0;\r\n systemRateEur = 0;\r\n\r\n rateUsd = 0;\r\n rateEur = 0;\r\n\r\n stages: CostCalculationStage[] = [];\r\n result: CostResult | null = null;\r\n roleGroups: RoleGroup[] = [];\r\n\r\n private costItemsByCode = new Map<string, CostItemDto>();\r\n private groups: CostGroupDto[] = [];\r\n private productGroupNames = new Map<string, string>();\r\n private regionNames = new Map<string, string>();\r\n\r\n constructor(\r\n private readonly parameterService: CostParameterService,\r\n private readonly costParameterCategoryService: CostParameterCategoryService,\r\n private readonly costItemService: CostItemService,\r\n private readonly costGroupService: CostGroupService,\r\n private readonly exchangeRateService: ExchangeRateService,\r\n private readonly itemService: ItemService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.calculate();\r\n\r\n forkJoin({\r\n parameters: this.parameterService.getList(),\r\n costItems: this.costItemService.getList(),\r\n groups: this.costGroupService.getList(),\r\n rate: this.exchangeRateService.get(),\r\n lookups: this.costParameterCategoryService.getList(),\r\n items: this.itemService.getList(this.itemCodePrefix),\r\n }).subscribe(({ parameters, costItems, groups, rate, lookups, items }) => {\r\n this.parameters = parameters ?? [];\r\n this.productItems = items ?? [];\r\n this.itemsDataSource = new DataSource({\r\n store: new ArrayStore({ key: 'code', data: this.productItems }),\r\n paginate: true,\r\n pageSize: 50,\r\n });\r\n\r\n const categories = lookups ?? [];\r\n this.productGroupNames = this.toNameMap(\r\n categories.filter(x => x.parentCode === CostParameterCategoryParentCode.Code1),\r\n );\r\n this.regionNames = this.toNameMap(\r\n categories.filter(x => x.parentCode === CostParameterCategoryParentCode.Code4),\r\n );\r\n\r\n this.costItemsByCode = new Map<string, CostItemDto>();\r\n for (const ci of costItems ?? []) {\r\n if (ci.code) this.costItemsByCode.set(ci.code, ci);\r\n }\r\n\r\n this.groups = (groups ?? []).slice().sort((a, b) => a.displayOrder - b.displayOrder);\r\n\r\n const [usd, eur] = resolveSystemRates(rate);\r\n this.systemRateUsd = usd;\r\n this.systemRateEur = eur;\r\n this.rateUsd = usd;\r\n this.rateEur = eur;\r\n\r\n this.calculate();\r\n });\r\n }\r\n\r\n parameterLabel(p: CostParameterDto): string {\r\n const productGroup = this.productGroupNames.get(p.productGroup ?? '') ?? p.productGroup;\r\n const region = this.regionNames.get(p.region ?? '') ?? p.region;\r\n return [productGroup, region].filter(Boolean).join(' — ') || (p.code ?? '');\r\n }\r\n\r\n onItemChange(): void {\r\n const item = this.productItems.find(x => x.code === this.selectedItemCode);\r\n this.selectedItemName = item?.name ?? null;\r\n }\r\n\r\n readonly itemDisplayExpr = (item: ItemDto): string =>\r\n item ? [item.code, item.name].filter(Boolean).join(' — ') : '';\r\n\r\n readonly parameterDisplayExpr = (p: CostParameterDto): string =>\r\n p ? this.parameterLabel(p) : '';\r\n\r\n private toNameMap(options: CostParameterCategoryDto[] | undefined): Map<string, string> {\r\n const map = new Map<string, string>();\r\n for (const option of options ?? []) {\r\n if (option.code) map.set(option.code, option.name ?? option.code);\r\n }\r\n return map;\r\n }\r\n\r\n onParameterChange(): void {\r\n const parameter = this.parameters.find(p => p.code === this.selectedParameterCode);\r\n this.stages = parameter ? this.buildStages(parameter) : [];\r\n this.calculate();\r\n }\r\n\r\n private buildValuesByCode(\r\n parameter: CostParameterDto,\r\n ): Map<string, { value: number; currency?: Currency }> {\r\n const map = new Map<string, { value: number; currency?: Currency }>();\r\n for (const item of parameter.items ?? []) {\r\n if (item.costItemCode) {\r\n map.set(item.costItemCode, { value: parseDecimal(item.value), currency: item.currency });\r\n }\r\n }\r\n return map;\r\n }\r\n\r\n private buildStages(parameter: CostParameterDto): CostCalculationStage[] {\r\n const valuesByCode = this.buildValuesByCode(parameter);\r\n return this.groups.map(group => {\r\n const items: CostCalculationItem[] = [];\r\n for (const code of group.itemCodes ?? []) {\r\n const costItem = this.costItemsByCode.get(code);\r\n if (!costItem) continue;\r\n const stored = valuesByCode.get(code);\r\n const isRate = isRateCostItem(costItem);\r\n items.push({\r\n costItemCode: code,\r\n costItemName: costItem.name ?? code,\r\n calculationType: costItem.calculationType,\r\n systemCode: costItem.systemCode ?? undefined,\r\n currency: stored?.currency ?? (isRate ? undefined : Currency.TRY),\r\n value: stored?.value ?? 0,\r\n });\r\n }\r\n return {\r\n groupCode: group.code ?? '',\r\n groupName: group.name ?? '',\r\n displayOrder: group.displayOrder,\r\n groupRole: group.groupRole,\r\n items,\r\n };\r\n });\r\n }\r\n\r\n calculate(): void {\r\n this.result = calculateCost({\r\n rawOilPrice: parseDecimal(this.rawOilPrice),\r\n rawOilCurrency: this.rawOilCurrency,\r\n rateUsd: parseDecimal(this.rateUsd),\r\n rateEur: parseDecimal(this.rateEur),\r\n stages: this.stages,\r\n });\r\n this.roleGroups = buildRoleGroups(this.result.rawOil, this.result.stages);\r\n }\r\n\r\n print(): void {\r\n window.print();\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { CostCalculationComponent } from './components/cost-calculation.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: CostCalculationComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsCost.CostCalculations',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitCostCalculationRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { DxSelectBoxModule } from 'devextreme-angular';\r\nimport { SharedUiModule } from '../../shared/shared-ui.module';\r\nimport { CostCalculationComponent } from './components/cost-calculation.component';\r\nimport { CostCalculationInputsComponent } from './components/cost-calculation-inputs.component';\r\nimport { CostCalculationResultsComponent } from './components/cost-calculation-results.component';\r\nimport { CostCalculationResultSumComponent } from './components/cost-calculation-result-sum.component';\r\nimport { HitCostCalculationRoutingModule } from './hit-cost-calculation-routing.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n CostCalculationComponent,\r\n CostCalculationInputsComponent,\r\n CostCalculationResultsComponent,\r\n CostCalculationResultSumComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n HitCostCalculationRoutingModule,\r\n DxSelectBoxModule,\r\n SharedUiModule,\r\n ],\r\n})\r\nexport class HitCostCalculationModule {}\r\n\r\nexport function loadHitCostCalculationModuleAsChild() {\r\n return Promise.resolve(HitCostCalculationModule);\r\n}\r\n","import { CostParameterStatus } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport const statusLabels: Record<CostParameterStatus, string> = {\r\n [CostParameterStatus.Active]: 'Keops::CostParameters:Status:Active',\r\n [CostParameterStatus.Passive]: 'Keops::CostParameters:Status:Passive',\r\n [CostParameterStatus.InProgress]: 'Keops::CostParameters:Status:InProgress',\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { FormArray, FormBuilder } from '@angular/forms';\r\nimport {\r\n CostItemCalculationType,\r\n CostItemDto,\r\n CostParameterItemDto,\r\n CostParameterItemInputDto,\r\n Currency,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { currencyApplies } from './cost-item-classification.utils';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CostItemRowsBuilder {\r\n constructor(private readonly fb: FormBuilder) {}\r\n\r\n build(\r\n target: FormArray,\r\n costItems: CostItemDto[],\r\n savedValues: ReadonlyArray<CostParameterItemDto> | null | undefined,\r\n ): void {\r\n const byCode = new Map((savedValues ?? []).map(v => [v.costItemCode, v]));\r\n\r\n target.clear();\r\n costItems.forEach(costItem => {\r\n const saved = byCode.get(costItem.code);\r\n target.push(\r\n this.fb.group({\r\n costItemCode: [costItem.code],\r\n calculationType: [costItem.calculationType],\r\n value: [saved?.value ?? null],\r\n currency: [saved?.currency ?? Currency.TRY],\r\n }),\r\n );\r\n });\r\n }\r\n\r\n toInput(target: FormArray): CostParameterItemInputDto[] {\r\n return target.controls.map(control => {\r\n const { costItemCode, calculationType, value, currency } = control.value as {\r\n costItemCode: string;\r\n calculationType: CostItemCalculationType;\r\n value: unknown;\r\n currency: Currency;\r\n };\r\n\r\n return {\r\n costItemCode,\r\n value: value != null && value !== '' ? String(value) : undefined,\r\n currency: currencyApplies(calculationType) ? currency : undefined,\r\n };\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n CostItemService,\r\n CostParameterService,\r\n CostItemDto,\r\n CostItemCalculationType,\r\n CostParameterDto,\r\n CostParameterStatus,\r\n CostParameterCategoryDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { statusLabels } from '../cost-parameter-l10n-helper';\r\nimport { calculationTypeLabels } from '../../cost-items/cost-item-l10n-helper';\r\nimport { CURRENCY_OPTIONS } from '../../../utils/currency.utils';\r\nimport { isRateCostItem, isCustomCostItem } from '../../../shared/cost-item-classification.utils';\r\nimport { CostItemRowsBuilder } from '../../../shared/cost-item-rows.builder';\r\n\r\nconst statusOptions = [\r\n CostParameterStatus.InProgress,\r\n CostParameterStatus.Active,\r\n CostParameterStatus.Passive,\r\n].map(value => ({ value, label: statusLabels[value] }));\r\n\r\n@Component({\r\n selector: 'lib-cost-parameter-form',\r\n templateUrl: './cost-parameter-form.component.html',\r\n})\r\nexport class CostParameterFormComponent implements OnInit {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: CostParameterDto | null = null;\r\n @Input() productGroupOptions: CostParameterCategoryDto[] = [];\r\n @Input() regionOptions: CostParameterCategoryDto[] = [];\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n costItems: CostItemDto[] = [];\r\n\r\n readonly statusOptions = statusOptions;\r\n readonly currencyOptions = CURRENCY_OPTIONS;\r\n readonly customLabel = calculationTypeLabels[CostItemCalculationType.Custom];\r\n readonly isRate = isRateCostItem;\r\n readonly isCustom = isCustomCostItem;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: CostParameterService,\r\n private readonly costItemService: CostItemService,\r\n private readonly rowsBuilder: CostItemRowsBuilder,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.form = this.fb.group({\r\n region: [this.current?.region ?? null, [Validators.required]],\r\n productGroup: [this.current?.productGroup ?? null, [Validators.required]],\r\n status: [this.current?.status ?? CostParameterStatus.InProgress, [Validators.required]],\r\n description: [this.current?.description ?? '', [Validators.maxLength(512)]],\r\n items: this.fb.array([]),\r\n });\r\n\r\n this.loadCostItems();\r\n }\r\n\r\n get itemsArray(): FormArray {\r\n return this.form.get('items') as FormArray;\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::CostParameters:CreateTitle'\r\n : 'Keops::CostParameters:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n this.saving = true;\r\n\r\n const input = {\r\n ...this.form.value,\r\n items: this.rowsBuilder.toInput(this.itemsArray),\r\n };\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(input)\r\n : this.service.update(this.current!.code!, input);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n\r\n private loadCostItems(): void {\r\n this.costItemService.getList().subscribe(data => {\r\n this.costItems = [...data].sort((a, b) => (a.displayOrder ?? 0) - (b.displayOrder ?? 0));\r\n\r\n this.rowsBuilder.build(this.itemsArray, this.costItems, this.current?.items);\r\n });\r\n }\r\n}\r\n","<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","import { Component, OnInit } from '@angular/core';\r\nimport { forkJoin } from 'rxjs';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport {\r\n CostParameterService,\r\n CostParameterDto,\r\n CostParameterCategoryParentCode,\r\n CostParameterCategoryDto,\r\n CostParameterCategoryService,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { statusLabels } from '../cost-parameter-l10n-helper';\r\n\r\n@Component({\r\n selector: 'lib-cost-parameters',\r\n templateUrl: './cost-parameters.component.html',\r\n})\r\nexport class CostParametersComponent implements OnInit {\r\n items: CostParameterDto[] = [];\r\n\r\n productGroupOptions: CostParameterCategoryDto[] = [];\r\n regionOptions: CostParameterCategoryDto[] = [];\r\n\r\n selected: CostParameterDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: CostParameterService,\r\n private readonly categoryService: CostParameterCategoryService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.load();\r\n }\r\n\r\n getStatusLabel(value: any): string {\r\n return statusLabels[value as keyof typeof statusLabels] ?? '';\r\n }\r\n\r\n getProductGroupName(code: string | undefined | null): string {\r\n return this.resolveName(this.productGroupOptions, code);\r\n }\r\n\r\n getRegionName(code: string | undefined | null): string {\r\n return this.resolveName(this.regionOptions, code);\r\n }\r\n\r\n private resolveName(\r\n options: CostParameterCategoryDto[],\r\n code: string | undefined | null,\r\n ): string {\r\n if (!code) return '';\r\n return options.find(x => x.code === code)?.name ?? code;\r\n }\r\n\r\n load(): void {\r\n forkJoin({\r\n categories: this.categoryService.getList(),\r\n items: this.service.getList(),\r\n }).subscribe(({ categories, items }) => {\r\n const categoryList = categories ?? [];\r\n this.productGroupOptions = categoryList.filter(\r\n x => x.parentCode === CostParameterCategoryParentCode.Code1,\r\n );\r\n this.regionOptions = categoryList.filter(\r\n x => x.parentCode === CostParameterCategoryParentCode.Code4,\r\n );\r\n\r\n this.items = items;\r\n });\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: CostParameterDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: CostParameterDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { CostParametersComponent } from './components/cost-parameters.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: CostParametersComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: {\n requiredPolicy: 'KeopsCost.CostParameters',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HitCostParametersRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { NgbDropdownModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CostParametersComponent } from './components/cost-parameters.component';\nimport { CostParameterFormComponent } from './components/cost-parameter-form.component';\nimport { HitCostParametersRoutingModule } from './hit-cost-parameters-routing.module';\nimport { DxDataGridModule } from 'devextreme-angular';\n\n@NgModule({\n declarations: [CostParametersComponent, CostParameterFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ThemeSharedModule,\n PageModule,\n CommercialUiModule,\n NgbDropdownModule,\n NgbNavModule,\n HitCostParametersRoutingModule,\n DxDataGridModule,\n ],\n})\nexport class HitCostParametersModule {}\n\nexport function loadHitCostParametersModuleAsChild() {\n return Promise.resolve(HitCostParametersModule);\n}\n","import { CostParameterCategoryParentCode } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport const parentCodeLabels: Record<CostParameterCategoryParentCode, string> = {\r\n [CostParameterCategoryParentCode.Code1]: 'Keops::CostParameterCategories:ParentCode:Code1',\r\n [CostParameterCategoryParentCode.Code4]: 'Keops::CostParameterCategories:ParentCode:Code4',\r\n};\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport {\r\n CostParameterCategoryService,\r\n CostParameterCategoryDto,\r\n CostParameterCategoryParentCode,\r\n costParameterCategoryParentCodeOptions,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { parentCodeLabels } from '../cost-parameter-category-l10n-helper';\r\n\r\n@Component({\r\n selector: 'lib-cost-parameter-category-form',\r\n templateUrl: './cost-parameter-category-form.component.html',\r\n})\r\nexport class CostParameterCategoryFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: CostParameterCategoryDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n\r\n readonly parentCodeOptions = costParameterCategoryParentCodeOptions.map(option => ({\r\n value: option.value,\r\n label: parentCodeLabels[option.value as CostParameterCategoryParentCode] ?? option.key,\r\n }));\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: CostParameterCategoryService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['visible']?.currentValue && this.form) {\r\n this.resetForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: ['', Validators.required],\r\n parentCode: [null, Validators.required],\r\n });\r\n this.resetForm();\r\n }\r\n\r\n private resetForm(): void {\r\n if (!this.form) return;\r\n\r\n if (this.mode === 'edit' && this.current) {\r\n this.form.patchValue({\r\n name: this.current.name ?? '',\r\n parentCode: this.current.parentCode ?? null,\r\n });\r\n } else {\r\n this.form.reset({ name: '', parentCode: null });\r\n }\r\n }\r\n\r\n close(): void {\r\n this.visibleChange.emit(false);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) return;\r\n\r\n if (this.mode === 'create') {\r\n this.service\r\n .create({\r\n name: this.form.get('name')?.value,\r\n parentCode: this.form.get('parentCode')?.value,\r\n })\r\n .subscribe({ next: () => this.saved.emit() });\r\n } else {\r\n this.service\r\n .update(this.current!.code!, {\r\n name: this.form.get('name')?.value,\r\n parentCode: this.form.get('parentCode')?.value,\r\n })\r\n .subscribe({ next: () => this.saved.emit() });\r\n }\r\n }\r\n}\r\n","<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","import { Component, OnInit } from '@angular/core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport {\r\n CostParameterCategoryService,\r\n CostParameterCategoryDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { parentCodeLabels } from '../cost-parameter-category-l10n-helper';\r\n\r\n@Component({\r\n selector: 'lib-cost-parameter-categories',\r\n templateUrl: './cost-parameter-categories.component.html',\r\n})\r\nexport class CostParameterCategoriesComponent implements OnInit {\r\n items: CostParameterCategoryDto[] = [];\r\n\r\n selected: CostParameterCategoryDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: CostParameterCategoryService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n getParentCodeLabel(value: any): string {\r\n return parentCodeLabels[value as keyof typeof parentCodeLabels] ?? '';\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: CostParameterCategoryDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: CostParameterCategoryDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { CostParameterCategoriesComponent } from './components/cost-parameter-categories.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: CostParameterCategoriesComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: {\n requiredPolicy: 'KeopsCost.CostParameterCategories',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HitCostParameterCategoriesRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CostParameterCategoriesComponent } from './components/cost-parameter-categories.component';\nimport { CostParameterCategoryFormComponent } from './components/cost-parameter-category-form.component';\nimport { HitCostParameterCategoriesRoutingModule } from './hit-cost-parameter-categories-routing.module';\nimport { DxDataGridModule } from 'devextreme-angular';\n\n@NgModule({\n declarations: [CostParameterCategoriesComponent, CostParameterCategoryFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ThemeSharedModule,\n PageModule,\n CommercialUiModule,\n NgbDropdownModule,\n HitCostParameterCategoriesRoutingModule,\n DxDataGridModule,\n ],\n})\nexport class HitCostParameterCategoriesModule {}\n\nexport function loadHitCostParameterCategoriesModuleAsChild() {\n return Promise.resolve(HitCostParameterCategoriesModule);\n}\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { PackagingTypeService, PackagingTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-packaging-type-form',\r\n templateUrl: './packaging-type-form.component.html',\r\n})\r\nexport class PackagingTypeFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: PackagingTypeDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: PackagingTypeService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(50)]],\r\n displayOrder: [this.current?.displayOrder ?? 0, [Validators.required, Validators.min(0)]],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::PackagingTypes:CreateTitle'\r\n : 'Keops::PackagingTypes:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\n [(visible)]=\"visible\"\n (visibleChange)=\"onVisibleChange($event)\"\n [busy]=\"saving\"\n [options]=\"{ size: 'md' }\"\n>\n <ng-template #abpHeader>\n <h3>{{ title | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"mb-3\">\n <label for=\"name\" class=\"form-label\">\n {{ 'Keops::PackagingTypes:Name' | abpLocalization }}\n <span class=\"text-danger\">*</span>\n </label>\n <input id=\"name\" type=\"text\" class=\"form-control\" formControlName=\"name\" />\n </div>\n\n <div class=\"mb-3\">\n <label for=\"displayOrder\" class=\"form-label\">\n {{ 'Keops::PackagingTypes:DisplayOrder' | abpLocalization }}\n <span class=\"text-danger\">*</span>\n </label>\n <input\n id=\"displayOrder\"\n type=\"number\"\n min=\"0\"\n class=\"form-control\"\n formControlName=\"displayOrder\"\n />\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpUi::Cancel' | abpLocalization }}\n </button>\n <abp-button\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary\"\n [loading]=\"saving\"\n [disabled]=\"form?.invalid\"\n (click)=\"save()\"\n >\n {{ 'AbpUi::Save' | abpLocalization }}\n </abp-button>\n </ng-template>\n</abp-modal>\n","import { Component, OnInit } from '@angular/core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport { PackagingTypeService, PackagingTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-packaging-types',\r\n templateUrl: './packaging-types.component.html',\r\n})\r\nexport class PackagingTypesComponent implements OnInit {\r\n items: PackagingTypeDto[] = [];\r\n\r\n selected: PackagingTypeDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: PackagingTypeService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: PackagingTypeDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: PackagingTypeDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { PackagingTypesComponent } from './components/packaging-types.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: PackagingTypesComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: {\n requiredPolicy: 'KeopsCost.PackagingTypes',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HitPackagingTypesRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { PackagingTypesComponent } from './components/packaging-types.component';\nimport { PackagingTypeFormComponent } from './components/packaging-type-form.component';\nimport { HitPackagingTypesRoutingModule } from './hit-packaging-types-routing.module';\nimport { DxDataGridModule } from 'devextreme-angular';\n\n@NgModule({\n declarations: [PackagingTypesComponent, PackagingTypeFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ThemeSharedModule,\n PageModule,\n CommercialUiModule,\n NgbDropdownModule,\n HitPackagingTypesRoutingModule,\n DxDataGridModule,\n ],\n})\nexport class HitPackagingTypesModule {}\n\nexport function loadHitPackagingTypesModuleAsChild() {\n return Promise.resolve(HitPackagingTypesModule);\n}\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n PackagingMaterialService,\r\n PackagingTypeService,\r\n PackagingMaterialDto,\r\n PackagingTypeDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-packaging-material-form',\r\n templateUrl: './packaging-material-form.component.html',\r\n})\r\nexport class PackagingMaterialFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: PackagingMaterialDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n packagingTypes: PackagingTypeDto[] = [];\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: PackagingMaterialService,\r\n private readonly packagingTypeService: PackagingTypeService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n this.loadPackagingTypes();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(100)]],\r\n typeCode: [this.current?.typeCode ?? '', Validators.required],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::PackagingMaterials:CreateTitle'\r\n : 'Keops::PackagingMaterials:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n private loadPackagingTypes(): void {\r\n this.packagingTypeService.getList().subscribe(data => {\r\n this.packagingTypes = data;\r\n });\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\n [(visible)]=\"visible\"\n (visibleChange)=\"onVisibleChange($event)\"\n [busy]=\"saving\"\n [options]=\"{ size: 'md' }\"\n>\n <ng-template #abpHeader>\n <h3>{{ title | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <div class=\"mb-3\">\n <label for=\"name\" class=\"form-label\">\n {{ 'Keops::PackagingMaterials:Name' | abpLocalization }}\n <span class=\"text-danger\">*</span>\n </label>\n <input id=\"name\" type=\"text\" class=\"form-control\" formControlName=\"name\" />\n </div>\n\n <div class=\"mb-3\">\n <label for=\"type\" class=\"form-label\">\n {{ 'Keops::PackagingMaterials:Type' | abpLocalization }}\n <span class=\"text-danger\">*</span>\n </label>\n <select id=\"type\" class=\"form-select\" formControlName=\"typeCode\">\n <option value=\"\">{{ 'Keops::SelectAnOption' | abpLocalization }}</option>\n <option *ngFor=\"let packagingType of packagingTypes\" [value]=\"packagingType.code\">\n {{ packagingType.name }}\n </option>\n </select>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpUi::Cancel' | abpLocalization }}\n </button>\n <abp-button\n iconClass=\"fa fa-check\"\n buttonClass=\"btn btn-primary\"\n [loading]=\"saving\"\n [disabled]=\"form?.invalid\"\n (click)=\"save()\"\n >\n {{ 'AbpUi::Save' | abpLocalization }}\n </abp-button>\n </ng-template>\n</abp-modal>\n","import { Component, OnInit } from '@angular/core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport { PackagingMaterialService, PackagingMaterialDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-packaging-materials',\r\n templateUrl: './packaging-materials.component.html',\r\n})\r\nexport class PackagingMaterialsComponent implements OnInit {\r\n items: PackagingMaterialDto[] = [];\r\n\r\n selected: PackagingMaterialDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: PackagingMaterialService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: PackagingMaterialDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: PackagingMaterialDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { PackagingMaterialsComponent } from './components/packaging-materials.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: PackagingMaterialsComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: {\n requiredPolicy: 'KeopsCost.PackagingMaterials',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HitPackagingMaterialsRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { PackagingMaterialsComponent } from './components/packaging-materials.component';\nimport { PackagingMaterialFormComponent } from './components/packaging-material-form.component';\nimport { HitPackagingMaterialsRoutingModule } from './hit-packaging-materials-routing.module';\nimport { DxDataGridModule } from 'devextreme-angular';\n\n@NgModule({\n declarations: [PackagingMaterialsComponent, PackagingMaterialFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CoreModule,\n ThemeSharedModule,\n PageModule,\n CommercialUiModule,\n NgbDropdownModule,\n HitPackagingMaterialsRoutingModule,\n DxDataGridModule,\n ],\n})\nexport class HitPackagingMaterialsModule {}\n\nexport function loadHitPackagingMaterialsModuleAsChild() {\n return Promise.resolve(HitPackagingMaterialsModule);\n}\n","/**\n * Trims a backend ISO date/datetime string (e.g. `2026-06-22T00:00:00`) to a date-only\n * `yyyy-MM-dd` string, the shape dx-date-box uses with `dateSerializationFormat=\"yyyy-MM-dd\"`.\n * Returns null for empty input (dx-date-box wants null, not '').\n *\n * Slicing is intentional: ISO 8601 always starts with `yyyy-MM-dd`, so this is timezone-safe\n * (unlike going through a `Date`, which would shift the day across time zones).\n */\nexport function toDateOnly(value: string | null | undefined): string | null {\n return value ? value.slice(0, 10) : null;\n}\n","import { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport {\r\n PackagingPriceCreateDto,\r\n PackagingPriceDto,\r\n PackagingPriceLineInputDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { toDateOnly } from '../../utils/date.utils';\r\nimport { LineRow } from './packaging-price-lines.builder';\r\n\r\n// Single source for the document fields: build the form and map it back to the DTO here.\r\n// Create/Update DTOs are structurally identical, so the create shape fits both.\r\nexport function createPackagingPriceForm(\r\n fb: FormBuilder,\r\n current: PackagingPriceDto | null,\r\n mode: 'create' | 'edit',\r\n): FormGroup {\r\n return fb.group({\r\n name: [current?.name ?? '', [Validators.required, Validators.maxLength(100)]],\r\n materialTypeCode: [\r\n { value: current?.materialTypeCode ?? null, disabled: mode === 'edit' },\r\n Validators.required,\r\n ],\r\n fromDate: [toDateOnly(current?.fromDate), Validators.required],\r\n toDate: [toDateOnly(current?.toDate), Validators.required],\r\n usdRate: [current?.usdRate ?? 0, Validators.required],\r\n eurRate: [current?.eurRate ?? 0, Validators.required],\r\n });\r\n}\r\n\r\nexport function toPackagingPriceInput(form: FormGroup, lineRows: LineRow[]): PackagingPriceCreateDto {\r\n const raw = form.getRawValue();\r\n\r\n return {\r\n name: raw.name,\r\n materialTypeCode: raw.materialTypeCode,\r\n fromDate: raw.fromDate || undefined,\r\n toDate: raw.toDate || undefined,\r\n usdRate: raw.usdRate,\r\n eurRate: raw.eurRate,\r\n // The line group's fields map 1:1 onto PackagingPriceLineInputDto, so its raw value is the DTO.\r\n lines: lineRows.map(row => row.group.getRawValue() as PackagingPriceLineInputDto),\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Rest, RestService } from '@abp/ng.core';\r\nimport { PackagingPriceService, PackagingPriceLineInputDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PackagingPriceExcelService {\r\n // ABP 6.0.x can't generate a client for IRemoteStreamContent uploads (abpframework/abp#8581),\r\n // so importLines posts FormData by hand in the shape ABP would generate.\r\n private readonly apiName = 'KadoogluKeops';\r\n\r\n constructor(\r\n private readonly service: PackagingPriceService,\r\n private readonly restService: RestService,\r\n ) {}\r\n\r\n exportLines(\r\n docEntry: number | undefined,\r\n materialTypeCode: string | undefined,\r\n ): Observable<Blob> {\r\n return this.service.getLinesAsExcelFile({ docEntry, materialTypeCode });\r\n }\r\n\r\n importLines(file: File, config?: Partial<Rest.Config>): Observable<PackagingPriceLineInputDto[]> {\r\n const formData = new FormData();\r\n formData.append('file', file, file.name);\r\n\r\n return this.restService.request<FormData, PackagingPriceLineInputDto[]>(\r\n {\r\n method: 'POST',\r\n url: '/api/kadoogluKeops/packaging-prices/import-lines-from-excel',\r\n body: formData,\r\n },\r\n { apiName: this.apiName, ...config },\r\n );\r\n }\r\n}\r\n","import { Currency } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n// Intentionally independent from cost-calculation/engine/currency.utils.ts: different\r\n// return shape (direct tri-currency vs. base-USD pivot) and different rounding rules.\r\nexport interface PackagingPriceConversion {\r\n tryPrice: number;\r\n usdPrice: number;\r\n eurPrice: number;\r\n}\r\n\r\nfunction roundTo4Decimals(value: number): number {\r\n return Math.round((value + Number.EPSILON) * 10000) / 10000;\r\n}\r\n\r\n/** Pure currency conversion for a packaging price line; no Angular-forms dependency. */\r\nexport function computePackagingPriceConversion(\r\n price: number,\r\n currency: Currency,\r\n usdRate: number,\r\n eurRate: number,\r\n): PackagingPriceConversion {\r\n const p = Number(price) || 0;\r\n const usd = Number(usdRate) || 0;\r\n const eur = Number(eurRate) || 0;\r\n\r\n let tryPrice = 0;\r\n let usdPrice = 0;\r\n let eurPrice = 0;\r\n\r\n if (usd > 0 && eur > 0) {\r\n if (currency === Currency.USD) {\r\n usdPrice = p;\r\n tryPrice = p * usd;\r\n eurPrice = tryPrice / eur;\r\n } else if (currency === Currency.EUR) {\r\n eurPrice = p;\r\n tryPrice = p * eur;\r\n usdPrice = tryPrice / usd;\r\n } else {\r\n tryPrice = p;\r\n usdPrice = p / usd;\r\n eurPrice = p / eur;\r\n }\r\n }\r\n\r\n return {\r\n tryPrice: roundTo4Decimals(tryPrice),\r\n usdPrice: roundTo4Decimals(usdPrice),\r\n eurPrice: roundTo4Decimals(eurPrice),\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { PackagingPriceLineDto, Currency } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { computePackagingPriceConversion } from './packaging-price-calculator';\r\n\r\nexport interface LineRow {\r\n group: FormGroup;\r\n materialCode: string;\r\n materialName: string;\r\n}\r\n\r\nexport interface RateSnapshot {\r\n usdRate: number;\r\n eurRate: number;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PackagingPriceLinesBuilder {\r\n constructor(private readonly fb: FormBuilder) {}\r\n\r\n // getRates is read lazily so each recompute uses the document's current USD/EUR rates.\r\n build(line: PackagingPriceLineDto, getRates: () => RateSnapshot): LineRow {\r\n const group = this.fb.group({\r\n materialCode: [line.materialCode ?? '', Validators.required],\r\n price: [line.price ?? 0, Validators.required],\r\n currency: [line.currency ?? Currency.TRY, Validators.required],\r\n tryPrice: [line.tryPrice ?? 0],\r\n usdPrice: [line.usdPrice ?? 0],\r\n eurPrice: [line.eurPrice ?? 0],\r\n });\r\n\r\n // Recompute only on price/currency; editing an equivalent directly must not cascade back.\r\n group.get('price')!.valueChanges.subscribe(() => this.compute(group, getRates()));\r\n group.get('currency')!.valueChanges.subscribe(() => this.compute(group, getRates()));\r\n\r\n // Auto-fill only when nothing was saved yet, so a reload keeps the user's edited values.\r\n const hasSavedEquivalents =\r\n (line.tryPrice ?? 0) !== 0 || (line.usdPrice ?? 0) !== 0 || (line.eurPrice ?? 0) !== 0;\r\n if (!hasSavedEquivalents) {\r\n this.compute(group, getRates());\r\n }\r\n\r\n return {\r\n group,\r\n materialCode: line.materialCode ?? '',\r\n materialName: line.materialName ?? '',\r\n };\r\n }\r\n\r\n recompute(rows: LineRow[], rates: RateSnapshot): void {\r\n rows.forEach(row => this.compute(row.group, rates));\r\n }\r\n\r\n private compute(group: FormGroup, rates: RateSnapshot): void {\r\n const conversion = computePackagingPriceConversion(\r\n group.get('price')!.value,\r\n group.get('currency')!.value,\r\n rates.usdRate,\r\n rates.eurRate,\r\n );\r\n\r\n group.patchValue(conversion, { emitEvent: false });\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { LocalizationService } from '@abp/ng.core';\r\nimport { LineRow } from '../packaging-price-lines.builder';\r\nimport { CurrencyOption } from '../../../utils/currency.utils';\r\n\r\n@Component({\r\n selector: 'lib-packaging-price-lines',\r\n templateUrl: './packaging-price-lines.component.html',\r\n})\r\nexport class PackagingPriceLinesComponent implements OnChanges {\r\n @Input() rows: LineRow[] = [];\r\n @Input() currencyOptions: CurrencyOption[] = [];\r\n @Input() exporting = false;\r\n @Input() importing = false;\r\n // Only used to gate the Excel buttons (export/import act on the selected type).\r\n @Input() selectedTypeCode: string | null = null;\r\n @Output() exportClick = new EventEmitter<void>();\r\n @Output() importFile = new EventEmitter<File>();\r\n\r\n @ViewChild('fileInput') private fileInput?: ElementRef<HTMLInputElement>;\r\n\r\n private grid?: { repaint(): void };\r\n\r\n constructor(private readonly localization: LocalizationService) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // onToolbarPreparing runs once; repaint so the Excel buttons reflect the new selection state.\r\n if (changes['selectedTypeCode'] && this.grid) {\r\n this.grid.repaint();\r\n }\r\n }\r\n\r\n get canUseExcel(): boolean {\r\n return !!this.selectedTypeCode;\r\n }\r\n\r\n onToolbarPreparing(e: any): void {\r\n this.grid = e.component;\r\n\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'before',\r\n widget: 'dxButton',\r\n options: {\r\n icon: 'exportxlsx',\r\n text: this.localization.instant('Keops::Excel:Export'),\r\n type: 'success',\r\n disabled: this.exporting || !this.canUseExcel,\r\n onClick: () => this.exportClick.emit(),\r\n },\r\n },\r\n {\r\n location: 'before',\r\n widget: 'dxButton',\r\n options: {\r\n icon: 'upload',\r\n text: this.localization.instant('Keops::Excel:Import'),\r\n type: 'default',\r\n disabled: this.importing || !this.canUseExcel,\r\n onClick: () => this.fileInput?.nativeElement.click(),\r\n },\r\n },\r\n );\r\n }\r\n\r\n onFileSelected(event: Event): void {\r\n const input = event.target as HTMLInputElement;\r\n const file = input.files?.[0];\r\n if (file) {\r\n this.importFile.emit(file);\r\n }\r\n input.value = '';\r\n }\r\n\r\n control(group: FormGroup, name: string): FormControl {\r\n return group.get(name) as FormControl;\r\n }\r\n}\r\n","<input\r\n #fileInput\r\n type=\"file\"\r\n class=\"d-none\"\r\n accept=\".xlsx\"\r\n (change)=\"onFileSelected($event)\"\r\n/>\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]=\"rows\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\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-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [visible]=\"true\" [width]=\"200\"></dxo-search-panel>\r\n\r\n\r\n <dxi-column\r\n cellTemplate=\"seqTpl\"\r\n width=\"80\"\r\n caption=\"{{ 'Keops::PackagingPrices:SequenceNo' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'seqTpl'\">\r\n {{ row.rowIndex + 1 }}\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"materialName\"\r\n caption=\"{{ 'Keops::PackagingMaterials:Name' | abpLocalization }}\"\r\n ></dxi-column>\r\n\r\n <dxi-column\r\n cellTemplate=\"priceTpl\"\r\n caption=\"{{ 'Keops::PackagingPrices:Price' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'priceTpl'\">\r\n <input\r\n type=\"number\"\r\n step=\"any\"\r\n class=\"form-control form-control-sm\"\r\n [formControl]=\"control(row.data.group, 'price')\"\r\n />\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n cellTemplate=\"currencyTpl\"\r\n width=\"110\"\r\n caption=\"{{ 'Keops::PackagingPrices:Currency' | abpLocalization }}\"\r\n >\r\n <div *dxTemplate=\"let row of 'currencyTpl'\">\r\n <select class=\"form-select form-select-sm\" [formControl]=\"control(row.data.group, 'currency')\">\r\n <option *ngFor=\"let currency of currencyOptions\" [ngValue]=\"currency.value\">\r\n {{ currency.label }}\r\n </option>\r\n </select>\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column cellTemplate=\"tryPriceTpl\" caption=\"TRY\">\r\n <div *dxTemplate=\"let row of 'tryPriceTpl'\">\r\n <input\r\n type=\"number\"\r\n step=\"any\"\r\n class=\"form-control form-control-sm\"\r\n [formControl]=\"control(row.data.group, 'tryPrice')\"\r\n />\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column cellTemplate=\"usdPriceTpl\" caption=\"USD\">\r\n <div *dxTemplate=\"let row of 'usdPriceTpl'\">\r\n <input\r\n type=\"number\"\r\n step=\"any\"\r\n class=\"form-control form-control-sm\"\r\n [formControl]=\"control(row.data.group, 'usdPrice')\"\r\n />\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column cellTemplate=\"eurPriceTpl\" caption=\"EUR\">\r\n <div *dxTemplate=\"let row of 'eurPriceTpl'\">\r\n <input\r\n type=\"number\"\r\n step=\"any\"\r\n class=\"form-control form-control-sm\"\r\n [formControl]=\"control(row.data.group, 'eurPrice')\"\r\n />\r\n </div>\r\n </dxi-column>\r\n</dx-data-grid>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n ExchangeRateService,\r\n PackagingPriceService,\r\n PackagingPriceDto,\r\n PackagingTypeDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { PackagingPriceExcelService } from '../packaging-price-excel.service';\r\nimport {\r\n LineRow,\r\n PackagingPriceLinesBuilder,\r\n RateSnapshot,\r\n} from '../packaging-price-lines.builder';\r\nimport { createPackagingPriceForm, toPackagingPriceInput } from '../packaging-price-form.factory';\r\nimport { downloadBlob, LocalizationService } from '@abp/ng.core';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { CURRENCY_OPTIONS } from '../../../utils/currency.utils';\r\nimport { resolveSystemRates } from '../../../utils/exchange-rate.utils';\r\n\r\n@Component({\r\n selector: 'lib-packaging-price-form',\r\n templateUrl: './packaging-price-form.component.html',\r\n})\r\nexport class PackagingPriceFormComponent implements OnInit {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: PackagingPriceDto | null = null;\r\n @Input() typeOptions: PackagingTypeDto[] = [];\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n exporting = false;\r\n importing = false;\r\n lineRows: LineRow[] = [];\r\n\r\n readonly currencyOptions = CURRENCY_OPTIONS;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: PackagingPriceService,\r\n private readonly exchangeRateService: ExchangeRateService,\r\n private readonly excelService: PackagingPriceExcelService,\r\n private readonly linesBuilder: PackagingPriceLinesBuilder,\r\n private readonly localization: LocalizationService,\r\n private readonly toaster: ToasterService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n if (this.mode === 'edit') {\r\n this.loadLines(this.current?.materialTypeCode ?? null);\r\n }\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::PackagingPrices:CreateTitle'\r\n : 'Keops::PackagingPrices:EditTitle';\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = createPackagingPriceForm(this.fb, this.current, this.mode);\r\n\r\n const recompute = () => this.linesBuilder.recompute(this.lineRows, this.rates());\r\n this.form.get('usdRate')!.valueChanges.subscribe(recompute);\r\n this.form.get('eurRate')!.valueChanges.subscribe(recompute);\r\n this.form.get('materialTypeCode')!.valueChanges.subscribe(code => this.loadLines(code));\r\n\r\n if (this.mode === 'create') {\r\n this.prefillRates();\r\n }\r\n }\r\n\r\n private rates(): RateSnapshot {\r\n return {\r\n usdRate: this.form.get('usdRate')!.value,\r\n eurRate: this.form.get('eurRate')!.value,\r\n };\r\n }\r\n\r\n private prefillRates(): void {\r\n this.exchangeRateService.get().subscribe(dto => {\r\n const [usdRate, eurRate] = resolveSystemRates(dto);\r\n\r\n this.form.patchValue({ usdRate, eurRate });\r\n });\r\n }\r\n\r\n // Loads the type's materials, merged with saved prices on edit (backend does the merge).\r\n private loadLines(materialTypeCode: string | null): void {\r\n if (!materialTypeCode) {\r\n this.lineRows = [];\r\n return;\r\n }\r\n\r\n this.service.getMergedLines(this.current?.docEntry!, materialTypeCode).subscribe(lines => {\r\n this.lineRows = lines.map(line => this.linesBuilder.build(line, () => this.rates()));\r\n });\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n this.saving = true;\r\n\r\n const input = toPackagingPriceInput(this.form, this.lineRows);\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(input)\r\n : this.service.update(this.current!.docEntry!, input);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n\r\n exportToExcel(): void {\r\n this.exporting = true;\r\n this.excelService\r\n .exportLines(this.current?.docEntry, this.form.get('materialTypeCode')!.value ?? undefined)\r\n .pipe(finalize(() => (this.exporting = false)))\r\n .subscribe(blob =>\r\n downloadBlob(blob, `${this.localization.instant('Keops::PackagingPrices:Title')}.xlsx`),\r\n );\r\n }\r\n\r\n // Import only fills the grid: patch parsed rows onto matching lines; the user still saves.\r\n importFromExcel(file: File): void {\r\n this.importing = true;\r\n this.excelService\r\n .importLines(file)\r\n .pipe(finalize(() => (this.importing = false)))\r\n .subscribe(lines => {\r\n const byCode = new Map(lines.map(line => [line.materialCode, line]));\r\n\r\n // Patch the loaded rows by material code; codes not present in the grid are ignored.\r\n let matched = 0;\r\n this.lineRows.forEach(row => {\r\n const imported = byCode.get(row.materialCode);\r\n if (imported) {\r\n row.group.patchValue({ price: imported.price, currency: imported.currency });\r\n matched++;\r\n }\r\n });\r\n\r\n this.toaster.success(\r\n this.localization.instant('Keops::PackagingPrices:ImportSucceeded', `${matched}`),\r\n );\r\n });\r\n }\r\n}\r\n","<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 <div class=\"flex-fill position-relative\">\r\n <h3 class=\"mb-0\">{{ title | abpLocalization }}</h3>\r\n <small\r\n class=\"text-muted text-nowrap position-absolute top-50 start-50 translate-middle\"\r\n *ngIf=\"mode === 'edit'\"\r\n >\r\n {{ 'Keops::PackagingPrices:DocNum' | abpLocalization }}: {{ current?.docNum ?? '-' }} ·\r\n {{ 'Keops::PackagingPrices:DocDate' | abpLocalization }}:\r\n {{ (current?.docDate! | shortDate) ?? '-' }}\r\n </small>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input id=\"name\" type=\"text\" class=\"form-control\" formControlName=\"name\" />\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"mb-3\">\r\n <label for=\"materialTypeCode\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:Type' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"materialTypeCode\" class=\"form-select\" formControlName=\"materialTypeCode\">\r\n <option [ngValue]=\"null\" disabled hidden>{{ 'Keops::SelectAnOption' | abpLocalization }}</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 </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"fromDate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:FromDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <dx-date-box\r\n id=\"fromDate\"\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 <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"toDate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:ToDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <dx-date-box\r\n id=\"toDate\"\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 <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"usdRate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:UsdRate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"usdRate\"\r\n type=\"number\"\r\n step=\"any\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"usdRate\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <div class=\"mb-3\">\r\n <label for=\"eurRate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:EurRate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"eurRate\"\r\n type=\"number\"\r\n step=\"any\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"eurRate\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div class=\"mb-3\">\r\n <label for=\"fromDate\" class=\"form-label\">\r\n {{ 'Keops::PackagingPrices:Lines' | abpLocalization }}\r\n </label>\r\n <lib-packaging-price-lines\r\n [rows]=\"lineRows\"\r\n [currencyOptions]=\"currencyOptions\"\r\n [exporting]=\"exporting\"\r\n [importing]=\"importing\"\r\n [selectedTypeCode]=\"form.get('materialTypeCode')?.value\"\r\n (exportClick)=\"exportToExcel()\"\r\n (importFile)=\"importFromExcel($event)\"\r\n ></lib-packaging-price-lines>\r\n </div>\r\n </div>\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport {\r\n PackagingPriceService,\r\n PackagingTypeService,\r\n PackagingPriceDto,\r\n PackagingTypeDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-packaging-prices',\r\n templateUrl: './packaging-prices.component.html',\r\n})\r\nexport class PackagingPricesComponent implements OnInit {\r\n items: PackagingPriceDto[] = [];\r\n // Loaded once here so the form's Cins dropdown already has its options when the modal opens.\r\n typeOptions: PackagingTypeDto[] = [];\r\n\r\n selected: PackagingPriceDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: PackagingPriceService,\r\n private readonly packagingTypeService: PackagingTypeService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n this.packagingTypeService.getList().subscribe(types => (this.typeOptions = types));\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: PackagingPriceDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n updateSapItemPrices(row: PackagingPriceDto): void {\r\n this.confirmation\r\n .warn('Keops::PackagingPrices:UpdateSapItemPricesConfirm', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.updateSapItemPrices(row.docEntry!).subscribe({\r\n next: () => {\r\n this.toaster.success('Keops::PackagingPrices:UpdateSapItemPricesSucceeded');\r\n },\r\n });\r\n }\r\n });\r\n }\r\n\r\n remove(row: PackagingPriceDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.docEntry!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\nimport { PackagingPricesComponent } from './components/packaging-prices.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: PackagingPricesComponent,\n canActivate: [AuthGuard, PermissionGuard],\n data: {\n requiredPolicy: 'KeopsCost.PackagingPrices',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HitPackagingPricesRoutingModule {}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PackagingPricesComponent } from './components/packaging-prices.component';\r\nimport { PackagingPriceFormComponent } from './components/packaging-price-form.component';\r\nimport { PackagingPriceLinesComponent } from './components/packaging-price-lines.component';\r\nimport { HitPackagingPricesRoutingModule } from './hit-packaging-prices-routing.module';\r\nimport { DxDataGridModule, DxDateBoxModule } from 'devextreme-angular';\r\n\r\n@NgModule({\r\n declarations: [\r\n PackagingPricesComponent,\r\n PackagingPriceFormComponent,\r\n PackagingPriceLinesComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n NgbNavModule,\r\n HitPackagingPricesRoutingModule,\r\n DxDataGridModule,\r\n DxDateBoxModule,\r\n ],\r\n})\r\nexport class HitPackagingPricesModule {}\r\n\r\nexport function loadHitPackagingPricesModuleAsChild() {\r\n return Promise.resolve(HitPackagingPricesModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { PriceParameterTypeService, PriceParameterTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-price-parameter-type-form',\r\n templateUrl: './price-parameter-type-form.component.html',\r\n})\r\nexport class PriceParameterTypeFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: PriceParameterTypeDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: PriceParameterTypeService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(200)]],\r\n isActive: [this.current?.isActive ?? true],\r\n description: [this.current?.description ?? '', [Validators.maxLength(500)]],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::PriceParameterTypes:CreateTitle'\r\n : 'Keops::PriceParameterTypes:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create({ name: value.name, description: value.description })\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::PriceParameterTypes:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input id=\"name\" type=\"text\" class=\"form-control\" formControlName=\"name\" />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <div class=\"form-check\">\r\n <input\r\n id=\"isActive\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n formControlName=\"isActive\"\r\n />\r\n <label for=\"isActive\" class=\"form-check-label\">\r\n {{ 'Keops::PriceParameterTypes:IsActive' | abpLocalization }}?\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"description\" class=\"form-label\">\r\n {{ 'Keops::PriceParameterTypes:Description' | abpLocalization }}\r\n </label>\r\n <textarea\r\n id=\"description\"\r\n class=\"form-control\"\r\n rows=\"3\"\r\n formControlName=\"description\"\r\n ></textarea>\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport { PriceParameterTypeService, PriceParameterTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-price-parameter-types',\r\n templateUrl: './price-parameter-types.component.html',\r\n})\r\nexport class PriceParameterTypesComponent implements OnInit {\r\n items: PriceParameterTypeDto[] = [];\r\n\r\n selected: PriceParameterTypeDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: PriceParameterTypeService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: PriceParameterTypeDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: PriceParameterTypeDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { PriceParameterTypesComponent } from './components/price-parameter-types.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: PriceParameterTypesComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsCost.PriceParameterTypes',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitPriceParameterTypesRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\nimport { PriceParameterTypesComponent } from './components/price-parameter-types.component';\r\nimport { PriceParameterTypeFormComponent } from './components/price-parameter-type-form.component';\r\nimport { HitPriceParameterTypesRoutingModule } from './hit-price-parameter-types-routing.module';\r\n\r\n@NgModule({\r\n declarations: [PriceParameterTypesComponent, PriceParameterTypeFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitPriceParameterTypesRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitPriceParameterTypesModule {}\r\n\r\nexport function loadHitPriceParameterTypesModuleAsChild() {\r\n return Promise.resolve(HitPriceParameterTypesModule);\r\n}\r\n","import { PriceParameterStatus } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport const statusLabels: Record<PriceParameterStatus, string> = {\r\n [PriceParameterStatus.Active]: 'Keops::PriceParameters:Status:Active',\r\n [PriceParameterStatus.Passive]: 'Keops::PriceParameters:Status:Passive',\r\n [PriceParameterStatus.InProgress]: 'Keops::PriceParameters:Status:InProgress',\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { forkJoin, Observable } from 'rxjs';\r\nimport {\r\n CostParameterCategoryDto,\r\n CostParameterCategoryParentCode,\r\n CostParameterCategoryService,\r\n PriceParameterTypeLookupDto,\r\n PriceParameterTypeService,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport interface PriceParameterTypeAndCategoryLookups {\r\n typeOptions: PriceParameterTypeLookupDto[];\r\n groupOptions: CostParameterCategoryDto[];\r\n regionOptions: CostParameterCategoryDto[];\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PriceParameterLookupsService {\r\n constructor(\r\n private readonly priceParameterTypeService: PriceParameterTypeService,\r\n private readonly costParameterCategoryService: CostParameterCategoryService,\r\n ) {}\r\n\r\n loadTypeAndCategoryLookups(): Observable<PriceParameterTypeAndCategoryLookups> {\r\n return forkJoin({\r\n types: this.priceParameterTypeService.getLookup(),\r\n categories: this.costParameterCategoryService.getList(),\r\n }).pipe(\r\n map(({ types, categories }) => {\r\n const categoryList = categories ?? [];\r\n return {\r\n typeOptions: types ?? [],\r\n groupOptions: categoryList.filter(\r\n x => x.parentCode === CostParameterCategoryParentCode.Code1,\r\n ),\r\n regionOptions: categoryList.filter(\r\n x => x.parentCode === CostParameterCategoryParentCode.Code4,\r\n ),\r\n };\r\n }),\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { forkJoin } from 'rxjs';\r\nimport { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';\r\nimport {\r\n PriceParameterService,\r\n PriceParameterDto,\r\n PriceParameterStatus,\r\n CostParameterCategoryDto,\r\n PriceParameterTypeLookupDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { statusLabels } from '../price-parameter-l10n-helper';\r\nimport { PriceParameterLookupsService } from '../price-parameter-lookups.service';\r\n\r\n@Component({\r\n selector: 'lib-price-parameters',\r\n templateUrl: './price-parameters.component.html',\r\n})\r\nexport class PriceParametersComponent implements OnInit {\r\n items: PriceParameterDto[] = [];\r\n\r\n typeOptions: PriceParameterTypeLookupDto[] = [];\r\n groupOptions: CostParameterCategoryDto[] = [];\r\n regionOptions: CostParameterCategoryDto[] = [];\r\n\r\n constructor(\r\n private readonly service: PriceParameterService,\r\n private readonly lookupsService: PriceParameterLookupsService,\r\n private readonly router: Router,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.load();\r\n }\r\n\r\n getStatusLabel(value: PriceParameterStatus): string {\r\n return statusLabels[value] ?? '';\r\n }\r\n\r\n load(): void {\r\n forkJoin({\r\n lookups: this.lookupsService.loadTypeAndCategoryLookups(),\r\n items: this.service.getList(),\r\n }).subscribe(({ lookups, items }) => {\r\n this.typeOptions = lookups.typeOptions;\r\n this.groupOptions = lookups.groupOptions;\r\n this.regionOptions = lookups.regionOptions;\r\n\r\n this.items = items;\r\n });\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.router.navigate(['/keops/cost/price-parameters/create']);\r\n }\r\n\r\n openEdit(row: PriceParameterDto): void {\r\n this.router.navigate(['/keops/cost/price-parameters', row.docEntry]);\r\n }\r\n\r\n remove(row: PriceParameterDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.docEntry!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { Injectable } from '@angular/core';\r\nimport { forkJoin, Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport {\r\n BusinessPartnerService,\r\n CostItemDto,\r\n CostItemService,\r\n CostParameterCategoryDto,\r\n ExchangeRateService,\r\n PriceParameterDto,\r\n PriceParameterService,\r\n PriceParameterTypeLookupDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { PriceParameterLookupsService } from './price-parameter-lookups.service';\r\nimport { resolveSystemRates } from '../../utils/exchange-rate.utils';\r\n\r\nexport interface PriceParameterFormData {\r\n typeOptions: PriceParameterTypeLookupDto[];\r\n groupOptions: CostParameterCategoryDto[];\r\n regionOptions: CostParameterCategoryDto[];\r\n businessPartnersDataSource: DataSource;\r\n costItems: CostItemDto[];\r\n systemRateUsd: number;\r\n systemRateEur: number;\r\n current: PriceParameterDto | null;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PriceParameterFormDataService {\r\n constructor(\r\n private readonly lookupsService: PriceParameterLookupsService,\r\n private readonly businessPartnerService: BusinessPartnerService,\r\n private readonly costItemService: CostItemService,\r\n private readonly exchangeRateService: ExchangeRateService,\r\n private readonly priceParameterService: PriceParameterService,\r\n ) {}\r\n\r\n load(docEntry: number | null): Observable<PriceParameterFormData> {\r\n return forkJoin({\r\n lookups: this.lookupsService.loadTypeAndCategoryLookups(),\r\n businessPartners: this.businessPartnerService.getList(),\r\n costItems: this.costItemService.getList(),\r\n rate: this.exchangeRateService.get(),\r\n current: docEntry != null ? this.priceParameterService.get(docEntry) : of(null),\r\n }).pipe(\r\n map(({ lookups, businessPartners, costItems, rate, current }) => {\r\n const [systemRateUsd, systemRateEur] = resolveSystemRates(rate);\r\n\r\n return {\r\n typeOptions: lookups.typeOptions,\r\n groupOptions: lookups.groupOptions,\r\n regionOptions: lookups.regionOptions,\r\n businessPartnersDataSource: new DataSource({\r\n store: new ArrayStore({ key: 'cardCode', data: businessPartners ?? [] }),\r\n paginate: true,\r\n pageSize: 50,\r\n }),\r\n costItems: [...(costItems ?? [])].sort(\r\n (a, b) => (a.displayOrder ?? 0) - (b.displayOrder ?? 0),\r\n ),\r\n systemRateUsd,\r\n systemRateEur,\r\n current: current ?? null,\r\n };\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { CostParameterDto, CostParameterService } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PriceParameterCostMatchService {\r\n constructor(private readonly costParameterService: CostParameterService) {}\r\n\r\n findMatch(regionCode: string, groupCode: string): Observable<CostParameterDto | undefined> {\r\n return this.costParameterService\r\n .getList()\r\n .pipe(map(list => list.find(x => x.region === regionCode && x.productGroup === groupCode)));\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { FormArray, FormGroup } from '@angular/forms';\r\nimport { CostItemDto, CostItemCalculationType } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { CURRENCY_OPTIONS } from '../../../utils/currency.utils';\r\nimport { isRateCostItem, isCustomCostItem } from '../../../shared/cost-item-classification.utils';\r\nimport { calculationTypeLabels } from '../../cost-items/cost-item-l10n-helper';\r\n\r\n@Component({\r\n selector: 'lib-price-parameter-cost-items-tab',\r\n templateUrl: './price-parameter-form-cost-items.component.html',\r\n})\r\nexport class PriceParameterCostItemsTabComponent {\r\n @Input() costItems: CostItemDto[] = [];\r\n @Input() itemsArray!: FormArray;\r\n\r\n readonly currencyOptions = CURRENCY_OPTIONS;\r\n readonly isRate = isRateCostItem;\r\n readonly isCustom = isCustomCostItem;\r\n readonly customLabel = calculationTypeLabels[CostItemCalculationType.Custom];\r\n\r\n rowGroup(index: number): FormGroup {\r\n return this.itemsArray.at(index) as FormGroup;\r\n }\r\n}\r\n","<table class=\"table table-sm align-middle mt-3\">\r\n <thead>\r\n <tr>\r\n <th>{{ 'Keops::PriceParameters:CostItemName' | abpLocalization }}</th>\r\n <th style=\"width: 200px\" colspan=\"2\">\r\n {{ 'Keops::PriceParameters:CostItemValue' | abpLocalization }}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let costItem of costItems; let i = index\" [formGroup]=\"rowGroup(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 <tr *ngIf=\"costItems.length === 0\">\r\n <td colspan=\"3\" 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","import { Component, Input, OnChanges } from '@angular/core';\r\nimport { PriceListDto, PriceListService } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-price-parameter-price-lists-tab',\r\n templateUrl: './price-parameter-form-price-lists.component.html',\r\n})\r\nexport class PriceParameterPriceListsTabComponent implements OnChanges {\r\n @Input() cpRegionCode: string | null = null;\r\n @Input() ppTypeCode: string | null = null;\r\n\r\n priceLists: PriceListDto[] = [];\r\n loading = false;\r\n\r\n constructor(private readonly priceListService: PriceListService) {}\r\n\r\n ngOnChanges(): void {\r\n this.load();\r\n }\r\n\r\n private load(): void {\r\n if (!this.cpRegionCode || !this.ppTypeCode) {\r\n this.priceLists = [];\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n this.priceListService.getList(this.cpRegionCode, this.ppTypeCode).subscribe({\r\n next: list => {\r\n this.priceLists = list ?? [];\r\n this.loading = false;\r\n },\r\n error: () => (this.loading = false),\r\n });\r\n }\r\n}\r\n","<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 || '—' }}</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","import { Component, Input, OnChanges } from '@angular/core';\r\nimport { PriceListItemDto, PriceListService } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-price-parameter-items-tab',\r\n templateUrl: './price-parameter-form-items.component.html',\r\n})\r\nexport class PriceParameterItemsTabComponent implements OnChanges {\r\n @Input() cpRegionCode: string | null = null;\r\n @Input() cpGroupCode: string | null = null;\r\n\r\n items: PriceListItemDto[] = [];\r\n loading = false;\r\n\r\n constructor(private readonly priceListService: PriceListService) {}\r\n\r\n ngOnChanges(): void {\r\n this.load();\r\n }\r\n\r\n private load(): void {\r\n if (!this.cpRegionCode || !this.cpGroupCode) {\r\n this.items = [];\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n this.priceListService.getItems(this.cpRegionCode, this.cpGroupCode).subscribe({\r\n next: items => {\r\n this.items = items ?? [];\r\n this.loading = false;\r\n },\r\n error: () => (this.loading = false),\r\n });\r\n }\r\n}\r\n","<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","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SapSalesPersonDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport interface DiscountModalResult {\r\n salesEmployeeCode: number | null;\r\n salesEmployeeName: string | null;\r\n rate: number | null;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-price-parameter-discount-rates-modal',\r\n templateUrl: './price-parameter-form-discount-rates-modal.component.html',\r\n})\r\nexport class PriceParameterDiscountRatesModalComponent implements OnInit {\r\n @Input() isEdit = false;\r\n @Input() salesPersons: SapSalesPersonDto[] = [];\r\n @Input() usedCodes: Set<number> = new Set<number>();\r\n @Input() salesEmployeeCode: number | null = null;\r\n @Input() rate: number | null = null;\r\n\r\n availableSalesPersons: SapSalesPersonDto[] = [];\r\n\r\n constructor(public readonly activeModal: NgbActiveModal) {}\r\n\r\n ngOnInit(): void {\r\n this.availableSalesPersons = this.salesPersons.filter(\r\n p =>\r\n (p.isActive && !this.usedCodes.has(p.salesEmployeeCode)) ||\r\n p.salesEmployeeCode === this.salesEmployeeCode,\r\n );\r\n }\r\n\r\n save(): void {\r\n const selected = this.salesPersons.find(p => p.salesEmployeeCode === this.salesEmployeeCode);\r\n this.activeModal.close({\r\n salesEmployeeCode: selected ? selected.salesEmployeeCode : null,\r\n salesEmployeeName: selected ? selected.salesEmployeeName ?? null : null,\r\n rate: this.salesEmployeeCode != null ? this.clampRate(this.rate) : null,\r\n } as DiscountModalResult);\r\n }\r\n\r\n private clampRate(value: number | null | undefined): number | null {\r\n if (value == null) {\r\n return null;\r\n }\r\n return Math.min(100, Math.max(0, value));\r\n }\r\n}\r\n","<div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n {{\r\n (isEdit\r\n ? 'Keops::PriceParameters:DiscountEditTitle'\r\n : 'Keops::PriceParameters:DiscountCreateTitle'\r\n ) | abpLocalization\r\n }}\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 <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'Keops::PriceParameters:SalesEmployeeName' | abpLocalization }}</label>\r\n <select class=\"form-select\" [(ngModel)]=\"salesEmployeeCode\">\r\n <option [ngValue]=\"null\" disabled hidden>\r\n {{ 'Keops::SelectAnOption' | abpLocalization }}\r\n </option>\r\n <option *ngFor=\"let person of availableSalesPersons\" [ngValue]=\"person.salesEmployeeCode\">\r\n {{ person.salesEmployeeCode }} — {{ person.salesEmployeeName }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-1\">\r\n <label class=\"form-label\">{{ 'Keops::PriceParameters:DiscountRate' | abpLocalization }}</label>\r\n <div class=\"input-group\">\r\n <input\r\n type=\"number\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"rate\"\r\n [disabled]=\"salesEmployeeCode == null\"\r\n min=\"0\"\r\n max=\"100\"\r\n />\r\n <span class=\"input-group-text\">%</span>\r\n </div>\r\n </div>\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::Cancel' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </button>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SapSalesPersonDto, SapSalesPersonService } from '@hitsoft/kadooglu-keops/proxy';\r\nimport {\r\n DiscountModalResult,\r\n PriceParameterDiscountRatesModalComponent,\r\n} from './price-parameter-form-discount-rates-modal.component';\r\n\r\n@Component({\r\n selector: 'lib-price-parameter-discount-rates-tab',\r\n templateUrl: './price-parameter-form-discount-rates.component.html',\r\n})\r\nexport class PriceParameterDiscountRatesTabComponent implements OnInit {\r\n @Input() discountsArray!: FormArray;\r\n\r\n salesPersons: SapSalesPersonDto[] = [];\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly salesPersonService: SapSalesPersonService,\r\n private readonly modalService: NgbModal,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.salesPersonService.getList().subscribe(list => {\r\n this.salesPersons = list ?? [];\r\n });\r\n }\r\n\r\n get rows(): FormGroup[] {\r\n return this.discountsArray.controls as FormGroup[];\r\n }\r\n\r\n add(): void {\r\n const usedCodes = this.usedCodes();\r\n\r\n this.openModal(false, usedCodes, null, null).then(result => {\r\n if (result.salesEmployeeCode == null) {\r\n return;\r\n }\r\n this.discountsArray.push(\r\n this.fb.group({\r\n salesEmployeeCode: [result.salesEmployeeCode],\r\n salesEmployeeName: [result.salesEmployeeName],\r\n rate: [result.rate],\r\n }),\r\n );\r\n this.discountsArray.markAsDirty();\r\n }, () => undefined);\r\n }\r\n\r\n edit(index: number): void {\r\n const group = this.rows[index];\r\n const value = group.value;\r\n const usedCodes = this.usedCodes(index);\r\n\r\n this.openModal(true, usedCodes, value.salesEmployeeCode ?? null, value.rate ?? null).then(\r\n result => {\r\n if (result.salesEmployeeCode == null) {\r\n this.remove(index);\r\n return;\r\n }\r\n group.patchValue({\r\n salesEmployeeCode: result.salesEmployeeCode,\r\n salesEmployeeName: result.salesEmployeeName,\r\n rate: result.rate,\r\n });\r\n this.discountsArray.markAsDirty();\r\n },\r\n () => undefined,\r\n );\r\n }\r\n\r\n remove(index: number): void {\r\n this.discountsArray.removeAt(index);\r\n this.discountsArray.markAsDirty();\r\n }\r\n\r\n private usedCodes(excludeIndex: number | null = null): Set<number> {\r\n return new Set<number>(\r\n this.rows\r\n .filter((_, i) => i !== excludeIndex)\r\n .map(g => g.get('salesEmployeeCode')!.value)\r\n .filter((code): code is number => code != null),\r\n );\r\n }\r\n\r\n private openModal(\r\n isEdit: boolean,\r\n usedCodes: Set<number>,\r\n salesEmployeeCode: number | null,\r\n rate: number | null,\r\n ): Promise<DiscountModalResult> {\r\n const modalRef = this.modalService.open(PriceParameterDiscountRatesModalComponent, { centered: true });\r\n const instance = modalRef.componentInstance as PriceParameterDiscountRatesModalComponent;\r\n instance.isEdit = isEdit;\r\n instance.salesPersons = this.salesPersons;\r\n instance.usedCodes = usedCodes;\r\n instance.salesEmployeeCode = salesEmployeeCode;\r\n instance.rate = rate;\r\n\r\n return modalRef.result as Promise<DiscountModalResult>;\r\n }\r\n}\r\n","<div class=\"d-flex justify-content-end mt-3\">\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" (click)=\"add()\">\r\n <i class=\"fa fa-plus me-1\"></i>\r\n {{ 'Keops::PriceParameters:DiscountNew' | abpLocalization }}\r\n </button>\r\n</div>\r\n\r\n<table class=\"table table-sm align-middle mt-2\">\r\n <thead>\r\n <tr>\r\n <th style=\"width: 48px\">#</th>\r\n <th style=\"width: 200px\">\r\n {{ 'Keops::PriceParameters:SalesEmployeeCode' | abpLocalization }}\r\n </th>\r\n <th>{{ 'Keops::PriceParameters:SalesEmployeeName' | abpLocalization }}</th>\r\n <th style=\"width: 160px\" class=\"text-end\">\r\n {{ 'Keops::PriceParameters:DiscountRate' | abpLocalization }}\r\n </th>\r\n <th style=\"width: 110px\" class=\"text-end\">\r\n {{ 'Keops::PriceParameters:Action' | abpLocalization }}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of rows; let i = index\">\r\n <td class=\"text-muted\">{{ i + 1 }}</td>\r\n <td>{{ row.value.salesEmployeeCode ?? '—' }}</td>\r\n <td>{{ row.value.salesEmployeeName || '—' }}</td>\r\n <td class=\"text-end\">%{{ row.value.rate || 0 }}</td>\r\n <td class=\"text-end\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-sm btn-outline-secondary me-1\"\r\n (click)=\"edit(i)\"\r\n [title]=\"'AbpUi::Edit' | abpLocalization\"\r\n >\r\n <i class=\"fa fa-pencil-alt\"></i>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-sm btn-outline-danger\"\r\n (click)=\"remove(i)\"\r\n [title]=\"'AbpUi::Delete' | abpLocalization\"\r\n >\r\n <i class=\"fa fa-trash\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"rows.length === 0\">\r\n <td colspan=\"5\" 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","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport {\r\n PriceParameterService,\r\n BusinessPartnerDto,\r\n CostItemDto,\r\n Currency,\r\n CostParameterCategoryDto,\r\n PriceParameterTypeLookupDto,\r\n PriceParameterDto,\r\n PriceParameterDiscountDto,\r\n CostParameterItemDto,\r\n PriceParameterStatus,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { statusLabels } from '../price-parameter-l10n-helper';\r\nimport { PriceParameterFormDataService } from '../price-parameter-form-data.service';\r\nimport { PriceParameterCostMatchService } from '../price-parameter-cost-match.service';\r\nimport { CURRENCY_OPTIONS, CURRENCY_OPTIONS_FX_ONLY } from '../../../utils/currency.utils';\r\nimport { isRateCostItem, isCustomCostItem } from '../../../shared/cost-item-classification.utils';\r\nimport { CostItemRowsBuilder } from '../../../shared/cost-item-rows.builder';\r\n\r\nconst statusOptions = [\r\n PriceParameterStatus.InProgress,\r\n PriceParameterStatus.Active,\r\n PriceParameterStatus.Passive,\r\n].map(value => ({ value, label: statusLabels[value] }));\r\n\r\nconst DEFAULT_DISCOUNT_ROWS = 10;\r\n\r\n@Component({\r\n selector: 'lib-price-parameter-form',\r\n templateUrl: './price-parameter-form.component.html',\r\n})\r\nexport class PriceParameterFormComponent implements OnInit {\r\n form!: FormGroup;\r\n saving = false;\r\n editMode = false;\r\n docEntry: number | null = null;\r\n current: PriceParameterDto | null = null;\r\n\r\n costItems: CostItemDto[] = [];\r\n private allCostItems: CostItemDto[] = [];\r\n typeOptions: PriceParameterTypeLookupDto[] = [];\r\n groupOptions: CostParameterCategoryDto[] = [];\r\n regionOptions: CostParameterCategoryDto[] = [];\r\n\r\n private autoApplyEnabled = false;\r\n\r\n systemRateUsd = 0;\r\n systemRateEur = 0;\r\n rateCurrency: Currency = Currency.USD;\r\n\r\n businessPartnersDataSource: DataSource | null = null;\r\n selectedCustomerCode: string | null = null;\r\n gekapCurrency: Currency = Currency.TRY;\r\n rawOilCurrency: Currency = Currency.USD;\r\n salesPriceExcludingPackagingCurrency: Currency = Currency.USD;\r\n\r\n readonly statusOptions = statusOptions;\r\n readonly currencyOptions = CURRENCY_OPTIONS;\r\n readonly rateCurrencyOptions = CURRENCY_OPTIONS_FX_ONLY;\r\n\r\n readonly customerDisplayExpr = (c: BusinessPartnerDto | null): string =>\r\n c ? `${c.cardCode} - ${c.cardName}` : '';\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly route: ActivatedRoute,\r\n private readonly router: Router,\r\n private readonly toaster: ToasterService,\r\n private readonly service: PriceParameterService,\r\n private readonly formDataService: PriceParameterFormDataService,\r\n private readonly costMatchService: PriceParameterCostMatchService,\r\n private readonly rowsBuilder: CostItemRowsBuilder,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const docEntryParam = this.route.snapshot.paramMap.get('docEntry');\r\n this.docEntry = docEntryParam != null ? Number(docEntryParam) : null;\r\n this.editMode = this.docEntry != null && !Number.isNaN(this.docEntry);\r\n\r\n this.form = this.fb.group({\r\n typeCode: [null, [Validators.required]],\r\n regionCode: [null, [Validators.required]],\r\n groupCode: [null, [Validators.required]],\r\n exchangeRate: [0],\r\n fromDate: [{ value: null, disabled: this.editMode }, [Validators.required]],\r\n toDate: [null, [Validators.required]],\r\n status: [null, [Validators.required]],\r\n description: [null, [Validators.maxLength(254)]],\r\n customerCode: [null],\r\n gekap: [0],\r\n generalQuota: [0],\r\n promotionalQuota: [0],\r\n rawOilPrice: [0],\r\n salesPriceExcludingPackaging: [0],\r\n items: this.fb.array([]),\r\n discounts: this.fb.array([]),\r\n });\r\n\r\n this.applyDiscounts(null);\r\n\r\n this.form.get('regionCode')!.valueChanges.subscribe(() => this.onCombinationChange());\r\n this.form.get('groupCode')!.valueChanges.subscribe(() => this.onCombinationChange());\r\n\r\n this.load();\r\n }\r\n\r\n get itemsArray(): FormArray {\r\n return this.form.get('items') as FormArray;\r\n }\r\n\r\n get discountsArray(): FormArray {\r\n return this.form.get('discounts') as FormArray;\r\n }\r\n\r\n get title(): string {\r\n return this.editMode\r\n ? 'Keops::PriceParameters:EditTitle'\r\n : 'Keops::PriceParameters:CreateTitle';\r\n }\r\n\r\n get selectedRegionCode(): string | null {\r\n return this.form?.get('regionCode')?.value ?? null;\r\n }\r\n\r\n get selectedTypeCode(): string | null {\r\n return this.form?.get('typeCode')?.value ?? null;\r\n }\r\n\r\n get selectedGroupCode(): string | null {\r\n return this.form?.get('groupCode')?.value ?? null;\r\n }\r\n\r\n readonly isRate = isRateCostItem;\r\n readonly isCustom = isCustomCostItem;\r\n\r\n onRateCurrencyChange(): void {\r\n this.form\r\n .get('exchangeRate')!\r\n .setValue(this.rateCurrency === Currency.EUR ? this.systemRateEur : this.systemRateUsd);\r\n }\r\n\r\n goBack(): void {\r\n this.router.navigate(['/keops/cost/price-parameters']);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n this.saving = true;\r\n\r\n const input = {\r\n ...this.form.getRawValue(),\r\n customerCode: this.selectedCustomerCode,\r\n gekapCurrency: this.gekapCurrency,\r\n rawOilCurrency: this.rawOilCurrency,\r\n salesPriceExcludingPackagingCurrency: this.salesPriceExcludingPackagingCurrency,\r\n items: this.rowsBuilder.toInput(this.itemsArray),\r\n discounts: this.discountsArray.controls\r\n .map(group => group.value)\r\n .filter(value => value.salesEmployeeCode != null)\r\n .map(value => ({\r\n salesEmployeeCode: value.salesEmployeeCode,\r\n rate: value.rate,\r\n })),\r\n };\r\n\r\n const request$ = this.editMode\r\n ? this.service.update(this.docEntry!, input)\r\n : this.service.create(input);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.goBack();\r\n },\r\n });\r\n }\r\n\r\n private load(): void {\r\n this.formDataService.load(this.editMode ? this.docEntry : null).subscribe(data => {\r\n this.typeOptions = data.typeOptions;\r\n this.groupOptions = data.groupOptions;\r\n this.regionOptions = data.regionOptions;\r\n this.businessPartnersDataSource = data.businessPartnersDataSource;\r\n this.allCostItems = data.costItems;\r\n this.systemRateUsd = data.systemRateUsd;\r\n this.systemRateEur = data.systemRateEur;\r\n\r\n if (data.current) {\r\n this.current = data.current;\r\n this.patchFromCurrent(data.current);\r\n } else {\r\n this.autoApplyEnabled = true;\r\n this.onRateCurrencyChange();\r\n }\r\n });\r\n }\r\n\r\n private patchFromCurrent(dto: PriceParameterDto): void {\r\n this.form.patchValue(\r\n {\r\n typeCode: dto.typeCode ?? null,\r\n regionCode: dto.regionCode ?? null,\r\n groupCode: dto.groupCode ?? null,\r\n exchangeRate: dto.exchangeRate ?? 0,\r\n fromDate: this.toDateInput(dto.fromDate),\r\n toDate: this.toDateInput(dto.toDate),\r\n status: dto.status ?? PriceParameterStatus.Active,\r\n description: dto.description ?? null,\r\n customerCode: dto.customerCode ?? null,\r\n gekap: dto.gekap ?? 0,\r\n generalQuota: dto.generalQuota ?? 0,\r\n promotionalQuota: dto.promotionalQuota ?? 0,\r\n rawOilPrice: dto.rawOilPrice ?? 0,\r\n salesPriceExcludingPackaging: dto.salesPriceExcludingPackaging ?? 0,\r\n },\r\n { emitEvent: false },\r\n );\r\n\r\n this.selectedCustomerCode = dto.customerCode ?? null;\r\n this.gekapCurrency = dto.gekapCurrency ?? Currency.TRY;\r\n this.rawOilCurrency = dto.rawOilCurrency ?? Currency.USD;\r\n this.salesPriceExcludingPackagingCurrency =\r\n dto.salesPriceExcludingPackagingCurrency ?? Currency.USD;\r\n\r\n this.applyItems(dto.items);\r\n this.applyDiscounts(dto.discounts);\r\n this.autoApplyEnabled = true;\r\n }\r\n\r\n private applyDiscounts(\r\n source: ReadonlyArray<PriceParameterDiscountDto> | null | undefined,\r\n ): void {\r\n this.discountsArray.clear();\r\n for (const discount of source ?? []) {\r\n this.discountsArray.push(\r\n this.createDiscountRow(\r\n discount.salesEmployeeCode ?? null,\r\n discount.salesEmployeeName ?? null,\r\n discount.rate ?? null,\r\n ),\r\n );\r\n }\r\n\r\n while (this.discountsArray.length < DEFAULT_DISCOUNT_ROWS) {\r\n this.discountsArray.push(this.createDiscountRow(null, null, null));\r\n }\r\n }\r\n\r\n private createDiscountRow(\r\n salesEmployeeCode: number | null,\r\n salesEmployeeName: string | null,\r\n rate: number | null,\r\n ): FormGroup {\r\n return this.fb.group({\r\n salesEmployeeCode: [salesEmployeeCode],\r\n salesEmployeeName: [salesEmployeeName],\r\n rate: [rate],\r\n });\r\n }\r\n\r\n private applyItems(source: ReadonlyArray<CostParameterItemDto> | null | undefined): void {\r\n this.costItems = this.allCostItems;\r\n this.rowsBuilder.build(this.itemsArray, this.costItems, source);\r\n }\r\n\r\n private clearItems(): void {\r\n this.costItems = [];\r\n this.itemsArray.clear();\r\n }\r\n\r\n private onCombinationChange(): void {\r\n if (!this.autoApplyEnabled) {\r\n return;\r\n }\r\n\r\n const regionCode = this.form.get('regionCode')!.value;\r\n const groupCode = this.form.get('groupCode')!.value;\r\n\r\n if (!regionCode || !groupCode) {\r\n this.clearItems();\r\n return;\r\n }\r\n\r\n this.costMatchService.findMatch(regionCode, groupCode).subscribe(match => {\r\n if (!match) {\r\n this.clearItems();\r\n return;\r\n }\r\n\r\n this.applyItems(match.items);\r\n });\r\n }\r\n\r\n private toDateInput(value: string | null | undefined): string | null {\r\n if (!value) return null;\r\n return value.substring(0, 10);\r\n }\r\n}\r\n","<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 ?? '-' }} ·\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 }} · 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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { PriceParametersComponent } from './components/price-parameters.component';\r\nimport { PriceParameterFormComponent } from './components/price-parameter-form.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: PriceParametersComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsCost.PriceParameters',\r\n },\r\n },\r\n {\r\n path: 'create',\r\n component: PriceParameterFormComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsCost.PriceParameters.Create',\r\n },\r\n },\r\n {\r\n path: ':docEntry',\r\n component: PriceParameterFormComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsCost.PriceParameters.Update',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitPriceParametersRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule, NgbNavModule, NgbModalModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DxDataGridModule, DxDateBoxModule, DxSelectBoxModule } from 'devextreme-angular';\r\nimport { SharedUiModule } from '../../shared/shared-ui.module';\r\nimport { PriceParametersComponent } from './components/price-parameters.component';\r\nimport { PriceParameterFormComponent } from './components/price-parameter-form.component';\r\nimport { HitPriceParametersRoutingModule } from './hit-price-parameters-routing.module';\r\nimport { PriceParameterCostItemsTabComponent } from './components/price-parameter-form-cost-items.component';\r\nimport { PriceParameterPriceListsTabComponent } from './components/price-parameter-form-price-lists.component';\r\nimport { PriceParameterItemsTabComponent } from './components/price-parameter-form-items.component';\r\nimport { PriceParameterDiscountRatesTabComponent } from './components/price-parameter-form-discount-rates.component';\r\nimport { PriceParameterDiscountRatesModalComponent } from './components/price-parameter-form-discount-rates-modal.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n PriceParametersComponent,\r\n PriceParameterFormComponent,\r\n PriceParameterCostItemsTabComponent,\r\n PriceParameterPriceListsTabComponent,\r\n PriceParameterItemsTabComponent,\r\n PriceParameterDiscountRatesTabComponent,\r\n PriceParameterDiscountRatesModalComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n NgbNavModule,\r\n NgbModalModule,\r\n HitPriceParametersRoutingModule,\r\n DxDataGridModule,\r\n DxDateBoxModule,\r\n DxSelectBoxModule,\r\n SharedUiModule,\r\n ],\r\n})\r\nexport class HitPriceParametersModule {}\r\n\r\nexport function loadHitPriceParametersModuleAsChild() {\r\n return Promise.resolve(HitPriceParametersModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { SapSalesPersonService, SapSalesPersonDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { IdentityUserDto } from '@volo/abp.ng.identity/proxy';\r\n\r\n@Component({\r\n selector: 'lib-sap-sales-person-form',\r\n templateUrl: './sap-sales-person-form.component.html',\r\n})\r\nexport class SapSalesPersonFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() current: SapSalesPersonDto | null = null;\r\n @Input() abpUsers: IdentityUserDto[] = [];\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: SapSalesPersonService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n abpUserId: [this.current?.abpUserId ?? null],\r\n });\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n userDisplayExpr = (user: IdentityUserDto): string =>\r\n user ? user.name || user.userName || '' : '';\r\n\r\n save(): void {\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n this.service\r\n .update(this.current!.salesEmployeeCode!, value)\r\n .pipe(finalize(() => (this.saving = false)))\r\n .subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\r\n>\r\n <ng-template #abpHeader>\r\n <h3>{{ 'Keops::SalesPersons:EditTitle' | abpLocalization }} — {{ current?.salesEmployeeName }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"mb-3\">\r\n <label for=\"abpUserId\" class=\"form-label\">\r\n {{ 'Keops::SalesPersons:AbpUser' | abpLocalization }}\r\n </label>\r\n <dx-select-box\r\n id=\"abpUserId\"\r\n formControlName=\"abpUserId\"\r\n [dataSource]=\"abpUsers\"\r\n valueExpr=\"id\"\r\n [displayExpr]=\"userDisplayExpr\"\r\n [searchEnabled]=\"true\"\r\n [searchExpr]=\"['name', 'userName']\"\r\n searchMode=\"contains\"\r\n [searchTimeout]=\"200\"\r\n [minSearchLength]=\"0\"\r\n [showDataBeforeSearch]=\"true\"\r\n [showClearButton]=\"true\"\r\n [placeholder]=\"'Keops::SelectAnOption' | abpLocalization\"\r\n ></dx-select-box>\r\n </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 (click)=\"save()\"\r\n >\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { SapSalesPersonService, SapSalesPersonDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport { IdentityUserService } from '@volo/abp.ng.identity/proxy';\r\nimport { IdentityUserDto } from '@volo/abp.ng.identity/proxy';\r\n\r\n@Component({\r\n selector: 'lib-sap-sales-persons',\r\n templateUrl: './sap-sales-persons.component.html',\r\n})\r\nexport class SapSalesPersonsComponent implements OnInit {\r\n items: SapSalesPersonDto[] = [];\r\n abpUsers: IdentityUserDto[] = [];\r\n\r\n selected: SapSalesPersonDto | null = null;\r\n formVisible = false;\r\n\r\n constructor(\r\n private readonly service: SapSalesPersonService,\r\n private readonly identityUserService: IdentityUserService,\r\n private readonly toaster: ToasterService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.identityUserService\r\n .getList({ maxResultCount: 1000, sorting: 'userName' })\r\n .subscribe(result => {\r\n this.abpUsers = result.items;\r\n });\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openEdit(row: SapSalesPersonDto): void {\r\n this.selected = row;\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n getUserName = (user: IdentityUserDto): string => (user ? user.name || user.userName || '' : '');\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { SapSalesPersonsComponent } from './components/sap-sales-persons.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: SapSalesPersonsComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsSystem.SalesPersons',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitSapSalesPersonsRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DxDataGridModule, DxSelectBoxModule } from 'devextreme-angular';\r\nimport { SapSalesPersonsComponent } from './components/sap-sales-persons.component';\r\nimport { SapSalesPersonFormComponent } from './components/sap-sales-person-form.component';\r\nimport { HitSapSalesPersonsRoutingModule } from './hit-sap-sales-persons-routing.module';\r\n\r\n@NgModule({\r\n declarations: [SapSalesPersonsComponent, SapSalesPersonFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitSapSalesPersonsRoutingModule,\r\n DxDataGridModule,\r\n DxSelectBoxModule,\r\n ],\r\n})\r\nexport class HitSapSalesPersonsModule {}\r\n\r\nexport function loadHitSapSalesPersonsModuleAsChild() {\r\n return Promise.resolve(HitSapSalesPersonsModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ContainerDefinitionService, ContainerDefinitionDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-container-definition-form',\r\n templateUrl: './container-definition-form.component.html',\r\n})\r\nexport class ContainerDefinitionFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: ContainerDefinitionDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: ContainerDefinitionService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(256)]],\r\n innerVolumeM3: [this.current?.innerVolumeM3 ?? 0, [Validators.required, Validators.min(0)]],\r\n netLoadKg: [this.current?.netLoadKg ?? 0, [Validators.required, Validators.min(0)]],\r\n grossLoadKg: [this.current?.grossLoadKg ?? 0, [Validators.required, Validators.min(0)]],\r\n isActive: [this.current?.isActive ?? true],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::ContainerDefinitions:CreateTitle'\r\n : 'Keops::ContainerDefinitions:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.getRawValue();\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::ContainerDefinitions:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"name\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"innerVolumeM3\" class=\"form-label\">\r\n {{ 'Keops::ContainerDefinitions:InnerVolumeM3' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"innerVolumeM3\"\r\n type=\"number\"\r\n min=\"0\"\r\n step=\"any\"\r\n class=\"form-control\"\r\n formControlName=\"innerVolumeM3\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"netLoadKg\" class=\"form-label\">\r\n {{ 'Keops::ContainerDefinitions:NetLoadKg' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"netLoadKg\"\r\n type=\"number\"\r\n min=\"0\"\r\n step=\"any\"\r\n class=\"form-control\"\r\n formControlName=\"netLoadKg\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"grossLoadKg\" class=\"form-label\">\r\n {{ 'Keops::ContainerDefinitions:GrossLoadKg' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"grossLoadKg\"\r\n type=\"number\"\r\n min=\"0\"\r\n step=\"any\"\r\n class=\"form-control\"\r\n formControlName=\"grossLoadKg\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3 form-check\">\r\n <input\r\n id=\"isActive\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n formControlName=\"isActive\"\r\n />\r\n <label for=\"isActive\" class=\"form-check-label\">\r\n {{ 'Keops::ContainerDefinitions:IsActive' | abpLocalization }}\r\n </label>\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { ContainerDefinitionService, ContainerDefinitionDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-container-definitions',\r\n templateUrl: './container-definitions.component.html',\r\n})\r\nexport class ContainerDefinitionsComponent implements OnInit {\r\n items: ContainerDefinitionDto[] = [];\r\n\r\n selected: ContainerDefinitionDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: ContainerDefinitionService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: ContainerDefinitionDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: ContainerDefinitionDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ContainerDefinitionsComponent } from './components/container-definitions.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ContainerDefinitionsComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.ContainerDefinitions',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitContainerDefinitionsRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ContainerDefinitionsComponent } from './components/container-definitions.component';\r\nimport { ContainerDefinitionFormComponent } from './components/container-definition-form.component';\r\nimport { HitContainerDefinitionsRoutingModule } from './hit-container-definitions-routing.module';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\n\r\n@NgModule({\r\n declarations: [ContainerDefinitionsComponent, ContainerDefinitionFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitContainerDefinitionsRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitContainerDefinitionsModule {}\r\n\r\nexport function loadHitContainerDefinitionsModuleAsChild() {\r\n return Promise.resolve(HitContainerDefinitionsModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { PalletDefinitionService, PalletDefinitionDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-pallet-definition-form',\r\n templateUrl: './pallet-definition-form.component.html',\r\n})\r\nexport class PalletDefinitionFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: PalletDefinitionDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: PalletDefinitionService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(256)]],\r\n dimensionCm: [this.current?.dimensionCm ?? '', [Validators.maxLength(64)]],\r\n weightKg: [this.current?.weightKg ?? 0, [Validators.required, Validators.min(0)]],\r\n isActive: [this.current?.isActive ?? true],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::PalletDefinitions:CreateTitle'\r\n : 'Keops::PalletDefinitions:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.getRawValue();\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::PalletDefinitions:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"name\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"dimensionCm\" class=\"form-label\">\r\n {{ 'Keops::PalletDefinitions:DimensionCm' | abpLocalization }}\r\n </label>\r\n <input\r\n id=\"dimensionCm\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"dimensionCm\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"weightKg\" class=\"form-label\">\r\n {{ 'Keops::PalletDefinitions:WeightKg' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"weightKg\"\r\n type=\"number\"\r\n min=\"0\"\r\n step=\"any\"\r\n class=\"form-control\"\r\n formControlName=\"weightKg\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3 form-check\">\r\n <input\r\n id=\"isActive\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n formControlName=\"isActive\"\r\n />\r\n <label for=\"isActive\" class=\"form-check-label\">\r\n {{ 'Keops::PalletDefinitions:IsActive' | abpLocalization }}\r\n </label>\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { PalletDefinitionService, PalletDefinitionDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-pallet-definitions',\r\n templateUrl: './pallet-definitions.component.html',\r\n})\r\nexport class PalletDefinitionsComponent implements OnInit {\r\n items: PalletDefinitionDto[] = [];\r\n\r\n selected: PalletDefinitionDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: PalletDefinitionService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: PalletDefinitionDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: PalletDefinitionDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { PalletDefinitionsComponent } from './components/pallet-definitions.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: PalletDefinitionsComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.PalletDefinitions',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitPalletDefinitionsRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PalletDefinitionsComponent } from './components/pallet-definitions.component';\r\nimport { PalletDefinitionFormComponent } from './components/pallet-definition-form.component';\r\nimport { HitPalletDefinitionsRoutingModule } from './hit-pallet-definitions-routing.module';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\n\r\n@NgModule({\r\n declarations: [PalletDefinitionsComponent, PalletDefinitionFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitPalletDefinitionsRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitPalletDefinitionsModule {}\r\n\r\nexport function loadHitPalletDefinitionsModuleAsChild() {\r\n return Promise.resolve(HitPalletDefinitionsModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n ContainerPalletCapacityService,\r\n ContainerPalletCapacityDto,\r\n ContainerDefinitionDto,\r\n PalletDefinitionDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-container-pallet-capacity-form',\r\n templateUrl: './container-pallet-capacity-form.component.html',\r\n})\r\nexport class ContainerPalletCapacityFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: ContainerPalletCapacityDto | null = null;\r\n @Input() containerOptions: ContainerDefinitionDto[] = [];\r\n @Input() palletOptions: PalletDefinitionDto[] = [];\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: ContainerPalletCapacityService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n containerCode: [this.current?.containerCode ?? null, [Validators.required]],\r\n palletCode: [this.current?.palletCode ?? null, [Validators.required]],\r\n palletCount: [this.current?.palletCount ?? 0, [Validators.required, Validators.min(0)]],\r\n maxPalletCountMixed: [\r\n this.current?.maxPalletCountMixed ?? 0,\r\n [Validators.required, Validators.min(0)],\r\n ],\r\n isActive: [this.current?.isActive ?? true],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::ContainerPalletCapacities:CreateTitle'\r\n : 'Keops::ContainerPalletCapacities:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"containerCode\" class=\"form-label\">\r\n {{ 'Keops::ContainerPalletCapacities:Container' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"containerCode\" class=\"form-select\" formControlName=\"containerCode\">\r\n <option [ngValue]=\"null\">-</option>\r\n <option *ngFor=\"let container of containerOptions\" [ngValue]=\"container.code\">\r\n {{ container.name }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"palletCode\" class=\"form-label\">\r\n {{ 'Keops::ContainerPalletCapacities:Pallet' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"palletCode\" class=\"form-select\" formControlName=\"palletCode\">\r\n <option [ngValue]=\"null\">-</option>\r\n <option *ngFor=\"let pallet of palletOptions\" [ngValue]=\"pallet.code\">\r\n {{ pallet.name }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"palletCount\" class=\"form-label\">\r\n {{ 'Keops::ContainerPalletCapacities:PalletCount' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"palletCount\"\r\n type=\"number\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"palletCount\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"maxPalletCountMixed\" class=\"form-label\">\r\n {{ 'Keops::ContainerPalletCapacities:MaxPalletCountMixed' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"maxPalletCountMixed\"\r\n type=\"number\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"maxPalletCountMixed\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3 form-check\">\r\n <input\r\n id=\"isActive\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n formControlName=\"isActive\"\r\n />\r\n <label for=\"isActive\" class=\"form-check-label\">\r\n {{ 'Keops::ContainerPalletCapacities:IsActive' | abpLocalization }}\r\n </label>\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { forkJoin } from 'rxjs';\r\nimport {\r\n ContainerDefinitionService,\r\n ContainerPalletCapacityService,\r\n PalletDefinitionService,\r\n ContainerPalletCapacityDto,\r\n ContainerDefinitionDto,\r\n PalletDefinitionDto,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-container-pallet-capacities',\r\n templateUrl: './container-pallet-capacities.component.html',\r\n})\r\nexport class ContainerPalletCapacitiesComponent implements OnInit {\r\n items: ContainerPalletCapacityDto[] = [];\r\n containerOptions: ContainerDefinitionDto[] = [];\r\n palletOptions: PalletDefinitionDto[] = [];\r\n\r\n selected: ContainerPalletCapacityDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: ContainerPalletCapacityService,\r\n private readonly containerDefinitionService: ContainerDefinitionService,\r\n private readonly palletDefinitionService: PalletDefinitionService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.load();\r\n }\r\n\r\n load(): void {\r\n forkJoin({\r\n containers: this.containerDefinitionService.getList(),\r\n pallets: this.palletDefinitionService.getList(),\r\n items: this.service.getList(),\r\n }).subscribe(({ containers, pallets, items }) => {\r\n this.containerOptions = containers;\r\n this.palletOptions = pallets;\r\n this.items = items;\r\n });\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n getContainerName(code: string | undefined | null): string {\r\n return this.resolveName(this.containerOptions, code);\r\n }\r\n\r\n getPalletName(code: string | undefined | null): string {\r\n return this.resolveName(this.palletOptions, code);\r\n }\r\n\r\n private resolveName(\r\n options: { code?: string; name?: string }[],\r\n code: string | undefined | null,\r\n ): string {\r\n if (!code) return '';\r\n return options.find(x => x.code === code)?.name ?? code;\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: ContainerPalletCapacityDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: ContainerPalletCapacityDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ContainerPalletCapacitiesComponent } from './components/container-pallet-capacities.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ContainerPalletCapacitiesComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.ContainerPalletCapacities',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitContainerPalletCapacitiesRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ContainerPalletCapacitiesComponent } from './components/container-pallet-capacities.component';\r\nimport { ContainerPalletCapacityFormComponent } from './components/container-pallet-capacity-form.component';\r\nimport { HitContainerPalletCapacitiesRoutingModule } from './hit-container-pallet-capacities-routing.module';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\n\r\n@NgModule({\r\n declarations: [ContainerPalletCapacitiesComponent, ContainerPalletCapacityFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitContainerPalletCapacitiesRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitContainerPalletCapacitiesModule {}\r\n\r\nexport function loadHitContainerPalletCapacitiesModuleAsChild() {\r\n return Promise.resolve(HitContainerPalletCapacitiesModule);\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { forkJoin } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n ContainerDefinitionService,\r\n ContainerLoadingCountService,\r\n PalletDefinitionService,\r\n ContainerDefinitionDto,\r\n PalletDefinitionDto,\r\n ItemProductTypeLookupDto,\r\n LoadingTargetKind,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-container-loading-counts',\r\n templateUrl: './container-loading-counts.component.html',\r\n})\r\nexport class ContainerLoadingCountsComponent implements OnInit {\r\n loading = true;\r\n saving = false;\r\n\r\n productTypes: ItemProductTypeLookupDto[] = [];\r\n containers: ContainerDefinitionDto[] = [];\r\n pallets: PalletDefinitionDto[] = [];\r\n\r\n private readonly controls = new Map<string, FormControl>();\r\n\r\n constructor(\r\n private readonly service: ContainerLoadingCountService,\r\n private readonly containerDefinitionService: ContainerDefinitionService,\r\n private readonly palletDefinitionService: PalletDefinitionService,\r\n private readonly toaster: ToasterService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.load();\r\n }\r\n\r\n get hasColumns(): boolean {\r\n return this.containers.length + this.pallets.length > 0;\r\n }\r\n\r\n cell(\r\n productTypeCode: string | undefined,\r\n prefix: 'c' | 'p',\r\n targetCode: string | undefined,\r\n ): FormControl {\r\n return this.controls.get(this.key(productTypeCode, prefix, targetCode))!;\r\n }\r\n\r\n load(): void {\r\n this.loading = true;\r\n forkJoin({\r\n productTypes: this.service.getItemProductTypes(),\r\n containers: this.containerDefinitionService.getList(),\r\n pallets: this.palletDefinitionService.getList(),\r\n existing: this.service.getList(),\r\n }).subscribe(({ productTypes, containers, pallets, existing }) => {\r\n this.productTypes = productTypes;\r\n this.containers = containers.filter(c => c.isActive);\r\n this.pallets = pallets.filter(p => p.isActive);\r\n\r\n const existingByPt = new Map<string, Map<string, number>>();\r\n for (const row of existing) {\r\n const inner = new Map<string, number>();\r\n for (const line of row.lines ?? []) {\r\n inner.set(`${line.kind}|${line.targetCode}`, line.boxCount);\r\n }\r\n existingByPt.set(row.productTypeCode!, inner);\r\n }\r\n\r\n this.controls.clear();\r\n for (const pt of this.productTypes) {\r\n const inner = existingByPt.get(pt.code!) ?? new Map<string, number>();\r\n for (const c of this.containers) {\r\n const value = inner.get(`${LoadingTargetKind.Container}|${c.code}`) ?? 0;\r\n this.controls.set(this.key(pt.code, 'c', c.code), new FormControl(value));\r\n }\r\n for (const p of this.pallets) {\r\n const value = inner.get(`${LoadingTargetKind.Pallet}|${p.code}`) ?? 0;\r\n this.controls.set(this.key(pt.code, 'p', p.code), new FormControl(value));\r\n }\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n save(): void {\r\n const input = this.productTypes.map(pt => ({\r\n productTypeCode: pt.code,\r\n lines: [\r\n ...this.containers.map(c => ({\r\n kind: LoadingTargetKind.Container,\r\n targetCode: c.code,\r\n boxCount: Number(this.cell(pt.code, 'c', c.code).value) || 0,\r\n })),\r\n ...this.pallets.map(p => ({\r\n kind: LoadingTargetKind.Pallet,\r\n targetCode: p.code,\r\n boxCount: Number(this.cell(pt.code, 'p', p.code).value) || 0,\r\n })),\r\n ],\r\n }));\r\n\r\n this.saving = true;\r\n this.service\r\n .save(input)\r\n .pipe(finalize(() => (this.saving = false)))\r\n .subscribe(() => {\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.load();\r\n });\r\n }\r\n\r\n private key(\r\n productTypeCode: string | undefined,\r\n prefix: 'c' | 'p',\r\n targetCode: string | undefined,\r\n ): string {\r\n return `${productTypeCode}||${prefix}||${targetCode}`;\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ContainerLoadingCountsComponent } from './components/container-loading-counts.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ContainerLoadingCountsComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.ContainerLoadingCounts',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitContainerLoadingCountsRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { ContainerLoadingCountsComponent } from './components/container-loading-counts.component';\r\nimport { HitContainerLoadingCountsRoutingModule } from './hit-container-loading-counts-routing.module';\r\n\r\n@NgModule({\r\n declarations: [ContainerLoadingCountsComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n HitContainerLoadingCountsRoutingModule,\r\n ],\r\n})\r\nexport class HitContainerLoadingCountsModule {}\r\n\r\nexport function loadHitContainerLoadingCountsModuleAsChild() {\r\n return Promise.resolve(HitContainerLoadingCountsModule);\r\n}\r\n","import { PalletStatus } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\nexport const palletStatusLabels: Record<PalletStatus, string> = {\r\n [PalletStatus.Unpalletized]: 'Keops::ContainerLoadingScenarios:PalletStatus:Unpalletized',\r\n [PalletStatus.Palletized]: 'Keops::ContainerLoadingScenarios:PalletStatus:Palletized',\r\n};\r\n\r\nexport const palletStatusOrder: PalletStatus[] = [\r\n PalletStatus.Unpalletized,\r\n PalletStatus.Palletized,\r\n];\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { forkJoin } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n ContainerDefinitionService,\r\n ContainerLoadingScenarioService,\r\n ContainerMixTypeService,\r\n PalletDefinitionService,\r\n ContainerDefinitionDto,\r\n PalletDefinitionDto,\r\n ContainerMixTypeDto,\r\n PalletStatus,\r\n} from '@hitsoft/kadooglu-keops/proxy';\r\nimport { palletStatusLabels, palletStatusOrder } from '../container-loading-scenario-l10n-helper';\r\n\r\ninterface ScenarioRow {\r\n palletStatus: PalletStatus;\r\n mixedType: ContainerMixTypeDto;\r\n container: ContainerDefinitionDto;\r\n pallet: PalletDefinitionDto;\r\n group: FormGroup;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-container-loading-scenarios',\r\n templateUrl: './container-loading-scenarios.component.html',\r\n})\r\nexport class ContainerLoadingScenariosComponent implements OnInit {\r\n loading = true;\r\n saving = false;\r\n\r\n containers: ContainerDefinitionDto[] = [];\r\n pallets: PalletDefinitionDto[] = [];\r\n mixedTypes: ContainerMixTypeDto[] = [];\r\n rows: ScenarioRow[] = [];\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: ContainerLoadingScenarioService,\r\n private readonly containerDefinitionService: ContainerDefinitionService,\r\n private readonly palletDefinitionService: PalletDefinitionService,\r\n private readonly containerMixTypeService: ContainerMixTypeService,\r\n private readonly toaster: ToasterService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.load();\r\n }\r\n\r\n get hasRows(): boolean {\r\n return this.rows.length > 0;\r\n }\r\n\r\n palletStatusLabel(value: PalletStatus): string {\r\n return palletStatusLabels[value] ?? '';\r\n }\r\n\r\n load(): void {\r\n this.loading = true;\r\n forkJoin({\r\n containers: this.containerDefinitionService.getList(),\r\n pallets: this.palletDefinitionService.getList(),\r\n mixedTypes: this.containerMixTypeService.getList(),\r\n existing: this.service.getList(),\r\n }).subscribe(({ containers, pallets, mixedTypes, existing }) => {\r\n this.containers = containers.filter(c => c.isActive);\r\n this.pallets = pallets.filter(p => p.isActive);\r\n this.mixedTypes = [...mixedTypes].sort(\r\n (a, b) => (a.displayOrder ?? 0) - (b.displayOrder ?? 0),\r\n );\r\n\r\n const existingByKey = new Map(\r\n existing.map(x => [\r\n this.key(x.palletStatus, x.mixedTypeCode, x.containerCode, x.palletCode),\r\n x,\r\n ]),\r\n );\r\n\r\n this.rows = [];\r\n for (const ps of palletStatusOrder) {\r\n for (const mixedType of this.mixedTypes) {\r\n for (const container of this.containers) {\r\n for (const pallet of this.pallets) {\r\n const current = existingByKey.get(\r\n this.key(ps, mixedType.code, container.code, pallet.code),\r\n );\r\n this.rows.push({\r\n palletStatus: ps,\r\n mixedType,\r\n container,\r\n pallet,\r\n group: this.fb.group({\r\n maxPalletCount: [current?.maxPalletCount ?? 0],\r\n netWeightKg: [current?.netWeightKg ?? 0],\r\n grossWeightKg: [current?.grossWeightKg ?? 0],\r\n toleranceKg: [current?.toleranceKg ?? 0],\r\n }),\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n save(): void {\r\n const input = this.rows.map(row => ({\r\n palletStatus: row.palletStatus,\r\n mixedTypeCode: row.mixedType.code,\r\n containerCode: row.container.code,\r\n palletCode: row.pallet.code,\r\n maxPalletCount: Number(row.group.value.maxPalletCount) || 0,\r\n netWeightKg: Number(row.group.value.netWeightKg) || 0,\r\n grossWeightKg: Number(row.group.value.grossWeightKg) || 0,\r\n toleranceKg: Number(row.group.value.toleranceKg) || 0,\r\n }));\r\n\r\n this.saving = true;\r\n this.service\r\n .save(input)\r\n .pipe(finalize(() => (this.saving = false)))\r\n .subscribe(() => {\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.load();\r\n });\r\n }\r\n\r\n private key(\r\n palletStatus: PalletStatus,\r\n mixedTypeCode: string | undefined | null,\r\n containerCode: string | undefined | null,\r\n palletCode: string | undefined | null,\r\n ): string {\r\n return `${palletStatus}|${mixedTypeCode ?? ''}|${containerCode ?? ''}|${palletCode ?? ''}`;\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ContainerLoadingScenariosComponent } from './components/container-loading-scenarios.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ContainerLoadingScenariosComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.ContainerLoadingScenarios',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitContainerLoadingScenariosRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { ContainerLoadingScenariosComponent } from './components/container-loading-scenarios.component';\r\nimport { HitContainerLoadingScenariosRoutingModule } from './hit-container-loading-scenarios-routing.module';\r\n\r\n@NgModule({\r\n declarations: [ContainerLoadingScenariosComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n HitContainerLoadingScenariosRoutingModule,\r\n ],\r\n})\r\nexport class HitContainerLoadingScenariosModule {}\r\n\r\nexport function loadHitContainerLoadingScenariosModuleAsChild() {\r\n return Promise.resolve(HitContainerLoadingScenariosModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ContainerMixTypeService, ContainerMixTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-container-mix-type-form',\r\n templateUrl: './container-mix-type-form.component.html',\r\n})\r\nexport class ContainerMixTypeFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: ContainerMixTypeDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: ContainerMixTypeService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(256)]],\r\n displayOrder: [this.current?.displayOrder ?? 0, [Validators.required, Validators.min(0)]],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::ContainerMixTypes:CreateTitle'\r\n : 'Keops::ContainerMixTypes:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::ContainerMixTypes:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"name\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3\">\r\n <label for=\"displayOrder\" class=\"form-label\">\r\n {{ 'Keops::ContainerMixTypes:DisplayOrder' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"displayOrder\"\r\n type=\"number\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"displayOrder\"\r\n />\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { ContainerMixTypeService, ContainerMixTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-container-mix-types',\r\n templateUrl: './container-mix-types.component.html',\r\n})\r\nexport class ContainerMixTypesComponent implements OnInit {\r\n items: ContainerMixTypeDto[] = [];\r\n\r\n selected: ContainerMixTypeDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: ContainerMixTypeService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: ContainerMixTypeDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: ContainerMixTypeDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ContainerMixTypesComponent } from './components/container-mix-types.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ContainerMixTypesComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.ContainerMixTypes',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitContainerMixTypesRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ContainerMixTypesComponent } from './components/container-mix-types.component';\r\nimport { ContainerMixTypeFormComponent } from './components/container-mix-type-form.component';\r\nimport { HitContainerMixTypesRoutingModule } from './hit-container-mix-types-routing.module';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\n\r\n@NgModule({\r\n declarations: [ContainerMixTypesComponent, ContainerMixTypeFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitContainerMixTypesRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitContainerMixTypesModule {}\r\n\r\nexport function loadHitContainerMixTypesModuleAsChild() {\r\n return Promise.resolve(HitContainerMixTypesModule);\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { forkJoin, of } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { CarrierService, DestinationPortService, FreightOfferService, LineService, PosService } from '@hitsoft/kadooglu-keops/proxy';\r\nimport type { ContainerDefinitionLookupDto, CountryLookupDto, FreightOfferDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport type { CarrierDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport type { LineDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport type { PosDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport type { DestinationPortLookupDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-freight-offer-form',\r\n templateUrl: './freight-offer-form.component.html',\r\n})\r\n/**\r\n * Navlun teklifi oluştur/güncelle formu.\r\n * Nakliye firması, hat ve POS alanları master tablolardan seçim dropdown'u olarak sunulur.\r\n * Ülke seçimi değiştiğinde varış limanı listesi cascade olarak yeniden yüklenir.\r\n */\r\nexport class FreightOfferFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: FreightOfferDto | null = null;\r\n @Input() countries: CountryLookupDto[] = [];\r\n @Input() usdRate = 0;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n loading = true;\r\n\r\n carriers: CarrierDto[] = [];\r\n lines: LineDto[] = [];\r\n loadingPorts: PosDto[] = [];\r\n containerDefinitions: ContainerDefinitionLookupDto[] = [];\r\n filteredPorts: DestinationPortLookupDto[] = [];\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: FreightOfferService,\r\n private readonly carrierService: CarrierService,\r\n private readonly lineService: LineService,\r\n private readonly loadingPortService: PosService,\r\n private readonly destinationPortService: DestinationPortService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const destPorts$ = this.current?.destCountryCode\r\n ? this.destinationPortService.getLookupByCountry(this.current.destCountryCode)\r\n : of([] as DestinationPortLookupDto[]);\r\n\r\n forkJoin({\r\n carriers: this.carrierService.getList(),\r\n lines: this.lineService.getList(),\r\n loadingPorts: this.loadingPortService.getList(),\r\n containerDefs: this.service.getContainerDefinitionsLookup(),\r\n destPorts: destPorts$,\r\n }).subscribe(result => {\r\n this.carriers = result.carriers;\r\n this.lines = result.lines;\r\n this.loadingPorts = result.loadingPorts;\r\n this.containerDefinitions = result.containerDefs.filter(d => d.isActive);\r\n this.filteredPorts = result.destPorts;\r\n this.buildForm();\r\n this.loading = false;\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // Yalnızca form açıkken kullanıcı ülke değiştirirse ilgili port listesini sıfırla\r\n if (changes['current'] && !changes['current'].isFirstChange()) {\r\n if (this.current?.destCountryCode) {\r\n this.loadPortsByCountry(this.current.destCountryCode);\r\n } else {\r\n this.filteredPorts = [];\r\n }\r\n }\r\n }\r\n\r\n onCountryChange(countryCode: string): void {\r\n this.form.get('destPortCode')?.setValue('');\r\n this.filteredPorts = [];\r\n if (countryCode) {\r\n this.loadPortsByCountry(countryCode);\r\n }\r\n }\r\n\r\n private loadPortsByCountry(countryCode: string): void {\r\n this.destinationPortService.getLookupByCountry(countryCode).subscribe(data => {\r\n this.filteredPorts = data;\r\n // *ngFor options DOM'a eklendikten sonra (bir tick sonra) değeri yeniden ata\r\n const saved = this.form?.get('destPortCode')?.value;\r\n if (saved) {\r\n setTimeout(() => this.form?.get('destPortCode')?.setValue(saved, { emitEvent: false }));\r\n }\r\n });\r\n }\r\n\r\n get linesArray(): FormArray {\r\n return this.form.get('lines') as FormArray;\r\n }\r\n\r\n private buildLineGroup(line?: any): FormGroup {\r\n return this.fb.group({\r\n containerTypeCode: [line?.containerTypeCode ?? '', Validators.required],\r\n freightUsd: [line?.freightUsd ?? null, [Validators.required, Validators.min(0)]],\r\n portLocalUsd: [line?.portLocalUsd ?? null, [Validators.required, Validators.min(0)]],\r\n inlandTry: [line?.inlandTry ?? null, [Validators.required, Validators.min(0)]],\r\n });\r\n }\r\n\r\n private buildForm(): void {\r\n const existingLines = this.current?.lines ?? [];\r\n const lineGroups = existingLines.length > 0\r\n ? existingLines.map(l => this.buildLineGroup(l))\r\n : this.containerDefinitions.map(cd => this.buildLineGroup({ containerTypeCode: cd.code }));\r\n this.form = this.fb.group({\r\n offerDate: [this.current?.offerDate ?? new Date().toISOString().split('T')[0], Validators.required],\r\n validFrom: [this.current?.validFrom ?? '', Validators.required],\r\n validTo: [this.current?.validTo ?? '', Validators.required],\r\n carrierBpCode: [this.current?.carrierBpCode ?? '', Validators.required],\r\n lineName: [this.current?.lineName ?? '', Validators.required],\r\n posCode: [this.current?.posCode ?? '', Validators.required],\r\n destCountryCode: [this.current?.destCountryCode ?? '', Validators.required],\r\n destPortCode: [this.current?.destPortCode ?? '', Validators.required],\r\n transitDays: [this.current?.transitDays ?? 0, [Validators.required, Validators.min(0)]],\r\n freeTime: [this.current?.freeTime ?? null],\r\n lines: this.fb.array(lineGroups),\r\n });\r\n }\r\n\r\n getInlandUsd(index: number): number {\r\n if (!this.usdRate) return 0;\r\n return (this.linesArray.at(index).value.inlandTry || 0) / this.usdRate;\r\n }\r\n\r\n getLineTotalUsd(index: number): number {\r\n const v = this.linesArray.at(index).value;\r\n return (v.freightUsd || 0) + (v.portLocalUsd || 0) + this.getInlandUsd(index);\r\n }\r\n\r\n addLine(): void {\r\n this.linesArray.push(this.buildLineGroup());\r\n }\r\n\r\n removeLine(index: number): void {\r\n this.linesArray.removeAt(index);\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create' ? 'Keops::FreightOffers:CreateTitle' : 'Keops::FreightOffers:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.saving) return;\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal [(visible)]=\"visible\" (visibleChange)=\"onVisibleChange($event)\" [busy]=\"saving\" [options]=\"{ size: 'xl' }\">\r\n <ng-template #abpHeader>\r\n <h3>{{ title | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <div *ngIf=\"loading\" class=\"text-center py-5\">\r\n <div class=\"spinner-border text-primary\" role=\"status\">\r\n <span class=\"visually-hidden\">Yükleniyor...</span>\r\n </div>\r\n </div>\r\n <form *ngIf=\"!loading\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"d-flex justify-content-end mb-2\" *ngIf=\"usdRate > 0\">\r\n <span class=\"badge bg-secondary fs-6\">\r\n <i class=\"fa fa-dollar-sign me-1\"></i>1 USD = {{ usdRate | number:'1.4-4' }} TRY\r\n </span>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-3\">\r\n <label for=\"offerDate\" class=\"form-label\">\r\n {{ 'Keops::FreightOffers:OfferDate' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <dx-date-box\r\n id=\"offerDate\"\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"offerDate\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-3\">\r\n <label for=\"validFrom\" class=\"form-label\">\r\n {{ 'Keops::FreightOffers:ValidFrom' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <dx-date-box\r\n id=\"validFrom\"\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"validFrom\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-3\">\r\n <label for=\"validTo\" class=\"form-label\">\r\n {{ 'Keops::FreightOffers:ValidTo' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <dx-date-box\r\n id=\"validTo\"\r\n type=\"date\"\r\n dateSerializationFormat=\"yyyy-MM-dd\"\r\n formControlName=\"validTo\"\r\n [min]=\"form.get('validFrom')?.value || null\"\r\n ></dx-date-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-3\">\r\n <label for=\"carrierBpCode\" class=\"form-label\">\r\n {{ 'Keops::FreightOffers:CarrierBpCode' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"carrierBpCode\" class=\"form-select\" formControlName=\"carrierBpCode\">\r\n <option value=\"\" disabled hidden></option>\r\n <option *ngFor=\"let c of carriers\" [value]=\"c.code\">{{ c.name }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-3\">\r\n <label for=\"lineName\" class=\"form-label\">\r\n {{ 'Keops::FreightOffers:LineName' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"lineName\" class=\"form-select\" formControlName=\"lineName\">\r\n <option value=\"\" disabled hidden></option>\r\n <option *ngFor=\"let l of lines\" [value]=\"l.code\">{{ l.name }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-3\">\r\n <label for=\"posCode\" class=\"form-label\">\r\n {{ 'Keops::FreightOffers:PosCode' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"posCode\" class=\"form-select\" formControlName=\"posCode\">\r\n <option value=\"\" disabled hidden></option>\r\n <option *ngFor=\"let p of loadingPorts\" [value]=\"p.code\">{{ p.name }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-3\">\r\n <label for=\"destCountryCode\" class=\"form-label\">\r\n {{ 'Keops::FreightOffers:DestCountryCode' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"destCountryCode\" class=\"form-select\" formControlName=\"destCountryCode\"\r\n (change)=\"onCountryChange($any($event.target).value)\">\r\n <option value=\"\" disabled hidden></option>\r\n <option *ngFor=\"let c of countries\" [value]=\"c.code\">{{ c.name }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-3\">\r\n <label for=\"destPortCode\" class=\"form-label\">\r\n {{ 'Keops::FreightOffers:DestPortCode' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <select id=\"destPortCode\" class=\"form-select\" formControlName=\"destPortCode\">\r\n <option value=\"\" disabled hidden></option>\r\n <option *ngFor=\"let p of filteredPorts\" [value]=\"p.code\">{{ p.portName }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-3\">\r\n <label for=\"transitDays\" class=\"form-label\">\r\n {{ 'Keops::FreightOffers:TransitDays' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"transitDays\"\r\n type=\"number\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"transitDays\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-3\">\r\n <label for=\"freeTime\" class=\"form-label\">\r\n {{ 'Keops::FreightOffers:FreeTime' | abpLocalization }}\r\n </label>\r\n <input\r\n id=\"freeTime\"\r\n type=\"number\"\r\n min=\"0\"\r\n class=\"form-control\"\r\n formControlName=\"freeTime\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-4\">\r\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\r\n <div class=\"border-start border-4 border-primary ps-3\">\r\n <span class=\"fw-bold text-dark\" style=\"font-size: 1rem;\">{{ 'Keops::FreightOffers:ContainerInfo' | abpLocalization }}</span>\r\n <div class=\"text-muted\" style=\"font-size: 0.75rem;\">{{ linesArray.length }} satır</div>\r\n </div>\r\n <!-- <button type=\"button\" class=\"btn btn-sm btn-primary\" (click)=\"addLine()\">\r\n <i class=\"fa fa-plus me-1\"></i>{{ 'Keops::FreightOffers:AddLine' | abpLocalization }}\r\n </button> -->\r\n </div>\r\n <div class=\"border rounded overflow-hidden\">\r\n <table class=\"table table-bordered table-sm align-middle mb-0\" formArrayName=\"lines\">\r\n <thead class=\"table-light\">\r\n <tr>\r\n <th>{{ 'Keops::FreightOffers:ContainerTypeCode' | abpLocalization }} <span class=\"text-danger\">*</span></th>\r\n <th>{{ 'Keops::FreightOffers:FreightUsd' | abpLocalization }}</th>\r\n <th>{{ 'Keops::FreightOffers:PortLocalUsd' | abpLocalization }}</th>\r\n <th>{{ 'Keops::FreightOffers:InlandTry' | abpLocalization }}</th>\r\n <th>{{ 'Keops::FreightOffers:TotalUsd' | abpLocalization }}</th>\r\n <th class=\"text-center\" style=\"width: 50px\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let lineCtrl of linesArray.controls; let i = index\" [formGroupName]=\"i\">\r\n <td>\r\n <select class=\"form-select form-select-sm\" formControlName=\"containerTypeCode\">\r\n <option value=\"\" disabled hidden></option>\r\n <option *ngFor=\"let c of containerDefinitions\" [value]=\"c.code\">{{ c.name }}</option>\r\n </select>\r\n </td>\r\n <td><input type=\"number\" step=\"0.01\" min=\"0\" class=\"form-control form-control-sm\" formControlName=\"freightUsd\" /></td>\r\n <td><input type=\"number\" step=\"0.01\" min=\"0\" class=\"form-control form-control-sm\" formControlName=\"portLocalUsd\" /></td>\r\n <td>\r\n <div class=\"input-group input-group-sm\">\r\n <input type=\"number\" step=\"0.01\" min=\"0\" class=\"form-control form-control-sm\" formControlName=\"inlandTry\" />\r\n <span class=\"input-group-text text-muted\" [style.visibility]=\"usdRate > 0 ? 'visible' : 'hidden'\">\r\n ≈ {{ getInlandUsd(i) | number:'1.2-2' }} $\r\n </span>\r\n </div>\r\n </td>\r\n <td><input type=\"text\" class=\"form-control form-control-sm bg-light\" readonly [value]=\"getLineTotalUsd(i) | number:'1.2-2'\" /></td>\r\n <td class=\"text-center\">\r\n <button type=\"button\" class=\"btn btn-sm btn-outline-danger\" (click)=\"removeLine(i)\">\r\n <i class=\"fa fa-trash\"></i>\r\n </button>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"linesArray.length === 0\">\r\n <td colspan=\"6\" class=\"text-center text-muted py-3\">\r\n <small><i class=\"fa fa-info-circle me-1\"></i>{{ 'Keops::FreightOffers:AddLine' | abpLocalization }}</small>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </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\">{{ 'AbpUi::Cancel' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonClass=\"btn btn-primary\" [loading]=\"saving\" [disabled]=\"loading || saving || form?.invalid\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { forkJoin } from 'rxjs';\r\nimport { CarrierService, DestinationPortService, FreightOfferService, LineService, PosService, CountryLookupDto, ContainerDefinitionLookupDto, FreightOfferDto, FreightOfferLineDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport type { CarrierDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport type { LineDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport type { PosDto } from '@hitsoft/kadooglu-keops/proxy';\r\nimport type { DestinationPortDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-freight-offers',\r\n templateUrl: './freight-offers.component.html',\r\n})\r\nexport class FreightOffersComponent implements OnInit {\r\n @ViewChild(DxDataGridComponent) grid!: DxDataGridComponent;\r\n\r\n items: FreightOfferDto[] = [];\r\n countries: CountryLookupDto[] = [];\r\n carriers: CarrierDto[] = [];\r\n lines: LineDto[] = [];\r\n loadingPorts: PosDto[] = [];\r\n destPorts: DestinationPortDto[] = [];\r\n containerDefinitions: ContainerDefinitionLookupDto[] = [];\r\n usdRate = 0;\r\n loading = true;\r\n showOnlyValid = false;\r\n selected: FreightOfferDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: FreightOfferService,\r\n private readonly carrierService: CarrierService,\r\n private readonly lineService: LineService,\r\n private readonly posService: PosService,\r\n private readonly destinationPortService: DestinationPortService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n forkJoin({\r\n items: this.service.getList(),\r\n countries: this.service.getCountriesLookup(),\r\n usdRate: this.service.getUsdRate(),\r\n carriers: this.carrierService.getList(),\r\n lines: this.lineService.getList(),\r\n loadingPorts: this.posService.getList(),\r\n destPorts: this.destinationPortService.getList(),\r\n containerDefs: this.service.getContainerDefinitionsLookup(),\r\n }).subscribe(result => {\r\n this.items = result.items;\r\n this.countries = result.countries;\r\n this.usdRate = result.usdRate;\r\n this.carriers = result.carriers;\r\n this.lines = result.lines;\r\n this.loadingPorts = result.loadingPorts;\r\n this.destPorts = result.destPorts;\r\n this.containerDefinitions = result.containerDefs.filter(d => d.isActive);\r\n this.loading = false;\r\n });\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n if (this.showOnlyValid) this.onShowOnlyValidChange();\r\n });\r\n }\r\n\r\n onShowOnlyValidChange(): void {\r\n if (!this.showOnlyValid) {\r\n this.grid.instance.option('dataSource', this.items);\r\n return;\r\n }\r\n const d = new Date();\r\n const todayStr = [\r\n d.getFullYear(),\r\n String(d.getMonth() + 1).padStart(2, '0'),\r\n String(d.getDate()).padStart(2, '0'),\r\n ].join('-');\r\n const filtered = this.items.filter(item => {\r\n const from = item.validFrom ? item.validFrom.substring(0, 10) : null;\r\n const to = item.validTo ? item.validTo.substring(0, 10) : null;\r\n return (!from || from <= todayStr) && (!to || to >= todayStr);\r\n });\r\n this.grid.instance.option('dataSource', filtered);\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: FreightOfferDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n openCopy(row: FreightOfferDto): void {\r\n this.confirmation.warn(\r\n 'Keops::FreightOffers:CopyConfirmMessage',\r\n 'Keops::FreightOffers:CopyTitle',\r\n { yesText: 'Keops::FreightOffers:CopyAutoYes', cancelText: 'Keops::FreightOffers:CopyManualNo' }\r\n ).subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.copy(row.code!, { manualDates: false }).subscribe({\r\n next: () => {\r\n this.toaster.success('Keops::FreightOffers:SuccessfullyCopied');\r\n this.loadList();\r\n },\r\n });\r\n } else if (status === Confirmation.Status.reject) {\r\n this.selected = this.buildCopyDto(row);\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n });\r\n }\r\n\r\n private buildCopyDto(source: FreightOfferDto): FreightOfferDto {\r\n return {\r\n ...source,\r\n code: null!,\r\n offerDate: new Date().toISOString().split('T')[0],\r\n };\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('Keops::FreightOffers:SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n getContainerName(code: string): string {\r\n return this.containerDefinitions.find(c => c.code === code)?.name ?? code;\r\n }\r\n\r\n calcLineTotalUsd(line: FreightOfferLineDto): number {\r\n const inlandUsd = this.usdRate > 0 ? (line.inlandTry || 0) / this.usdRate : 0;\r\n return (line.freightUsd || 0) + (line.portLocalUsd || 0) + inlandUsd;\r\n }\r\n\r\n calcTotalUsd = (row: FreightOfferDto): number => {\r\n return (row.lines ?? []).reduce((sum, line) => sum + this.calcLineTotalUsd(line), 0);\r\n };\r\n\r\n remove(row: FreightOfferDto): void {\r\n this.confirmation.warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure').subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('Keops::FreightOffers:SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<abp-page [title]=\"'Keops::FreightOffers:Title' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row justify-content-end mx-0\" id=\"FreightOffersToolbar\">\r\n <div class=\"col-auto px-1 pt-0 pt-md-2 pe-0\">\r\n <button\r\n *abpPermission=\"'KeopsFreight.FreightOffers.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::FreightOffers:New' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div id=\"FreightOffersWrapper\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div *ngIf=\"loading\" class=\"d-flex justify-content-center align-items-center py-5\">\r\n <div class=\"spinner-border text-primary\" role=\"status\">\r\n <span class=\"visually-hidden\">Loading...</span>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"!loading\">\r\n <div class=\"mb-3\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\" id=\"showOnlyValid\" [(ngModel)]=\"showOnlyValid\" (ngModelChange)=\"onShowOnlyValidChange()\" />\r\n <label class=\"form-check-label\" for=\"showOnlyValid\">\r\n {{ 'Keops::FreightOffers:ShowOnlyValid' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\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\" [allowSearch]=\"true\"></dxo-header-filter>\r\n\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.FreightOffers.Copy'\" ngbDropdownItem (click)=\"openCopy(row.data)\">{{ 'Keops::FreightOffers:Copy' | abpLocalization }}</button>\r\n <button *abpPermission=\"'KeopsFreight.FreightOffers.Update'\" ngbDropdownItem (click)=\"openEdit(row.data)\">{{ 'AbpUi::Edit' | abpLocalization }}</button>\r\n <button *abpPermission=\"'KeopsFreight.FreightOffers.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=\"offerDate\" dataType=\"date\" caption=\"{{ 'Keops::FreightOffers:OfferDate' | abpLocalization }}\" width=\"110\"></dxi-column>\r\n <dxi-column dataField=\"validFrom\" dataType=\"date\" caption=\"{{ 'Keops::FreightOffers:ValidFrom' | abpLocalization }}\" width=\"110\"></dxi-column>\r\n <dxi-column dataField=\"validTo\" dataType=\"date\" caption=\"{{ 'Keops::FreightOffers:ValidTo' | abpLocalization }}\" width=\"110\"></dxi-column>\r\n <dxi-column dataField=\"carrierBpCode\" caption=\"{{ 'Keops::FreightOffers:CarrierBpCode' | abpLocalization }}\">\r\n <dxo-lookup [dataSource]=\"carriers\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"lineName\" caption=\"{{ 'Keops::FreightOffers:LineName' | abpLocalization }}\">\r\n <dxo-lookup [dataSource]=\"lines\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"posCode\" caption=\"{{ 'Keops::FreightOffers:PosCode' | abpLocalization }}\">\r\n <dxo-lookup [dataSource]=\"loadingPorts\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"destPortCode\" caption=\"{{ 'Keops::FreightOffers:DestPortCode' | abpLocalization }}\">\r\n <dxo-lookup [dataSource]=\"destPorts\" valueExpr=\"code\" displayExpr=\"portName\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"transitDays\" dataType=\"number\" caption=\"{{ 'Keops::FreightOffers:TransitDays' | abpLocalization }}\" width=\"90\" alignment=\"center\"></dxi-column>\r\n <dxi-column dataField=\"freeTime\" dataType=\"number\" caption=\"{{ 'Keops::FreightOffers:FreeTime' | abpLocalization }}\" width=\"90\" alignment=\"center\"></dxi-column>\r\n <dxi-column [caption]=\"'Keops::FreightOffers:ContainerInfo' | abpLocalization\" cellTemplate=\"containerInfoTpl\" [allowSorting]=\"false\" [allowFiltering]=\"false\" [allowHeaderFiltering]=\"false\" [minWidth]=\"520\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let cell of 'containerInfoTpl'\">\r\n <table class=\"table table-sm table-bordered mb-0\" style=\"font-size: 0.8rem;\">\r\n <thead class=\"table-dark\">\r\n <tr>\r\n <th style=\"min-width:80px\">{{ 'Keops::FreightOffers:ContainerTypeCode' | abpLocalization }}</th>\r\n <th class=\"text-end\" style=\"min-width:90px\">{{ 'Keops::FreightOffers:FreightUsd' | abpLocalization }}</th>\r\n <th class=\"text-end\" style=\"min-width:90px\">{{ 'Keops::FreightOffers:PortLocalUsd' | abpLocalization }}</th>\r\n <th class=\"text-end\" style=\"min-width:85px\">{{ 'Keops::FreightOffers:InlandTry' | abpLocalization }}</th>\r\n <th class=\"text-end\" style=\"min-width:85px\">{{ 'Keops::FreightOffers:TotalUsd' | abpLocalization }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let line of cell.data.lines\">\r\n <td>{{ getContainerName(line.containerTypeCode) }}</td>\r\n <td class=\"text-end\">{{ line.freightUsd | number:'1.2-2' }}</td>\r\n <td class=\"text-end\">{{ line.portLocalUsd | number:'1.2-2' }}</td>\r\n <td class=\"text-end\">{{ line.inlandTry | number:'1.0-0' }}</td>\r\n <td class=\"text-end fw-semibold\">{{ calcLineTotalUsd(line) | number:'1.2-2' }}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </dx-data-grid>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<lib-freight-offer-form\r\n *ngIf=\"formVisible\"\r\n [(visible)]=\"formVisible\"\r\n [mode]=\"formMode\"\r\n [current]=\"selected\"\r\n [countries]=\"countries\"\r\n [usdRate]=\"usdRate\"\r\n (saved)=\"onSaved()\"\r\n></lib-freight-offer-form>\r\n\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { FreightOfferService, FreightOfferDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-freight-offer-copy',\r\n templateUrl: './freight-offer-copy.component.html',\r\n})\r\nexport class FreightOfferCopyComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() source: FreightOfferDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() copied = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: FreightOfferService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['source']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n manualDates: [false],\r\n validFrom: [null],\r\n validTo: [null],\r\n });\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n const value = this.form.value;\r\n this.saving = true;\r\n\r\n this.service.copy(this.source!.code!, value)\r\n .pipe(finalize(() => (this.saving = false)))\r\n .subscribe({\r\n next: () => {\r\n this.copied.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal [(visible)]=\"visible\" (visibleChange)=\"onVisibleChange($event)\" [busy]=\"saving\" [options]=\"{ size: 'md' }\">\r\n <ng-template #abpHeader>\r\n <h3>{{ 'Keops::FreightOffers:CopyTitle' | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <div class=\"mb-3 form-check\">\r\n <input id=\"manualDates\" type=\"checkbox\" class=\"form-check-input\" formControlName=\"manualDates\" />\r\n <label for=\"manualDates\" class=\"form-check-label\">{{ 'Keops::FreightOffers:ManualDates' | abpLocalization }}</label>\r\n </div>\r\n <ng-container *ngIf=\"form.get('manualDates')?.value\">\r\n <div class=\"mb-3\">\r\n <label for=\"validFrom\" class=\"form-label\">{{ 'Keops::FreightOffers:ValidFrom' | abpLocalization }}</label>\r\n <dx-date-box id=\"validFrom\" type=\"date\" dateSerializationFormat=\"yyyy-MM-dd\" formControlName=\"validFrom\"></dx-date-box>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"validTo\" class=\"form-label\">{{ 'Keops::FreightOffers:ValidTo' | abpLocalization }}</label>\r\n <dx-date-box id=\"validTo\" type=\"date\" dateSerializationFormat=\"yyyy-MM-dd\" formControlName=\"validTo\"></dx-date-box>\r\n </div>\r\n </ng-container>\r\n <p class=\"text-muted small\" *ngIf=\"!form.get('manualDates')?.value\">\r\n {{ 'Keops::FreightOffers:CopyAutoDateInfo' | abpLocalization }}\r\n </p>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button abpClose type=\"button\" class=\"btn btn-secondary\">{{ 'AbpUi::Cancel' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-copy\" buttonClass=\"btn btn-primary\" [loading]=\"saving\" (click)=\"save()\">\r\n {{ 'Keops::FreightOffers:Copy' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { FreightOffersComponent } from './components/freight-offers.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: FreightOffersComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsFreight.FreightOffers',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitFreightOffersRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DxDataGridModule, DxDateBoxModule } from 'devextreme-angular';\r\nimport { FreightOffersComponent } from './components/freight-offers.component';\r\nimport { FreightOfferFormComponent } from './components/freight-offer-form.component';\r\nimport { FreightOfferCopyComponent } from './components/freight-offer-copy.component';\r\nimport { HitFreightOffersRoutingModule } from './hit-freight-offers-routing.module';\r\n\r\n@NgModule({\r\n declarations: [FreightOffersComponent, FreightOfferFormComponent, FreightOfferCopyComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitFreightOffersRoutingModule,\r\n DxDataGridModule,\r\n DxDateBoxModule,\r\n ],\r\n})\r\nexport class HitFreightOffersModule {}\r\n\r\nexport function loadHitFreightOffersModuleAsChild() {\r\n return Promise.resolve(HitFreightOffersModule);\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { BlTrackingService, BlTrackingDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-bl-tracking-form',\r\n templateUrl: './bl-tracking-form.component.html',\r\n})\r\nexport class BlTrackingFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: BlTrackingDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: BlTrackingService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n blNo1: [this.current?.blNo1 ?? '', [Validators.required, Validators.maxLength(100)]],\r\n blNo2: [this.current?.blNo2 ?? '', Validators.maxLength(100)],\r\n blNo3: [this.current?.blNo3 ?? '', Validators.maxLength(100)],\r\n blNo4: [this.current?.blNo4 ?? '', Validators.maxLength(100)],\r\n isActive: [this.current?.isActive ?? true],\r\n note: [this.current?.note ?? '', Validators.maxLength(254)],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create' ? 'Keops::BlTracking:CreateTitle' : 'Keops::BlTracking:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.saving) return;\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal [(visible)]=\"visible\" (visibleChange)=\"onVisibleChange($event)\" [busy]=\"saving\" [options]=\"{ size: 'md' }\">\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 <div class=\"mb-3\">\r\n <label for=\"blNo1\" class=\"form-label\">{{ 'Keops::BlTracking:BlNo1' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <input id=\"blNo1\" type=\"text\" class=\"form-control\" formControlName=\"blNo1\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"blNo2\" class=\"form-label\">{{ 'Keops::BlTracking:BlNo2' | abpLocalization }}</label>\r\n <input id=\"blNo2\" type=\"text\" class=\"form-control\" formControlName=\"blNo2\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"blNo3\" class=\"form-label\">{{ 'Keops::BlTracking:BlNo3' | abpLocalization }}</label>\r\n <input id=\"blNo3\" type=\"text\" class=\"form-control\" formControlName=\"blNo3\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"blNo4\" class=\"form-label\">{{ 'Keops::BlTracking:BlNo4' | abpLocalization }}</label>\r\n <input id=\"blNo4\" type=\"text\" class=\"form-control\" formControlName=\"blNo4\" />\r\n </div>\r\n <div class=\"mb-3 form-check\">\r\n <input id=\"isActive\" type=\"checkbox\" class=\"form-check-input\" formControlName=\"isActive\" />\r\n <label for=\"isActive\" class=\"form-check-label\">{{ 'Keops::BlTracking:IsActive' | abpLocalization }}</label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"note\" class=\"form-label\">{{ 'Keops::BlTracking:Note' | abpLocalization }}</label>\r\n <textarea id=\"note\" class=\"form-control\" formControlName=\"note\" rows=\"3\"></textarea>\r\n </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\">{{ 'AbpUi::Cancel' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonClass=\"btn btn-primary\" [loading]=\"saving\" [disabled]=\"saving || form?.invalid\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { BlTrackingService, BlTrackingDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-bl-tracking',\r\n templateUrl: './bl-tracking.component.html',\r\n})\r\nexport class BlTrackingComponent implements OnInit {\r\n items: BlTrackingDto[] = [];\r\n selected: BlTrackingDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: BlTrackingService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => (this.items = data));\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: BlTrackingDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('Keops::BlTracking:SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: BlTrackingDto): void {\r\n this.confirmation.warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure').subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('Keops::BlTracking:SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { BlTrackingComponent } from './components/bl-tracking.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: BlTrackingComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsFreight.BlTracking',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitBlTrackingRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\nimport { BlTrackingComponent } from './components/bl-tracking.component';\r\nimport { BlTrackingFormComponent } from './components/bl-tracking-form.component';\r\nimport { HitBlTrackingRoutingModule } from './hit-bl-tracking-routing.module';\r\n\r\n@NgModule({\r\n declarations: [BlTrackingComponent, BlTrackingFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitBlTrackingRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitBlTrackingModule {}\r\n\r\nexport function loadHitBlTrackingModuleAsChild() {\r\n return Promise.resolve(HitBlTrackingModule);\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { FobInlandDefinitionService, FobInlandDefinitionDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-fob-inland-definition-form',\r\n templateUrl: './fob-inland-definition-form.component.html',\r\n})\r\nexport class FobInlandDefinitionFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: FobInlandDefinitionDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: FobInlandDefinitionService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n fobTotalUsd: [this.current?.fobTotalUsd ?? 0, [Validators.required, Validators.min(0.01)]],\r\n inlandMersinTry: [this.current?.inlandMersinTry ?? 0, [Validators.required, Validators.min(0)]],\r\n inlandIskenderunTry: [this.current?.inlandIskenderunTry ?? 0, [Validators.required, Validators.min(0)]],\r\n parametricDivisorKg: [this.current?.parametricDivisorKg ?? 24000, [Validators.required, Validators.min(0.01)]],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create' ? 'Keops::FobInlandDefinitions:CreateTitle' : 'Keops::FobInlandDefinitions:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.saving) return;\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal [(visible)]=\"visible\" (visibleChange)=\"onVisibleChange($event)\" [busy]=\"saving\" [options]=\"{ size: 'md' }\">\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 <div class=\"mb-3\">\r\n <label for=\"fobTotalUsd\" class=\"form-label\">{{ 'Keops::FobInlandDefinitions:FobTotalUsd' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <input id=\"fobTotalUsd\" type=\"number\" step=\"0.01\" min=\"0.01\" class=\"form-control\" formControlName=\"fobTotalUsd\" />\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-6 mb-3\">\r\n <label for=\"inlandMersinTry\" class=\"form-label\">{{ 'Keops::FobInlandDefinitions:InlandMersinTry' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <input id=\"inlandMersinTry\" type=\"number\" step=\"0.01\" min=\"0\" class=\"form-control\" formControlName=\"inlandMersinTry\" />\r\n </div>\r\n <div class=\"col-6 mb-3\">\r\n <label for=\"inlandIskenderunTry\" class=\"form-label\">{{ 'Keops::FobInlandDefinitions:InlandIskenderunTry' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <input id=\"inlandIskenderunTry\" type=\"number\" step=\"0.01\" min=\"0\" class=\"form-control\" formControlName=\"inlandIskenderunTry\" />\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"parametricDivisorKg\" class=\"form-label\">{{ 'Keops::FobInlandDefinitions:ParametricDivisorKg' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <input id=\"parametricDivisorKg\" type=\"number\" step=\"0.01\" min=\"0.01\" class=\"form-control\" formControlName=\"parametricDivisorKg\" />\r\n </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\">{{ 'AbpUi::Cancel' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonClass=\"btn btn-primary\" [loading]=\"saving\" [disabled]=\"saving || form?.invalid\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { FobInlandDefinitionService, FobInlandDefinitionDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-fob-inland-definitions',\r\n templateUrl: './fob-inland-definitions.component.html',\r\n})\r\nexport class FobInlandDefinitionsComponent implements OnInit {\r\n items: FobInlandDefinitionDto[] = [];\r\n selected: FobInlandDefinitionDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: FobInlandDefinitionService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => (this.items = data));\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: FobInlandDefinitionDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('Keops::FobInlandDefinitions:SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: FobInlandDefinitionDto): void {\r\n this.confirmation.warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure').subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('Keops::FobInlandDefinitions:SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { FobInlandDefinitionsComponent } from './components/fob-inland-definitions.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: FobInlandDefinitionsComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsFreight.FobInlandDefinitions',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitFobInlandDefinitionsRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\nimport { FobInlandDefinitionsComponent } from './components/fob-inland-definitions.component';\r\nimport { FobInlandDefinitionFormComponent } from './components/fob-inland-definition-form.component';\r\nimport { HitFobInlandDefinitionsRoutingModule } from './hit-fob-inland-definitions-routing.module';\r\n\r\n@NgModule({\r\n declarations: [FobInlandDefinitionsComponent, FobInlandDefinitionFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitFobInlandDefinitionsRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitFobInlandDefinitionsModule {}\r\n\r\nexport function loadHitFobInlandDefinitionsModuleAsChild() {\r\n return Promise.resolve(HitFobInlandDefinitionsModule);\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { IncotermService, IncotermDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-incoterm-form',\r\n templateUrl: './incoterm-form.component.html',\r\n})\r\nexport class IncotermFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: IncotermDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: IncotermService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(20)]],\r\n requiresFreight: [this.current?.requiresFreight ?? false],\r\n includesInsurance: [this.current?.includesInsurance ?? false],\r\n includesPackaging: [this.current?.includesPackaging ?? false],\r\n isActive: [this.current?.isActive ?? true],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create' ? 'Keops::Incoterms:CreateTitle' : 'Keops::Incoterms:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.saving) return;\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.getRawValue();\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal [(visible)]=\"visible\" (visibleChange)=\"onVisibleChange($event)\" [busy]=\"saving\" [options]=\"{ size: 'md' }\">\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">{{ 'Keops::Incoterms:Code' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <input id=\"name\" type=\"text\" class=\"form-control\" formControlName=\"name\" />\r\n </div>\r\n <div class=\"mb-3 form-check\">\r\n <input id=\"requiresFreight\" type=\"checkbox\" class=\"form-check-input\" formControlName=\"requiresFreight\" />\r\n <label for=\"requiresFreight\" class=\"form-check-label\">{{ 'Keops::Incoterms:RequiresFreight' | abpLocalization }}</label>\r\n </div>\r\n <div class=\"mb-3 form-check\">\r\n <input id=\"includesInsurance\" type=\"checkbox\" class=\"form-check-input\" formControlName=\"includesInsurance\" />\r\n <label for=\"includesInsurance\" class=\"form-check-label\">{{ 'Keops::Incoterms:IncludesInsurance' | abpLocalization }}</label>\r\n </div>\r\n <div class=\"mb-3 form-check\">\r\n <input id=\"includesPackaging\" type=\"checkbox\" class=\"form-check-input\" formControlName=\"includesPackaging\" />\r\n <label for=\"includesPackaging\" class=\"form-check-label\">{{ 'Keops::Incoterms:IncludesPackaging' | abpLocalization }}</label>\r\n </div>\r\n <div class=\"mb-3 form-check\">\r\n <input id=\"isActive\" type=\"checkbox\" class=\"form-check-input\" formControlName=\"isActive\" />\r\n <label for=\"isActive\" class=\"form-check-label\">{{ 'Keops::Incoterms:IsActive' | abpLocalization }}</label>\r\n </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\">{{ 'AbpUi::Cancel' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonClass=\"btn btn-primary\" [loading]=\"saving\" [disabled]=\"saving || form?.invalid\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { IncotermService, IncotermDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-incoterms',\r\n templateUrl: './incoterms.component.html',\r\n})\r\nexport class IncotermsComponent implements OnInit {\r\n items: IncotermDto[] = [];\r\n selected: IncotermDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: IncotermService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => (this.items = data));\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: IncotermDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('Keops::Incoterms:SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: IncotermDto): void {\r\n this.confirmation.warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure').subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('Keops::Incoterms:SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { IncotermsComponent } from './components/incoterms.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: IncotermsComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsFreight.Incoterms',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitIncotermsRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\nimport { IncotermsComponent } from './components/incoterms.component';\r\nimport { IncotermFormComponent } from './components/incoterm-form.component';\r\nimport { HitIncotermsRoutingModule } from './hit-incoterms-routing.module';\r\n\r\n@NgModule({\r\n declarations: [IncotermsComponent, IncotermFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitIncotermsRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitIncotermsModule {}\r\n\r\nexport function loadHitIncotermsModuleAsChild() {\r\n return Promise.resolve(HitIncotermsModule);\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { CarrierService, CarrierDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-carrier-form',\r\n templateUrl: './carrier-form.component.html',\r\n})\r\n/** Nakliye firması oluştur/güncelle formu; düzenleme modunda kod alanı pasif olur. */\r\nexport class CarrierFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: CarrierDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: CarrierService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(100)]],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create' ? 'Keops::Carriers:CreateTitle' : 'Keops::Carriers:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.saving) return;\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, { name: value.name });\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal [(visible)]=\"visible\" (visibleChange)=\"onVisibleChange($event)\" [busy]=\"saving\" [options]=\"{ size: 'md' }\">\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">{{ 'Keops::Carriers:Name' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <input id=\"name\" 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 abpClose type=\"button\" class=\"btn btn-secondary\">{{ 'AbpUi::Cancel' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonClass=\"btn btn-primary\" [loading]=\"saving\" [disabled]=\"saving || form?.invalid\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { CarrierService, CarrierDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-carriers',\r\n templateUrl: './carriers.component.html',\r\n})\r\n/** Nakliye firmaları listesi; oluştur / düzenle / sil aksiyonlarını yönetir. */\r\nexport class CarriersComponent implements OnInit {\r\n items: CarrierDto[] = [];\r\n selected: CarrierDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: CarrierService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => (this.items = data));\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: CarrierDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('Keops::Carriers:SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: CarrierDto): void {\r\n this.confirmation.warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure').subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('Keops::Carriers:SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { CarriersComponent } from './components/carriers.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: CarriersComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsFreight.Carriers',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitCarriersRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\nimport { CarriersComponent } from './components/carriers.component';\r\nimport { CarrierFormComponent } from './components/carrier-form.component';\r\nimport { HitCarriersRoutingModule } from './hit-carriers-routing.module';\r\n\r\n@NgModule({\r\n declarations: [CarriersComponent, CarrierFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitCarriersRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitCarriersModule {}\r\n\r\nexport function loadHitCarriersModuleAsChild() {\r\n return Promise.resolve(HitCarriersModule);\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { LineService, LineDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-line-form',\r\n templateUrl: './line-form.component.html',\r\n})\r\n/** Nakliye hattı oluştur/güncelle formu; düzenleme modunda kod alanı pasif olur. */\r\nexport class LineFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: LineDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: LineService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(100)]],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create' ? 'Keops::Lines:CreateTitle' : 'Keops::Lines:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.saving) return;\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, { name: value.name });\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal [(visible)]=\"visible\" (visibleChange)=\"onVisibleChange($event)\" [busy]=\"saving\" [options]=\"{ size: 'md' }\">\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">{{ 'Keops::Lines:Name' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <input id=\"name\" 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 abpClose type=\"button\" class=\"btn btn-secondary\">{{ 'AbpUi::Cancel' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonClass=\"btn btn-primary\" [loading]=\"saving\" [disabled]=\"saving || form?.invalid\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { LineService, LineDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-lines',\r\n templateUrl: './lines.component.html',\r\n})\r\n/** Nakliye hatları listesi; oluştur / düzenle / sil aksiyonlarını yönetir. */\r\nexport class LinesComponent implements OnInit {\r\n items: LineDto[] = [];\r\n selected: LineDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: LineService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => (this.items = data));\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: LineDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('Keops::Lines:SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: LineDto): void {\r\n this.confirmation.warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure').subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('Keops::Lines:SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { LinesComponent } from './components/lines.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: LinesComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsFreight.Lines',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitLinesRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\nimport { LinesComponent } from './components/lines.component';\r\nimport { LineFormComponent } from './components/line-form.component';\r\nimport { HitLinesRoutingModule } from './hit-lines-routing.module';\r\n\r\n@NgModule({\r\n declarations: [LinesComponent, LineFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitLinesRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitLinesModule {}\r\n\r\nexport function loadHitLinesModuleAsChild() {\r\n return Promise.resolve(HitLinesModule);\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { PosService, PosDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-pos-form',\r\n templateUrl: './pos-form.component.html',\r\n})\r\nexport class PosFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: PosDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: PosService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(100)]],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create' ? 'Keops::Pos:CreateTitle' : 'Keops::Pos:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.saving) return;\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, { name: value.name });\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal [(visible)]=\"visible\" (visibleChange)=\"onVisibleChange($event)\" [busy]=\"saving\" [options]=\"{ size: 'md' }\">\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">{{ 'Keops::Pos:Name' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <input id=\"name\" 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 abpClose type=\"button\" class=\"btn btn-secondary\">{{ 'AbpUi::Cancel' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonClass=\"btn btn-primary\" [loading]=\"saving\" [disabled]=\"saving || form?.invalid\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { PosService, PosDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-pos',\r\n templateUrl: './pos.component.html',\r\n})\r\nexport class PosComponent implements OnInit {\r\n items: PosDto[] = [];\r\n selected: PosDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: PosService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => (this.items = data));\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: PosDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('Keops::Pos:SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: PosDto): void {\r\n this.confirmation.warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure').subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('Keops::Pos:SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { PosComponent } from './components/pos.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: PosComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsFreight.Pos',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitPosRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\nimport { PosComponent } from './components/pos.component';\r\nimport { PosFormComponent } from './components/pos-form.component';\r\nimport { HitPosRoutingModule } from './hit-pos-routing.module';\r\n\r\n@NgModule({\r\n declarations: [PosComponent, PosFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitPosRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitPosModule {}\r\n\r\nexport function loadHitPosModuleAsChild() {\r\n return Promise.resolve(HitPosModule);\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { DestinationPortService, DestinationPortDto, CountryLookupDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-destination-port-form',\r\n templateUrl: './destination-port-form.component.html',\r\n})\r\n/**\r\n * Varış limanı oluştur/güncelle formu.\r\n * Ülke listesi üst bileşenden [countries] ile alınır; liman kodu SAP tarafında GUID'den üretilir.\r\n */\r\nexport class DestinationPortFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: DestinationPortDto | null = null;\r\n @Input() countries: CountryLookupDto[] = [];\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: DestinationPortService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n countryCode: [this.current?.countryCode ?? '', Validators.required],\r\n portName: [this.current?.portName ?? '', [Validators.required, Validators.maxLength(100)]],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create' ? 'Keops::DestinationPorts:CreateTitle' : 'Keops::DestinationPorts:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.saving) return;\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal [(visible)]=\"visible\" (visibleChange)=\"onVisibleChange($event)\" [busy]=\"saving\" [options]=\"{ size: 'md' }\">\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 <div class=\"mb-3\">\r\n <label for=\"countryCode\" class=\"form-label\">{{ 'Keops::DestinationPorts:CountryCode' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <select id=\"countryCode\" class=\"form-select\" formControlName=\"countryCode\">\r\n <option value=\"\"></option>\r\n <option *ngFor=\"let c of countries\" [value]=\"c.code\">{{ c.name }}</option>\r\n </select>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"portName\" class=\"form-label\">{{ 'Keops::DestinationPorts:PortName' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <input id=\"portName\" type=\"text\" class=\"form-control\" formControlName=\"portName\" />\r\n </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\">{{ 'AbpUi::Cancel' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonClass=\"btn btn-primary\" [loading]=\"saving\" [disabled]=\"saving || form?.invalid\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { DestinationPortService, DestinationPortDto, CountryLookupDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-destination-ports',\r\n templateUrl: './destination-ports.component.html',\r\n})\r\n/**\r\n * Varış limanları listesi; oluştur / düzenle / sil aksiyonlarını yönetir.\r\n * Izgara görünümünde ülke adını göstermek için countries lookup listesi yüklenir.\r\n */\r\nexport class DestinationPortsComponent implements OnInit {\r\n items: DestinationPortDto[] = [];\r\n countries: CountryLookupDto[] = [];\r\n selected: DestinationPortDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: DestinationPortService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n this.service.getCountriesLookup().subscribe(data => (this.countries = data));\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => (this.items = data));\r\n }\r\n\r\n getCountryName(code: string): string {\r\n return this.countries.find(c => c.code === code)?.name ?? code;\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: DestinationPortDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('Keops::DestinationPorts:SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: DestinationPortDto): void {\r\n this.confirmation.warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure').subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('Keops::DestinationPorts:SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { DestinationPortsComponent } from './components/destination-ports.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: DestinationPortsComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsFreight.DestinationPorts',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitDestinationPortsRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\nimport { DestinationPortsComponent } from './components/destination-ports.component';\r\nimport { DestinationPortFormComponent } from './components/destination-port-form.component';\r\nimport { HitDestinationPortsRoutingModule } from './hit-destination-ports-routing.module';\r\n\r\n@NgModule({\r\n declarations: [DestinationPortsComponent, DestinationPortFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitDestinationPortsRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitDestinationPortsModule {}\r\n\r\nexport function loadHitDestinationPortsModuleAsChild() {\r\n return Promise.resolve(HitDestinationPortsModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ItemPackageTypeService, ItemPackageTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-item-package-type-form',\r\n templateUrl: './item-package-type-form.component.html',\r\n})\r\nexport class ItemPackageTypeFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: ItemPackageTypeDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: ItemPackageTypeService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(256)]],\r\n isActive: [this.current?.isActive ?? true],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::ItemPackageTypes:CreateTitle'\r\n : 'Keops::ItemPackageTypes:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::ItemPackageTypes:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"name\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3 form-check\">\r\n <input\r\n id=\"isActive\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n formControlName=\"isActive\"\r\n />\r\n <label for=\"isActive\" class=\"form-check-label\">\r\n {{ 'Keops::ItemPackageTypes:IsActive' | abpLocalization }}\r\n </label>\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { ItemPackageTypeService, ItemPackageTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-item-package-types',\r\n templateUrl: './item-package-types.component.html',\r\n})\r\nexport class ItemPackageTypesComponent implements OnInit {\r\n items: ItemPackageTypeDto[] = [];\r\n\r\n selected: ItemPackageTypeDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: ItemPackageTypeService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: ItemPackageTypeDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: ItemPackageTypeDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ItemPackageTypesComponent } from './components/item-package-types.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ItemPackageTypesComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.ItemPackageTypes',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitItemPackageTypesRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ItemPackageTypesComponent } from './components/item-package-types.component';\r\nimport { ItemPackageTypeFormComponent } from './components/item-package-type-form.component';\r\nimport { HitItemPackageTypesRoutingModule } from './hit-item-package-types-routing.module';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\n\r\n@NgModule({\r\n declarations: [ItemPackageTypesComponent, ItemPackageTypeFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitItemPackageTypesRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitItemPackageTypesModule {}\r\n\r\nexport function loadHitItemPackageTypesModuleAsChild() {\r\n return Promise.resolve(HitItemPackageTypesModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ItemPackageGroupService, ItemPackageGroupDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-item-package-group-form',\r\n templateUrl: './item-package-group-form.component.html',\r\n})\r\nexport class ItemPackageGroupFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: ItemPackageGroupDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: ItemPackageGroupService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(256)]],\r\n isActive: [this.current?.isActive ?? true],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::ItemPackageGroups:CreateTitle'\r\n : 'Keops::ItemPackageGroups:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::ItemPackageGroups:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"name\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3 form-check\">\r\n <input\r\n id=\"isActive\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n formControlName=\"isActive\"\r\n />\r\n <label for=\"isActive\" class=\"form-check-label\">\r\n {{ 'Keops::ItemPackageGroups:IsActive' | abpLocalization }}\r\n </label>\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { ItemPackageGroupService, ItemPackageGroupDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-item-package-groups',\r\n templateUrl: './item-package-groups.component.html',\r\n})\r\nexport class ItemPackageGroupsComponent implements OnInit {\r\n items: ItemPackageGroupDto[] = [];\r\n\r\n selected: ItemPackageGroupDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: ItemPackageGroupService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: ItemPackageGroupDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: ItemPackageGroupDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ItemPackageGroupsComponent } from './components/item-package-groups.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ItemPackageGroupsComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.ItemPackageGroups',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitItemPackageGroupsRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ItemPackageGroupsComponent } from './components/item-package-groups.component';\r\nimport { ItemPackageGroupFormComponent } from './components/item-package-group-form.component';\r\nimport { HitItemPackageGroupsRoutingModule } from './hit-item-package-groups-routing.module';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\n\r\n@NgModule({\r\n declarations: [ItemPackageGroupsComponent, ItemPackageGroupFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitItemPackageGroupsRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitItemPackageGroupsModule {}\r\n\r\nexport function loadHitItemPackageGroupsModuleAsChild() {\r\n return Promise.resolve(HitItemPackageGroupsModule);\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { ItemProductTypeService, ItemProductTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-item-product-type-form',\r\n templateUrl: './item-product-type-form.component.html',\r\n})\r\nexport class ItemProductTypeFormComponent implements OnInit, OnChanges {\r\n @Input() visible = false;\r\n @Input() mode: 'create' | 'edit' = 'create';\r\n @Input() current: ItemProductTypeDto | null = null;\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() saved = new EventEmitter<void>();\r\n\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: ItemProductTypeService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['current'] || changes['mode']) {\r\n this.buildForm();\r\n }\r\n }\r\n\r\n private buildForm(): void {\r\n this.form = this.fb.group({\r\n name: [this.current?.name ?? '', [Validators.required, Validators.maxLength(256)]],\r\n isActive: [this.current?.isActive ?? true],\r\n });\r\n }\r\n\r\n get title(): string {\r\n return this.mode === 'create'\r\n ? 'Keops::ItemProductTypes:CreateTitle'\r\n : 'Keops::ItemProductTypes:EditTitle';\r\n }\r\n\r\n onVisibleChange(value: boolean): void {\r\n this.visible = value;\r\n this.visibleChange.emit(value);\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n this.form.markAllAsTouched();\r\n return;\r\n }\r\n\r\n const value = this.form.value;\r\n\r\n this.saving = true;\r\n\r\n const request$ =\r\n this.mode === 'create'\r\n ? this.service.create(value)\r\n : this.service.update(this.current!.code!, value);\r\n\r\n request$.pipe(finalize(() => (this.saving = false))).subscribe({\r\n next: () => {\r\n this.saved.emit();\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n },\r\n });\r\n }\r\n}\r\n","<abp-modal\r\n [(visible)]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [busy]=\"saving\"\r\n [options]=\"{ size: 'md' }\"\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 <div class=\"mb-3\">\r\n <label for=\"name\" class=\"form-label\">\r\n {{ 'Keops::ItemProductTypes:Name' | abpLocalization }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"name\"\r\n />\r\n </div>\r\n\r\n <div class=\"mb-3 form-check\">\r\n <input\r\n id=\"isActive\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n formControlName=\"isActive\"\r\n />\r\n <label for=\"isActive\" class=\"form-check-label\">\r\n {{ 'Keops::ItemProductTypes:IsActive' | abpLocalization }}\r\n </label>\r\n </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","import { Component, OnInit } from '@angular/core';\r\nimport { ConfirmationService, Confirmation, ToasterService } from '@abp/ng.theme.shared';\r\nimport { ItemProductTypeService, ItemProductTypeDto } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-item-product-types',\r\n templateUrl: './item-product-types.component.html',\r\n})\r\nexport class ItemProductTypesComponent implements OnInit {\r\n items: ItemProductTypeDto[] = [];\r\n\r\n selected: ItemProductTypeDto | null = null;\r\n formVisible = false;\r\n formMode: 'create' | 'edit' = 'create';\r\n\r\n constructor(\r\n private readonly service: ItemProductTypeService,\r\n private readonly toaster: ToasterService,\r\n private readonly confirmation: ConfirmationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadList();\r\n }\r\n\r\n loadList(): void {\r\n this.service.getList().subscribe(data => {\r\n this.items = data;\r\n });\r\n }\r\n\r\n openCreate(): void {\r\n this.selected = null;\r\n this.formMode = 'create';\r\n this.formVisible = true;\r\n }\r\n\r\n openEdit(row: ItemProductTypeDto): void {\r\n this.selected = row;\r\n this.formMode = 'edit';\r\n this.formVisible = true;\r\n }\r\n\r\n onSaved(): void {\r\n this.formVisible = false;\r\n this.selected = null;\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n this.loadList();\r\n }\r\n\r\n remove(row: ItemProductTypeDto): void {\r\n this.confirmation\r\n .warn('AbpUi::ItemWillBeDeletedMessage', 'AbpUi::AreYouSure')\r\n .subscribe(status => {\r\n if (status === Confirmation.Status.confirm) {\r\n this.service.delete(row.code!).subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullyDeleted');\r\n this.loadList();\r\n },\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard, PermissionGuard } from '@abp/ng.core';\r\nimport { ItemProductTypesComponent } from './components/item-product-types.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: ItemProductTypesComponent,\r\n canActivate: [AuthGuard, PermissionGuard],\r\n data: {\r\n requiredPolicy: 'KeopsItemMasterData.ItemProductTypes',\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class HitItemProductTypesRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { PageModule } from '@abp/ng.components/page';\r\nimport { CommercialUiModule } from '@volo/abp.commercial.ng.ui';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ItemProductTypesComponent } from './components/item-product-types.component';\r\nimport { ItemProductTypeFormComponent } from './components/item-product-type-form.component';\r\nimport { HitItemProductTypesRoutingModule } from './hit-item-product-types-routing.module';\r\nimport { DxDataGridModule } from 'devextreme-angular';\r\n\r\n@NgModule({\r\n declarations: [ItemProductTypesComponent, ItemProductTypeFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CoreModule,\r\n ThemeSharedModule,\r\n PageModule,\r\n CommercialUiModule,\r\n NgbDropdownModule,\r\n HitItemProductTypesRoutingModule,\r\n DxDataGridModule,\r\n ],\r\n})\r\nexport class HitItemProductTypesModule {}\r\n\r\nexport function loadHitItemProductTypesModuleAsChild() {\r\n return Promise.resolve(HitItemProductTypesModule);\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { loadHitCostItemsModuleAsChild } from './features/cost-items/hit-cost-items.module';\r\nimport { loadHitCostGroupsModuleAsChild } from './features/cost-groups/hit-cost-groups.module';\r\nimport { loadHitExchangeRatesModuleAsChild } from './features/exchange-rates/hit-exchange-rates.module';\r\nimport { loadHitCostCalculationModuleAsChild } from './features/cost-calculation/hit-cost-calculation.module';\r\nimport { loadHitCostParametersModuleAsChild } from './features/cost-parameters/hit-cost-parameters.module';\r\nimport { loadHitCostParameterCategoriesModuleAsChild } from './features/cost-parameter-categories/hit-cost-parameter-categories.module';\r\nimport { loadHitPackagingTypesModuleAsChild } from './features/packaging-types/hit-packaging-types.module';\r\nimport { loadHitPackagingMaterialsModuleAsChild } from './features/packaging-materials/hit-packaging-materials.module';\r\nimport { loadHitPackagingPricesModuleAsChild } from './features/packaging-prices/hit-packaging-prices.module';\r\nimport { loadHitPriceParameterTypesModuleAsChild } from './features/price-parameter-types/hit-price-parameter-types.module';\r\nimport { loadHitPriceParametersModuleAsChild } from './features/price-parameters/hit-price-parameters.module';\r\nimport { loadHitSapSalesPersonsModuleAsChild } from './features/sap-sales-persons/hit-sap-sales-persons.module';\r\nimport { loadHitContainerDefinitionsModuleAsChild } from './features/container-definitions/hit-container-definitions.module';\r\nimport { loadHitPalletDefinitionsModuleAsChild } from './features/pallet-definitions/hit-pallet-definitions.module';\r\nimport { loadHitContainerPalletCapacitiesModuleAsChild } from './features/container-pallet-capacities/hit-container-pallet-capacities.module';\r\nimport { loadHitContainerLoadingCountsModuleAsChild } from './features/container-loading-counts/hit-container-loading-counts.module';\r\nimport { loadHitContainerLoadingScenariosModuleAsChild } from './features/container-loading-scenarios/hit-container-loading-scenarios.module';\r\nimport { loadHitContainerMixTypesModuleAsChild } from './features/container-mix-types/hit-container-mix-types.module';\r\nimport { loadHitFreightOffersModuleAsChild } from './features/freight-offers/hit-freight-offers.module';\r\nimport { loadHitBlTrackingModuleAsChild } from './features/bl-tracking/hit-bl-tracking.module';\r\nimport { loadHitFobInlandDefinitionsModuleAsChild } from './features/fob-inland-definitions/hit-fob-inland-definitions.module';\r\nimport { loadHitIncotermsModuleAsChild } from './features/incoterms/hit-incoterms.module';\r\nimport { loadHitCarriersModuleAsChild } from './features/carriers/hit-carriers.module';\r\nimport { loadHitLinesModuleAsChild } from './features/lines/hit-lines.module';\r\nimport { loadHitPosModuleAsChild } from './features/pos/hit-pos.module';\r\nimport { loadHitDestinationPortsModuleAsChild } from './features/destination-ports/hit-destination-ports.module';\r\nimport { loadHitItemPackageTypesModuleAsChild } from './features/item-package-types/hit-item-package-types.module';\r\nimport { loadHitItemPackageGroupsModuleAsChild } from './features/item-package-groups/hit-item-package-groups.module';\r\nimport { loadHitItemProductTypesModuleAsChild } from './features/item-product-types/hit-item-product-types.module';\r\n\r\nconst routes: Routes = [\r\n { path: 'cost/calculation', loadChildren: loadHitCostCalculationModuleAsChild },\r\n { path: 'system/exchange-rates', loadChildren: loadHitExchangeRatesModuleAsChild },\r\n { path: 'cost/items', loadChildren: loadHitCostItemsModuleAsChild },\r\n { path: 'cost/groups', loadChildren: loadHitCostGroupsModuleAsChild },\r\n { path: 'cost/parameters', loadChildren: loadHitCostParametersModuleAsChild },\r\n { path: 'cost/parameter-categories', loadChildren: loadHitCostParameterCategoriesModuleAsChild },\r\n { path: 'cost/packaging-types', loadChildren: loadHitPackagingTypesModuleAsChild },\r\n { path: 'cost/packaging-materials', loadChildren: loadHitPackagingMaterialsModuleAsChild },\r\n { path: 'cost/packaging-prices', loadChildren: loadHitPackagingPricesModuleAsChild },\r\n { path: 'cost/price-parameter-types', loadChildren: loadHitPriceParameterTypesModuleAsChild },\r\n { path: 'cost/price-parameters', loadChildren: loadHitPriceParametersModuleAsChild },\r\n { path: 'system/sales-persons', loadChildren: loadHitSapSalesPersonsModuleAsChild },\r\n { path: 'item-master-data/container-definitions', loadChildren: loadHitContainerDefinitionsModuleAsChild },\r\n { path: 'item-master-data/pallet-definitions', loadChildren: loadHitPalletDefinitionsModuleAsChild },\r\n { path: 'item-master-data/container-pallet-capacities', loadChildren: loadHitContainerPalletCapacitiesModuleAsChild },\r\n { path: 'item-master-data/container-loading-counts', loadChildren: loadHitContainerLoadingCountsModuleAsChild },\r\n { path: 'item-master-data/container-loading-scenarios', loadChildren: loadHitContainerLoadingScenariosModuleAsChild },\r\n { path: 'item-master-data/container-mix-types', loadChildren: loadHitContainerMixTypesModuleAsChild },\r\n { path: 'freight/offers', loadChildren: loadHitFreightOffersModuleAsChild },\r\n { path: 'freight/bl-tracking', loadChildren: loadHitBlTrackingModuleAsChild },\r\n { path: 'freight/fob-inland', loadChildren: loadHitFobInlandDefinitionsModuleAsChild },\r\n { path: 'freight/incoterms', loadChildren: loadHitIncotermsModuleAsChild },\r\n { path: 'freight/carriers', loadChildren: loadHitCarriersModuleAsChild },\r\n { path: 'freight/lines', loadChildren: loadHitLinesModuleAsChild },\r\n { path: 'freight/pos', loadChildren: loadHitPosModuleAsChild },\r\n { path: 'freight/destination-ports', loadChildren: loadHitDestinationPortsModuleAsChild },\r\n { path: 'item-master-data/item-package-types', loadChildren: loadHitItemPackageTypesModuleAsChild },\r\n { path: 'item-master-data/item-package-groups', loadChildren: loadHitItemPackageGroupsModuleAsChild },\r\n { path: 'item-master-data/item-product-types', loadChildren: loadHitItemProductTypesModuleAsChild },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class KadoogluKeopsRoutingModule {}\r\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CoreModule, LazyModuleFactory, LocalizationService } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { PageModule } from '@abp/ng.components/page';\nimport { locale } from 'devextreme/localization';\nimport { KadoogluKeopsRoutingModule } from './kadooglu-keops-routing.module';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n CoreModule,\n ThemeSharedModule,\n PageModule,\n KadoogluKeopsRoutingModule,\n ],\n})\nexport class KadoogluKeopsModule {\n static forChild(): ModuleWithProviders<KadoogluKeopsModule> {\n return {\n ngModule: KadoogluKeopsModule,\n providers: [],\n };\n }\n\n static forLazy(): NgModuleFactory<KadoogluKeopsModule> {\n return new LazyModuleFactory(KadoogluKeopsModule.forChild());\n }\n\n constructor(private readonly localizationService: LocalizationService) {\n // Sync DevExtreme's locale to ABP's current language.\n this.localizationService.currentLang$.subscribe(language => language && locale(language));\n }\n}\n","import { Component, OnInit } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule, ToasterService } from '@abp/ng.theme.shared';\r\nimport { CostSettingsService } from '@hitsoft/kadooglu-keops/proxy';\r\n\r\n@Component({\r\n selector: 'lib-cost-settings',\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule, CoreModule, ThemeSharedModule],\r\n templateUrl: './cost-settings.component.html',\r\n})\r\nexport class CostSettingsComponent implements OnInit {\r\n form!: FormGroup;\r\n saving = false;\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly service: CostSettingsService,\r\n private readonly toaster: ToasterService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.form = this.fb.group({\r\n itemPackagePriceListNo: [0, [Validators.required, Validators.min(1)]],\r\n });\r\n\r\n this.service.get().subscribe(dto => {\r\n this.form.patchValue({ itemPackagePriceListNo: dto.itemPackagePriceListNo });\r\n });\r\n }\r\n\r\n save(): void {\r\n if (this.form.invalid) {\r\n return;\r\n }\r\n\r\n this.saving = true;\r\n\r\n this.service\r\n .update(this.form.value)\r\n .pipe(finalize(() => (this.saving = false)))\r\n .subscribe({\r\n next: () => {\r\n this.toaster.success('AbpUi::SuccessfullySaved');\r\n },\r\n });\r\n }\r\n}\r\n","<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","// exchange-rates\r\nexport * from './exchange-rates/hit-exchange-rates.module';\r\nexport * from './exchange-rates/components/exchange-rates.component';\r\nexport * from './exchange-rates/components/central-bank-rates.component';\r\n\r\n// cost-items\r\nexport * from './cost-items/hit-cost-items.module';\r\nexport * from './cost-items/components/cost-items.component';\r\nexport * from './cost-items/components/cost-item-form.component';\r\n\r\n// cost-parameters\r\nexport * from './cost-parameters/hit-cost-parameters.module';\r\nexport * from './cost-parameters/components/cost-parameters.component';\r\nexport * from './cost-parameters/components/cost-parameter-form.component';\r\n\r\n// price-parameters\r\nexport * from './price-parameters/hit-price-parameters.module';\r\nexport * from './price-parameters/components/price-parameters.component';\r\nexport * from './price-parameters/components/price-parameter-form.component';\r\n\r\n// cost-calculation\r\nexport * from './cost-calculation/hit-cost-calculation.module';\r\nexport * from './cost-calculation/components/cost-calculation.component';\r\n\r\n// packaging-prices\r\nexport * from './packaging-prices/hit-packaging-prices.module';\r\nexport * from './packaging-prices/components/packaging-prices.component';\r\nexport * from './packaging-prices/components/packaging-price-form.component';\r\n\r\n// settings\r\nexport * from './settings/components/cost-settings.component';\r\n\r\n// freight-offers\r\nexport * from './freight-offers/hit-freight-offers.module';\r\nexport * from './freight-offers/components/freight-offers.component';\r\nexport * from './freight-offers/components/freight-offer-form.component';\r\nexport * from './freight-offers/components/freight-offer-copy.component';\r\n\r\n// bl-tracking\r\nexport * from './bl-tracking/hit-bl-tracking.module';\r\nexport * from './bl-tracking/components/bl-tracking.component';\r\nexport * from './bl-tracking/components/bl-tracking-form.component';\r\n\r\n// fob-inland-definitions\r\nexport * from './fob-inland-definitions/hit-fob-inland-definitions.module';\r\nexport * from './fob-inland-definitions/components/fob-inland-definitions.component';\r\nexport * from './fob-inland-definitions/components/fob-inland-definition-form.component';\r\n\r\n// incoterms\r\nexport * from './incoterms/hit-incoterms.module';\r\nexport * from './incoterms/components/incoterms.component';\r\nexport * from './incoterms/components/incoterm-form.component';\r\n","/*\r\n * Public API Surface of kadooglu-keops\r\n */\r\n\r\nexport * from './lib/kadooglu-keops.module';\r\nexport * from './lib/features';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i5","i1","i10.CostItemFormComponent","routes","i4","i10.CostGroupFormComponent","i3","i3.CentralBankRatesComponent","i4.FixedRatesFormComponent","i5.AmountCurrencyInputComponent","i6","i3.CostCalculationInputsComponent","i4.CostCalculationResultsComponent","i5.CostCalculationResultSumComponent","statusLabels","statusOptions","i3.CostItemRowsBuilder","i7","i10.CostParameterFormComponent","i10.CostParameterCategoryFormComponent","i10.PackagingTypeFormComponent","i10.PackagingMaterialFormComponent","i3.PackagingPriceExcelService","i4.PackagingPriceLinesBuilder","i8","i9.PackagingPriceLinesComponent","i10.PackagingPriceFormComponent","i10.PriceParameterTypeFormComponent","i2.PriceParameterLookupsService","i9","i10","i11.ResolveCodeNamePipe","i1.PriceParameterLookupsService","i5.PriceParameterFormDataService","i6.PriceParameterCostMatchService","i7.CostItemRowsBuilder","i11","i12","i13.AmountCurrencyInputComponent","i14.PriceParameterCostItemsTabComponent","i15.PriceParameterPriceListsTabComponent","i16.PriceParameterItemsTabComponent","i17.PriceParameterDiscountRatesTabComponent","i11.SapSalesPersonFormComponent","i10.ContainerDefinitionFormComponent","i10.PalletDefinitionFormComponent","i10.ContainerPalletCapacityFormComponent","i10.ContainerMixTypeFormComponent","i11.FreightOfferFormComponent","i10.BlTrackingFormComponent","i10.FobInlandDefinitionFormComponent","i10.IncotermFormComponent","i10.CarrierFormComponent","i10.LineFormComponent","i10.PosFormComponent","i10.DestinationPortFormComponent","i10.ItemPackageTypeFormComponent","i10.ItemPackageGroupFormComponent","i10.ItemProductTypeFormComponent"],"mappings":"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"}
|