Default currency for a party

Hi,

Is there a way to define a default currency for a Party. This default currency will be used in sales and purchase.

Regards

We did it in a custom module…
Some part of code: https://pastebin.com/7ZUUVTvH

Indeed it was decided to let the system guess the default value based on past order.
This is based on the fact that the user never changes the default value of the party (may not have the rights) but just change it on the order.

@maxx : Thank for your snippet.

You mean the last order ?

Indeed it takes the most used currency in the last 10 orders for the party.
By the way, it is only on purchase. For sale, we think it is the company how decide the currency and most common case is to use the company currency.

Indeed I understand this point of view, however, even if the currency never changes during the life of the third party, it is more reassuring for a new user to have fixed information rather than calculated information. Especially since on sales for example it is common that the person entering the sale is not informed of the customer’s currency.

Why should the user wonder about the party currency?

For me the user should only focus on the current order and update the currency when required.

If it knows this information. The sales administration is often not aware of details on customer.

Well the user entering the order is in contact with the customer so it must now the currency of the order and update it if it’s not the desired one.

The sales adminsitrator can look at all the history of sales from a specific customer to get the full details.

The person entering the sales is not in contact with the customer. She enters sales on the seller’s instructions. And anything that can make your job easier and avoid mistakes is a good thing. Setting the currency on the party is one of the little things that make it easier.

So one of the sellers instructions should be the currency of the sale :wink: Otherwise the information is incomplete and may produce errors (with and without having the currency on the party).

Agree but having the currency on the party may also produce mistakes. I.E: When the wrong currency is defined on the party.

Why? It will be great that you can explain the benefits of adding the currency of the party. I have re read the full thread and I haven’t seen any sentence that explains why this behaviour will be better.

I also think currency for both sales and purchases should be configurable in the party. Currency is an important negotiation topic in many businesses just like the payment term or the price list (both of which we seem to accept that should have a default defined in the party).

The thing is that if I’m an european company that sales the products in europe purchasing in USD means that I assume the risk of currency fluctuation. While if I purchase in EUR it is my supplier that assumes that risk.

Obviously that default may change for a specific sale/purchase, just like we allow that in payment terms to be changed.

But as you allow to change the currency for each sale/purchase having the currency on the party does not give any information about the assumed risks.

If you want to search for the currency risk you should search all the current purchase/sales that are in a diferent currency that the one used on the company.

So in this case the currency on party does not give any additional information.

I don’t want to know the risks that I already assumed.

What I argue is that I want the currency in the party for the same reason that I want the payment term in the party: it is part of the negotiation with the party and that is prior to the sale/purchase.

The question could be: why does Tryton have a default payment term?

It is not like this in all business. Often customer decides the currency.

As @2cadz the user may have no contact with customer.

Normally in other systems the currency is defined on party, but as Tryton does not do things as others … I wonder if the solution would be that currency on sales were proposed as in purchases (based on last orders).

What is the rational of define the currency on the party? Why it is usefull? Why we should do it the same way?

If we do the same way as other we will never make it better :wink:

This makes sense for me until anyone give any good reason to add the currency on the party.

To get a default currency for the party, as another customer data such as payment term.

To load party currency when creating sale document.

Sorry but I didn’t say that we should do such thing.

I guess it is clear that in some businesses (mainly international traders), there is a need to define explicitly for a customer or a supplier a default currency. But we should keep the system simple to use for other cases. This means to keep the guessing of a good currency for the purchase and keep sale in the company currency.
So I think we could add currencies for customer and supplier (probably on the account_invoice module) but without default values. Those fields are used when they are not empty to fill the currency of invoices, sale, purchase, subscription etc. Otherwise we use the current guessing mechanism for purchase and company currency for sales.

That’s exactly what I thought when I started this thread : Issue 9305: Adding currency on party - Tryton issue tracker