cancel
Showing results for 
Search instead for 
Did you mean: 

Set trip currency according to personnel area

michele_williams
Participant
0 Kudos

We have a consolidated worldwide operations into one company code (in the US) but this company holds many employees who reside in other countries. We have set up a personnel area for each country, although all are assigned to the US01 company code. These employees are paid in their local currency (e.g. GBP, EUR, HKD) via local payroll companies. Expenses are recorded manually via journal entry.

I would like to set up these employees to use travel management, but I cannot find a way to set travel expenses/trip currency according to their personnel area. In other words, I wish to reimburse my UK employee in GBP, Europeans in EUR, etc. When I try to change Trip Provision Variant for one personnel area, I receive an error message and am forced to change it for all personnel areas.

The only solution I can find is to change Global Settings such that foreign settlement of receipts is set to "per receipt". I find this to be risky since the change would affect my 300+ US users as well as my 10-20 non-US users. I am concerned that a US user may complete their receipts incorrectly for foreign trips and inadvertently force reimbursement in foreign currencies.

Please advise ...

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Although I am not sure if you have set countries as personnel area in your landscape. But if you've done it like that, then show the below solution to an abap'er in your team.

  • Find Country currency based on personnel area of employee.
  • Implement Badi : TRIP_WEB_CHECK (Method : USER_CHECK_RECEIPTS)
  • Fetch the local currency amount of the expense receipt in the expense report and ignore the receipt amount
  • Add up the local currency (country specific) amount found in relevant itab
  • Reimburse

michele_williams
Participant
0 Kudos

Virendra,

Thank you for the suggestion. I am not sure that I fully understand. In your example, the receipt was entered in SGD. How have you determined PHP in the result? Are you suggesting that in the BADI we determine the currency code by looking for the country in the personnel area table (T500P)?

Thank you.

Former Member
0 Kudos

Hi Michele

Yes, you can find out the currency from T500P and then checking the WAERS in T500.

In the screenshot above, the departure country(or home country) is Philippines and the visiting country is Singapore.

So when the employee arrives in SG, the receipt amount is shown in SGD and a comparable amount in PHP is also shown(As the amount has be reimbursed in PHP). It automatically factors into account that day's  currency conversion rate for SGD->PHP.

You may want to check the parameter RECEIPTS for amount in local currency in the method USER_CHECK_RECEIPTS of the BAdi : TRIP_WEB_CHECK.

Now all you need to do is to check if the employee's home country currency isn't equal to the receipt currency(left one in the screenshot), process the local currency(right one in the screenshot). Works well for single line item.

For multiple line items, add up the amount of local currency of all line items and process.

NB: USER_CHECK_RECEIPTS works for multiple line items in receipt page of expense report whereas USER_CHECK_LINE_OF_RECEIPTS works when you know the receipt won't contain more than 1 expense type. So better implement USER_CHECK_RECEIPTS to avoid processing only the first line item. Company's gain, employee's pain

Do note that this BAdi works only for portal and not for SAP GUI.

I hope you are abap developer.