diff --git a/CHANGELOG.md b/CHANGELOG.md index ee8047827..7e1b44eeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- Improved the handling of `0` buying power in the static portfolio analysis rule: _Liquidity_ (Buying Power) - Fixed an issue related to the error handling in the data provider status component ## 2.196.0 - 2025-09-04 diff --git a/apps/api/src/models/rules/asset-class-cluster-risk/equity.ts b/apps/api/src/models/rules/asset-class-cluster-risk/equity.ts index 5cef0333c..dab55413e 100644 --- a/apps/api/src/models/rules/asset-class-cluster-risk/equity.ts +++ b/apps/api/src/models/rules/asset-class-cluster-risk/equity.ts @@ -67,6 +67,7 @@ export class AssetClassClusterRiskEquity extends Rule { value: false }; } + return { evaluation: this.i18nService.getTranslation({ id: 'rule.assetClassClusterRiskEquity.true', diff --git a/apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts b/apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts index ec20892e2..f793ec16f 100644 --- a/apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts +++ b/apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts @@ -67,6 +67,7 @@ export class AssetClassClusterRiskFixedIncome extends Rule { value: false }; } + return { evaluation: this.i18nService.getTranslation({ id: 'rule.assetClassClusterRiskFixedIncome.true', diff --git a/apps/api/src/models/rules/liquidity/buying-power.ts b/apps/api/src/models/rules/liquidity/buying-power.ts index c4884c066..539d0a728 100644 --- a/apps/api/src/models/rules/liquidity/buying-power.ts +++ b/apps/api/src/models/rules/liquidity/buying-power.ts @@ -22,10 +22,21 @@ export class BuyingPower extends Rule { } public evaluate(ruleSettings: Settings) { - if (this.buyingPower < ruleSettings.thresholdMin) { + if (this.buyingPower === 0) { return { evaluation: this.i18nService.getTranslation({ - id: 'rule.liquidityBuyingPower.false', + id: 'rule.liquidityBuyingPower.false.zero', + languageCode: this.getLanguageCode(), + placeholders: { + baseCurrency: ruleSettings.baseCurrency + } + }), + value: false + }; + } else if (this.buyingPower < ruleSettings.thresholdMin) { + return { + evaluation: this.i18nService.getTranslation({ + id: 'rule.liquidityBuyingPower.false.min', languageCode: this.getLanguageCode(), placeholders: { baseCurrency: ruleSettings.baseCurrency, diff --git a/apps/client/src/app/pages/i18n/i18n-page.html b/apps/client/src/app/pages/i18n/i18n-page.html index f42412473..b4297d5ac 100644 --- a/apps/client/src/app/pages/i18n/i18n-page.html +++ b/apps/client/src/app/pages/i18n/i18n-page.html @@ -69,10 +69,13 @@
  • Liquidity
  • Buying Power
  • -
  • +
  • Your buying power is below ${thresholdMin} ${baseCurrency}
  • +
  • + Your buying power is 0 ${baseCurrency} +
  • Your buying power exceeds ${thresholdMin} ${baseCurrency}