currency
businessProcess
Business Process
Financial_Services_Creatio_lending_edition

I am trying to implement the currency exchange rate business process as outlined in this article. I have done everything according to the instructions, but for some reason when I run the business process it is not updating the exchange rates correctly.

 

After a lot of trial and error, it appears that somewhere not in my business process it is doing the calculation

1 / exchangeRate

and entering that into the exchange rate instead of just the exchange rate.

 

For example, with the base currency set to euro, the call to the API responded with "AUD":1.646885, but after the business process finishes, the exchange rate says it is 0.60720694 for AUD:

Picture of the relevant business process element:

Is there an explanation as to why this could be happening?

Like 0

Like

3 comments

Hello!

 

The Exchange rate column in the Currency object is virtual, so it is not shown in the Lookup and cannot be edited directly from the Lookup.

The Rate itself is saved in the CurrencyRate table with a link to CurrencyId each time it is changed.



The base stores the inverse of the exchange rate. For example:

Base currency:  EUR

AUD exchange rate: 0.60720694



Which is inconvenient to understand, so a Lookup with a more user-friendly currency display, but converting to a reverse exchange rate, has been developed to support backward compatibility.

This way you can enter the usual exchange rate of EUR = 1.646885 (AUD to EUR) on the interface. And the base will already save 0.60720694 (EUR per 1 AUD).

 

These different types of rate (1.646885 and 0.60720694 ) will determine the formula by which you will then calculate the amounts.:

1) convert it to a familiar rate - 1/0.60720694  = 1.646885.

2) either work already with 0.60720694 , but then the calculation of the amount will be different.



So, the Rate column is virtual, but you can use CurrencyRate (exchange rate) to calculate the exchange rate.

Kyrylo Atamanenko,

 

What is the reasoning behind storing the exchange rates in such a manner? Why isn't this mentioned in any articles?

 

Also, you mention a more user friendly lookup has been developed; is this new lookup implemented in 8.1.5, or is this an upcoming feature?

Margaret,

Could you please provide the service that you are using in your BP for the exchange rate? Is it the service provided in the article (http://api.fixer.io/) or other? As this is theoretically possible, you may experience delays in receiving the current exchange rate, which may occur in the service itself.

In addition, how your BP is configured? Could you please provide screenshots?

 

Show all comments
currency
multi-currency
Sales_Creatio_enterprise_edition
8.0

Hi community,

We want to set the default currency in the Opportunity Mini Page (front end event), based on the Org Role of a user (oob functionality is based on the Base Currency system setting).

Is there any code implementation of a similar request ?

Sasori

Like 0

Like

2 comments
Best reply

Hello Sasori!

1) Add MultiCurrencyEditUtilities module as a dependency to your minipage schema. Example:

define("OpportunityMiniPage", ["MultiCurrencyEditUtilities"] ...

2) Add MultiCurrencyEditUtilities as a mixing to the minipage schema. Example:

...
mixins: {
  MultiCurrencyEditUtilities: "Terrasoft.MultiCurrencyEditUtilities",
  ...

3) Instead of using roles check you can use operation permission check. To use it you need to add RightUtilities module as a dependency to your minipage schema. Example:

define("OpportunityMiniPage", ["RightUtilities"], function(RightUtilities) { ...

4) Use the following methods in your minipage:

...
onEntityInitialized: function() {
  this.callParent(arguments);
  this.checkCurrencyForUser();
},
checkCurrencyForUser: function() {
  RightUtilities.checkCanExecuteOperation({
  operation: "NeedToUseEuro"
}, function(result) {
  if (result) {
    var euroId = "c0057119-53e6-df11-971b-001d60e938c6";
    this.onCurrencyMenuItemClick(euroId);
  }
 }, this);
}
...

The logic above will check if the user has access to the "NeedToUseEuro" operation (or this user role has access to the operation) and if so we will call the onCurrencyMenuItemClick method and pass euroId as an argument (see the onCurrencyMenuItemClick method signature in the MultiCurrencyEditUtilities module).

c0057119-53e6-df11-971b-001d60e938c6 is an Id of the "Euro" currency from the "Currency" table in the database. All you need to do is:

1. Correctly specify operation permissions (check if your user is not in several roles that are used in different operation permissions check)

2. Correctly setup a chain of operation permissions checks in the context of the checkCurrencyForUser method execution

P.S. Article about adding a multi-currency field: 

https://academy.creatio.com/docs/developer/interface_elements/record_page/field/overview#case-1915

Hi community,

Any update ?

Sasori

Hello Sasori!

1) Add MultiCurrencyEditUtilities module as a dependency to your minipage schema. Example:

define("OpportunityMiniPage", ["MultiCurrencyEditUtilities"] ...

2) Add MultiCurrencyEditUtilities as a mixing to the minipage schema. Example:

...
mixins: {
  MultiCurrencyEditUtilities: "Terrasoft.MultiCurrencyEditUtilities",
  ...

3) Instead of using roles check you can use operation permission check. To use it you need to add RightUtilities module as a dependency to your minipage schema. Example:

define("OpportunityMiniPage", ["RightUtilities"], function(RightUtilities) { ...

4) Use the following methods in your minipage:

...
onEntityInitialized: function() {
  this.callParent(arguments);
  this.checkCurrencyForUser();
},
checkCurrencyForUser: function() {
  RightUtilities.checkCanExecuteOperation({
  operation: "NeedToUseEuro"
}, function(result) {
  if (result) {
    var euroId = "c0057119-53e6-df11-971b-001d60e938c6";
    this.onCurrencyMenuItemClick(euroId);
  }
 }, this);
}
...

The logic above will check if the user has access to the "NeedToUseEuro" operation (or this user role has access to the operation) and if so we will call the onCurrencyMenuItemClick method and pass euroId as an argument (see the onCurrencyMenuItemClick method signature in the MultiCurrencyEditUtilities module).

c0057119-53e6-df11-971b-001d60e938c6 is an Id of the "Euro" currency from the "Currency" table in the database. All you need to do is:

1. Correctly specify operation permissions (check if your user is not in several roles that are used in different operation permissions check)

2. Correctly setup a chain of operation permissions checks in the context of the checkCurrencyForUser method execution

P.S. Article about adding a multi-currency field: 

https://academy.creatio.com/docs/developer/interface_elements/record_page/field/overview#case-1915

Show all comments
FreedomUI
currency
Sales_Creatio_enterprise_edition
8.0

Hi, in the Freedom UI currency fields, there doesn't appear to be any display of the currency being used or any ability to switch to an alternative currency. I've got more than one currency in the [Currencies] lookup, but the number field just appears to be a regular decimal field for data entry and viewing. I cannot find any details or guides on this in the Creatio Academy besides one article about adding a currency field that doesn't end up having the currency shown or assignable when following the guide in 8.0.10 or 8.1: https://academy.creatio.com/docs/user/nocode_platform/element_setup_examples/fields_and_inputs/number_field/set_up_a_number_field

 

We need a field that can be set to different currencies depending on the account.

 

Any help greatly appreciated.

Like 0

Like

6 comments
Best reply

Hello Harvey, 



Thank you for bringing our attention to this. 

We have contacted our R&D team regarding this matter. 

Indeed, the field currently appears as an ordinary number field without any additional logic added. 

However, they have a task being already created to improve this functionality in future releases. 

In one of the minor releases of 8.2 to be precise. 



Kind regards,

Roman

Hello Harvey, 



Thank you for bringing our attention to this. 

We have contacted our R&D team regarding this matter. 

Indeed, the field currently appears as an ordinary number field without any additional logic added. 

However, they have a task being already created to improve this functionality in future releases. 

In one of the minor releases of 8.2 to be precise. 



Kind regards,

Roman

Hi Roman, any update on this functionality? I don't see anything in an 8.3.1 trial instance or the academy for it yet.

Harvey Adcock,

Hello,

At the moment, the implementation of currency functionality in Freedom UI is not included in the current development roadmap. The feature has been assigned a lower priority based on current demand, but it will be reviewed for potential inclusion in the next calendar year’s planning cycle.

Dymytriy Vykhodets,

That is a bit shocking for an enterprise application that is supposed to be able to handle Orders to not be able to handle currencies in any meaningful way and have no active plans to fix that. This should be way higher up the priorities. I wish Creatio would stop focussing so much on AI use cases and improve the core platform - that core functionality is what will continue to deliver value for customers for many more years. How can we recommend Creatio to international enterprise customers when it can't handle different currencies?

Harvey Adcock,

We completely understand your concerns and truly appreciate your honest feedback.

At the moment, Freedom UI does not yet support the automatic recalculation of the Amount field when the Currency is changed, as is available in the Classic UI.

Currently, this functionality is not included in the development roadmap for the remainder of the year, as our resources are fully committed to other planned initiatives. That said, we fully recognize the importance of this feature for our customers. Your feedback highlights a valid and valuable point, and we will make sure it is considered during our next roadmap review, likely in Q1.

Thank you for taking the time to share your perspective—it helps us focus on what truly matters and guides future improvements to the core platform.

Hello Malika,

Please add our voice to further emphasize the importance of this feature. As Harvey mentioned, this seems to be a core functionality of any CRM solution. While I believe Freedom UI and its no-code capabilities are an amazing step forward, certain essentials, like this one, appear to have been overlooked and unnecessarily deprioritized. Thank you for your understanding. 

Have a great day! 
Jacek
 

Show all comments
currency
Studio_Creatio
8.0

Hello everyone,

I'm trying to create a business process where I'll be able to modify the currency "rate" value (I have my own data source), but I can't see this field to modify. This is the only field from the 'Currency' lookup which I cannot choose. Could you please tell me what I need to do? Thank you a lot in advance.

Like 0

Like

3 comments
Best reply

Damian Rynkowski,

The Exchange rate column in the Currency object is virtual, so it is not shown in the Lookup and cannot be edited directly from the Lookup.

The Rate itself is saved in the CurrencyRate table with a link to CurrencyId each time it is changed.



The base stores the inverse of the exchange rate. For example:

Base currency:  人民幣(RMB)

Dollar exchange rate: 0,15



Which is inconvenient to understand, so a Lookup with a more user-friendly currency display, but converting to a reverse exchange rate, has been developed to support backward compatibility.

This way you can enter the usual exchange rate of USD = 6.79 (RMB to USD) on the interface. And the base will already save 0.15 (USD per 1 RMB).

 

These different types of rate (6.79 and 0.15) will determine the formula by which you will then calculate the amounts. You can read from the CurrencyRate table and get a rate of 0.025 and:

1) convert it to a familiar rate - 1/0.15 = 6.79.

2) either work already with 0.15, but then the calculation of the amount will be different.



So, the Rate column is virtual, but you can use CurrencyRate (exchange rate) to calculate the exchange rate.

Hello,

 

Please note that you can easily change the "rate" column of the Currencies lookup in the lookups content:

If you need to change it specifically via buiness process, can you please specify what for and what is the business logic you are trying to achieve this way?

Mira Dmitruk,

Hi,

Thank you for your reply. I am aware that I can modify this column through a lookup, but what I really need is to automate this process.

 

I have currency rates stored in different lookups, and I want to create an automated process to update the currency values every night. Currently, I am unable to modify the "Rate" field directly because it is not visible in the business process editor when the Currency object is selected.

Damian Rynkowski,

The Exchange rate column in the Currency object is virtual, so it is not shown in the Lookup and cannot be edited directly from the Lookup.

The Rate itself is saved in the CurrencyRate table with a link to CurrencyId each time it is changed.



The base stores the inverse of the exchange rate. For example:

Base currency:  人民幣(RMB)

Dollar exchange rate: 0,15



Which is inconvenient to understand, so a Lookup with a more user-friendly currency display, but converting to a reverse exchange rate, has been developed to support backward compatibility.

This way you can enter the usual exchange rate of USD = 6.79 (RMB to USD) on the interface. And the base will already save 0.15 (USD per 1 RMB).

 

These different types of rate (6.79 and 0.15) will determine the formula by which you will then calculate the amounts. You can read from the CurrencyRate table and get a rate of 0.025 and:

1) convert it to a familiar rate - 1/0.15 = 6.79.

2) either work already with 0.15, but then the calculation of the amount will be different.



So, the Rate column is virtual, but you can use CurrencyRate (exchange rate) to calculate the exchange rate.

Show all comments
sales
Opportunity
currency
dashboard
Sales_Creatio
8.0

Dear mates,

In one of our dashboard block, i want to display the sum of the opportunity value.

It works fine, but the currency is $

How can i change it to € ?

Thank you !

Nicolas

Like 0

Like

1 comments
currency
multi-currency
Sales_Creatio
7.18

Hello 

 

As i was strugle on this issue and finaly figure this out... i belive that this will be helpfull for others...

 

We have 3 currencies that involve on our process.

US Dollar, ILS - Israel Shekel, and ERU

we neede to translate the relevant currency from 1$ into 3.2 ILS (3.2 as the current rate)

when we try to approach the currency table - the Rate field was 0.0

when we try to approach the Currency Rate Table - the Rate field showed unreasonble number.

 

so... we checked and we didn't understand why and what. and eventualy, with a GREAT help of creatio represntative, we got this solution:

 

Preparations:

1. setup the base currency to our currency - in our case is ILS

2. setup the other currencies as follows.

    example - US Dollar:   setup the Ratio = 1000,  setup the rate value to = 3289.000 (in case the 1$=3.289 ILS)

What happened on the back end is that the Currency Rate table is getting the values from this update, and setup the field "Rate" into 304.000 (in that case)

when we want to setup a calculation that uses this rate - whats needed to be done is:

A = get the ratio number from the relevant currency, from the currency lookup table.

B = get the Exchange Rate from the Currency Rate table, for this specific currency.

and do this math:  A/B   >>> and the result will give you the correct rate !

in this example the rate will be:   1000/304  =  3.289   (1000=Ratio from currency table, 304=Exchange Rate from currency rate)

 

Then we take the value from that result, and use it in the process.

actualy - when i come to think about it - we need to do this process in the currency table, and save this value for all uses... 

 

If someone has bump into this issue and would like to share her/his opinion... i will be happy to see... maybe we did it all so complex for no reason ... but it works :-) 

 

Thanks 

 

 

Like 0

Like

2 comments

Julius,

Thanks, I actually saw that article. i am not sure whether we need to integrate to this site of the the central bank in Israel... 

 

Show all comments
currency
currency rate
multi_currency
#BusinessProcess
7.16
Sales_Creatio_enterprise_edition

Hi Community,

 

We have this situation, where we need to update every day our currency rates through a business process that we've already implemented. In this process, we receive the latest rate from our api and we create a new record in the CurrencyRate detail with that rate.

Objects: CurrencyRate, Currency.

 

As you can see in the print above, after we added the new record (inside red box), the "Taxa" field, didn't update. We want to know:

  1. How can we solve this issue?
  2. Is there any trigger that is executed when we insert a new record in this detail?

 

Thanks in Advance.

 

Best Regards,

Pedro Pinheiro

Like 0

Like

2 comments

Hello Pedro,

 

Hope you're doing well.

 

To perform the mentioned business task your process needs to:

— read data from "Exchange rate" object, but not from "Currency" object or other objects (in this case the process will be triggered by adding records to the "Exchange rate" object);

— read the exchange rate that is set for your currency and that has "End" (on your screenshot it's "Fim") column value set as NULL (meaning currently active exchange rate).

 

Also, you can use web services for updating daily rate currency. For example, "https://fixer.io/"web service, which we recommended to use in one of our articles:

https://academy.creatio.com/docs/user/no-code_customization/web_service…

 

In the following link, you can find the way of implementation of the mentioned web service:

https://academy.creatio.com/docs/user/no-code_customization/web_service…

 

General information on how to work with currencies can be found here:

https://academy.creatio.com/docs/user/platform_basics/user_interface/wo…

 

Best regards,

Roman

Roman Rak,

 

Hi Roman,

 

I'm working together with Pedro on this issue and we found the problem.

As we bounded the data of "currency" table from pre-prod to prod environment, the exchange rate was filled in in the "Rate" column with the last value in the prod environment.

Once in the prod environment we have deleted the values in the "Rate" column, the currency table is working as expected.

 

Thanks for the help,

Luis

 

Show all comments

Hi Community,

 

We have this requirement, on user's contact information, we have added one field which is currency. Once user will login in crm, user should see product prices on product section and product dashboard based on the specified currency. How we can achieve this?

 

Product Section

 

Product Dashboard

Like 1

Like

4 comments

Hello Fulgen,

 

Our R&D team has a task to implement personal currencies or group currencies (currencies that will be displayed for a user role), but currently, there is no way to do that using out-of-the-box logic and it won't be easily possible using additional development. But I will inform our R&D team that you have such a requirement so to speed up solution of this problem-task registered on their side.

 

Best regards,

Oscar

Hi Oscar,

 

We are facing the same issue with a client that is working on multiple countries/currencies. Do you have an ETA for the feature of personal currencies or group currencies?

 

Thanks,

Luis

Just to log it and help prioritise this implementation, I have the same requirement from my current customer.

Hello Artur and Luis,

 

I had a talk with the product owner and currently there is no ETA for this implementation since they need to review the logic that is stored in the application core completely. Also I let him know that the functionality requested is important and asked him to prioritize the problem for the R&D team responsible for currencies functionality implementation.

 

Thank you all for your involvement in this problem!

 

Best regards,

Oscar

Show all comments
currency
fields
multi-currency
7.15_()
Studio_Creatio_()

Hi,

I'm currently trying to add multiple multi-currency fields in the same page. I manage to create one following the developer guide https://academy.creatio.com/documents/technic-sdk/7-12/how-add-multi-cu….

But when i create other multi-currency field, both of them share the currency (not intended).

I would like to create another multi-currency field, independent from the first one.

Best regards.

 

 

Like 0

Like

1 comments

Hi Pedro,



I was able to come up with an example on Order page for fields Amount and Payment Amount. General idea is to duplicate logic for each field separately.



What I was not able to achieve is working with triangle as well (https://prnt.sc/qf6y2b), so I removed it. Also, as I am using Order page it has logic behind with Products detail which should be implemented for different currency fields, but I skipped it. In the custom section it should be all good.



Also note, that after adding new fields to the object, they will be empty. So to make it work, after adding fields you should fill them in using db script for example and then set default value for them (as in the article you mentioned) to make it filled in for all new records.



So here are the steps that I followed:

1. Created new fields in the object for Currency and Currency rate separately for each field. https://prnt.sc/qf6znu

2. Created a generator for field.

 

define("UsrMultiCurrencyEditViewGenerator", ["MultiCurrencyEditViewGenerator"], function() {

	Ext.define("Terrasoft.configuration.UsrMultiCurrencyEditViewGenerator", {
		extend: "Terrasoft.MultiCurrencyEditViewGenerator",
		alternateClassName: "Terrasoft.UsrMultiCurrencyEditViewGenerator",
		
		generateCurrencyButton: function(config) {
			var buttonConfig = {
				id: "multiCurrencyButton-currency" + config.name,
				className: "Terrasoft.Button",
				classes: {
					wrapperClass: ["currency-button"]
				},
				style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
				menu: {
					items: this.getPropertyBindingConfig(config, "currencyButtonMenuList")
				},
				enabled: true,
				markerValue: config.name + " MultiCurrencyButton"
			};
			return this.generateButton(buttonConfig);
		}
	});
	return Ext.create(Terrasoft.UsrMultiCurrencyEditViewGenerator);
});

3. Modified order page:

 

define("OrderPageV2", ["MoneyModule", "MultiCurrencyEdit", "MultiCurrencyEditUtilities",
"UsrMultiCurrencyEditViewGenerator"],
	function(MoneyModule, MultiCurrencyEdit, MultiCurrencyEditUtilities) {
	return {
		entitySchemaName: "Order",
		attributes: {
			"UsrAmountCurrencyRate": {
				"dependencies": [{
					"columns": ["UsrAmountCurrency"],
					"methodName": "usrSetAmountCurrencyRate"
				}]
			},
			"Amount": {
				"dependencies" : [{
					"columns": ["Amount"],
					"methodName": "usrRecalculateAmount"
				}]
			},
			"UsrPaymentAmountCurrencyRate": {
				"dependencies": [{
					"columns": ["UsrAmountCurrency"],
					"methodName": "usrSetPaymentAmountCurrencyRate"
				}]
			},
			"PaymentAmount": {
				"dependencies" : [{
					"columns": ["PaymentAmount"],
					"methodName": "usrRecalculatePaymentAmount"
				}]
			}
		},
		mixins: {
			MultiCurrencyEditUtilities: "Terrasoft.MultiCurrencyEditUtilities"
		},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {
			onEntityInitialized: function() {
				this.callParent(arguments);
				this.mixins.MultiCurrencyEditUtilities.init.call(this);
			},
			usrSetAmountCurrencyRate: function() {
				MoneyModule.LoadCurrencyRate.call(this, "UsrAmountCurrency", "UsrAmountCurrencyRate",
					new Date(), function() {
						var currency = this.get("UsrAmountCurrency");
						var division = currency && currency.Division;
						MoneyModule.RecalcCurrencyValue.call(this, "UsrAmountCurrencyRate",
							"Amount", "PrimaryAmount", division);
					}
				);
			},
			usrRecalculateAmount: function() {
				var currency = this.get("UsrAmountCurrency");
				var division = currency && currency.Division;
				MoneyModule.RecalcBaseValue.call(this, "UsrAmountCurrencyRate", "Amount",
					"PrimaryAmount", division);
			},
			usrSetPaymentAmountCurrencyRate: function() {
				MoneyModule.LoadCurrencyRate.call(this, "UsrPaymentAmountCurrency", "UsrPaymentAmountCurrencyRate",
					new Date(), function() {
						var currency = this.get("UsrPaymentAmountCurrency");
						var division = currency && currency.Division;
						MoneyModule.RecalcCurrencyValue.call(this, "UsrPaymentAmountCurrencyRate",
							"PaymentAmount", "PrimaryPaymentAmount", division);
					}
				);
			},
			usrRecalculatePaymentAmount: function() {
				var currency = this.get("UsrPaymentAmountCurrency");
				var division = currency && currency.Division;
				MoneyModule.RecalcBaseValue.call(this, "UsrPaymentAmountCurrencyRate", "PaymentAmount",
					"PrimaryPaymentAmount", division);
			},
			
			onPaymentAmountCurrencyMenuItemClick: function(menuItem) {
				var currency = this.get("CurrencyRateList").find(menuItem);
				this.set("UsrAmountCurrency", currency);
			},
			onAmountCurrencyMenuItemClick: function(menuItem) {
				var currency = this.get("CurrencyRateList").find(menuItem);
				this.set("UsrPaymentAmountCurrency", currency);
			},
			prepareCurrencyMenu: function() {
				this.mixins.MultiCurrencyEditUtilities.prepareCurrencyMenu.call(this);
				var currencyRateList = this.get("CurrencyRateList");
				if (!currencyRateList) {
					return;
				}
				var columnsList = ["Amount", "PaymentAmount"];
				this.Terrasoft.each(columnsList, function(column) {
					var menu = this.Ext.create(this.Terrasoft.BaseViewModelCollection);
					currencyRateList.each(function(item) {
						var menuItem = Ext.create("Terrasoft.BaseViewModel", {
							values: {
								Id: item.value,
								Caption: item.Symbol || item.displayValue,
								MarkerValue: item.Symbol || item.displayValue,
								Tag: item.value,
								Click: {"bindTo": "on" + column + "CurrencyMenuItemClick"}
							}
						});
						menu.addItem(menuItem);
					}, this);
					this.set(column + "CurrencyRateList", menu);
				}, this);
			},
		},
		dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "merge",
				"name": "Amount",
				"values": {
					"bindTo": "Amount",
					"primaryAmount": "PrimaryAmount",
					"currency": "UsrAmountCurrency",
					"rate": "UsrAmountCurrencyRate",
					"generator": "UsrMultiCurrencyEditViewGenerator.generate"
				}
			},
			{
				"operation": "merge",
				"name": "PaymentAmount",
				"values": {
					"bindTo": "PaymentAmount",
					"primaryAmount": "PrimaryPaymentAmount",
					"currency": "UsrPaymentAmountCurrency",
					"rate": "UsrPaymentAmountCurrencyRate",
					"generator": "UsrMultiCurrencyEditViewGenerator.generate"
				}
			}
		]/**SCHEMA_DIFF*/
	};
});



Results:

https://prnt.sc/qf723t



Triangle is removed. If you want to still have it - you would need to improve this sample further and check how to make it work.



Regards,

Dmytro

Show all comments

Hi,

Is there a way to implement global currency selector.

For example, on header there will be dropdown list show 3 currencies (USD, EUR and GBP).

Amount will be change (from everywhere) on the basis of selected currency.

Any help will be highly appreciable.

 

Regards

Like 0

Like

1 comments

Hi Muhammad,



I do not think that is going to work. For example, there is an invoice in USD currency. Invoice has field 'Currency' so when the page is loaded it will load USD and show values in USD. If the user changes the currency https://prnt.sc/qflt4e to EUR, changes will be saved to the database. Then if the next user opens the page - value will be shown in EUR.



Probably, currency can be used as virtual field and will not be stored in the database inside each object (Invoice, Order, etc) but rather in user table (SysAdminUnit). In this case, there should be a new field in SysAdminUnit table. The place where user should be able to modify it - is user profile. You can check how already existing drop downs for time zones are implemented https://prnt.sc/qflw78. When the page will be loaded, system will read data from that user table and convert values on the page into that currency. But please note that this should be done separately for all fields in all sections that you want to add this logic. You can create your own currency control, like ootb Curreny edit(you can check in configuration MultiCurrencyEdit) and use it for fields that you want to recalculate. This information can be a starting point for your development.



Regards,

Dmytro

Show all comments