Currently XERO record any FX unrealized gain or loss for outstanding foreign currency invoices and bills according to the exchange rate if the day when the invoice or bill is created and then calculate the unrealized gain or loss based on the daily rate movement. When the invoice or bill is paid, the actual gain or loss is then calculated and recorded as FX gain/loss based on the actual base currency amount received. This applies well to foreign currency invoices which are paid to a bank account in base currency.
However, this method should not apply to foreign currency invoices and bills that are paid into or out of a foreign currency bank account as there is no exchange gain/loss at this juncture as the foreign currency was not converted to base currency and the fx exposure is now in the foreign currency bank account. Only when you make a transfer from the foreign currency bank account to the base currency bank account (fx deal to convert the foreign currency to base currency) then the fx gain or loss is realized.
Thanks for everyone's support in this idea. We understand the strong feelings expressed in your comments, where an invoice can be accidentally approved when still needing to go through a review or remain in a draft status.
As suggested by some users in this thread, if this has already occurred an option for now would be to add a note to the history of the invoice so other users are aware of the action and what needs to be done, or alternatively Void the invoice and copy to a new Draft invoice (consider if you need to change the invoice # before voiding the approved one, so you can use this on the new draft invoice).
While not a resolution for this idea, to avoid mistakenly approving an invoice an option could be to make use of the keyboard shortcuts that are now available in invoicing such as Save & Close which is Alt-Shift-C on Windows or Opt-Shift-C with a Mac device. I get this might be a slight adjustment to your workflow, for some to get used to.
We want to be upfront with you all here, that though we understand the high interest for this feature it's not something we have plans to develop in the foreseeable future. We'll share if there are any developments that'd be of interest to you all surrounding this flow.
Thanks for everyone's support in this idea. We understand the strong feelings expressed in your comments, where an invoice can be accidentally approved when still needing to go through a review or remain in a draft status.
As suggested by some users in this thread, if this has already occurred an option for now would be to add a note to the history of the invoice so other users are aware of the action and what needs to be done, or alternatively Void the invoice and copy to a new Draft invoice (consider if you need to change the invoice # before voiding the approved one, so you can use this on the new draft invoice).
While not a resolution for this idea, to avoid mistakenly approving an invoice an option could be to make use of the keyboard shortcuts that are now available in invoicing such as Save &…
Currently XERO record any FX unrealized gain or loss for outstanding foreign currency invoices and bills according to the exchange rate if the day when the invoice or bill is created and then calculate the unrealized gain or loss based on the daily rate movement. When the invoice or bill is paid, the actual gain or loss is then calculated and recorded as FX gain/loss based on the actual base currency amount received. This applies well to foreign currency invoices which are paid to a bank account in base currency.
However, this method should not apply to foreign currency invoices and bills that are paid into or out of a foreign currency bank account as there is no exchange gain/loss at this juncture as the foreign currency was not converted to base currency and the fx exposure is now in the foreign currency bank account. Only when you make a transfer from the foreign currency bank account to the base currency bank account (fx deal to convert the foreign currency to base currency) then the fx gain or loss is realized.