How to change the Source Location in Odoo/OpenERP with Multiple Languages

We have seen that our clients are facing few issues in OpenERP/Odoo related to the Source Location of the Warehouse. This happens only when there are multiple languages and language selected in preference is other than “English” e.g. English(UK)/Chinese(CN). If the language selected is “English” then it will work fine even if there are multiple languages.

Whenever the location is created and saved, it becomes source location but if user makes any changes it reflects only on the Delivery Order but does not reflect in the Delivery slip. The source location is the physical location where exactly the products are available. Using this functionality user can configure the exact location where a particular product can be found in which floor, room, corridor, cupboard, shelf.

Today, I will explain the exact reasons in depth why it is happening and what is the way to get that working.

To configure the location user can go to “Warehouse –> Configure –> Locations”

BlogLocation

Now click “Create” to create a new location where the inventory is located. Give a name to the location, fill all required fields and click Save.

BlogLoc1

When user create a location and give location name it becomes a source location which is displayed on the DO and print on Delivery slips.

BlogLoc2

Now the issue is when user changes the location name by editing the above created location, that edited location name doesn’t changes the source location but it changes the translation value. What is translation value, let me explain this. Here comes translate table in picture. Click on edit to edit the record and then click on the highlighted icon from below figure.

Blogloc3

There is a translation table which gets generated when a new location is created which contains a table with few columns like source, translation value, object, language. Now you can see that source and translation value column has same name that is “Location1”. If user creates a DO with this location then the source location displayed on DO will be Location 1 and Delivery Slip will print the source location as Location1.

blogloc4

Now, user wants to change the location name. So, user opens the record and edited it from Location1 to Location123 and save it.

Blogss5

User open the translate table and can see the source location is still Location1, the edited value Location123 is displayed in translation value.

blogss6

If user creates Delivery Order with this location it will display the translation value Location123 as shown below.

blogss8

If user prints a Delivery slip of the above DO, the location will display the source value not the currently edited or translated value.

blogss9

To get the same location on DO and Delivery slip user needs to edit the translation table to change the source location which user wants to print on Delivery Slips. So, here is the way to do that.User needs to open the translation table of the record edited. Now user need to edit the value in both the columns source and translate column and save the record.

blogss7

Now, if the user prints the Delivery slip of the above DO created it will display location as current edited value.

blogss10

So, here is the solution of the issue I mentioned in the blog. Please try this to change the source location everywhere.