I found out Odoo is not creating exchange gains or losses for partial
payments. Only at the time of full payment Odoo is calculating the
exchange difference. This is creating serious headache for the user,
when they see aged payable, receivable, partner ledger, general
ledger, etc exchange rate is not considered. This is giving the users
wrong information about the payments they have made.
Impacted versions: 11
Steps to reproduce:
1) Make 2 different Multi currency Invoices for the single supplier
2) Modify the current exchange rate under currencies
3) Make a partial payment for one single invoice with exchange difference
Current behavior:
It does not generate the Exchange gain or Loss for the partial invoice payments
Expected behavior:
Irrespective of the full payments or partial, it should generate the Exchange gain or Loss as per the payment date and Invoice record Date
By default Odoo will generate exchange gain or loss only when all invoice paid, on partial payments exchange isn't computing.
Related
I am trying to calculate stock market liquidity by using the effective spread, quoted spread and price impact. one of the variables that I need is seller and buyer initiated trades. How am I able to extract that information from Bloomberg ?
Our customers have a subscription on our services.
The subscription generates an draft invoice and one of the product on the draft I want to change the quantity off. This product quantity is different every month and our external software know this number.
What I’ve do through the API/XMLRPC.
We find the draft in the 'account.move' model then search the 'account.move.line' for our product. Then here we change the amount and we write the 'account.move.line' back.
Here we get an exception 'Cannot create unbalanced journal entry. <...>.'.
I can’t believe we have the recalculate all the financial values. Isn’t this something the API should do?
I’m having a hard time making sense of multi-currency transactions. I’m using the REST API to retrieve journal transaction details. I’m hitting the /entity/Default/18.200.001/JournalTransaction endpoint with $expand=Details and some date filters. The base currency of this Acumatica instance is USD, but some journal transactions are entered in EUR. The problem is that for these EUR transactions, I have no way of knowing these debit/credit amounts were entered in the non-default currency. I see the EUR amount, but the CurrencyID of the transactions indicates “USD”. About the only thing I notice is that the transaction is in the “US” branch, but the details are in the “EU” branch. Is there a way, via the REST API, to query journal transactions/details, and discern what currency the debit/credit amount is represented in?
Journal header contains CurrencyID field which should tell you what currency it belongs to.
Is there any way to get the exchange rates without fees factored in because they seem to vary based on transaction volume and payment method?
The API documentation says:
Note that exchange rates fluctuates so the price is only correct for
seconds at the time. This buy price includes standard Coinbase fee
(1%) but excludes any other fees including bank fees.
Source: https://developers.coinbase.com/api/v2#get-exchange-rates
So the assumption is you can divide the exchange rate returned by 1.01 to get the fee excluding the standard Coinbase fee of 1% and conversely for sell price, you would multiply by 1.01.
However, the pricing from November 2017 has a much more complex pricing structure and makes no reference to the "standard Coinbase fee" referred to in the documentation.
See https://support.coinbase.com/customer/en/portal/articles/2109597-coinbase-pricing-fees-disclosures
Let us assume there is a situation when I have an invoice from a supplier to my company (e.g. 1000 EUR). My company returns all the goods because of a problem. The supplier shall issue a credit invoice in amount of 1000 EUR, which I register in my system. As a result I will have (on behalf of the supplier) an account payable of 1000 EUR and an account receivable in the same amount. What is the preferred way of handling this situation, because there will be no money transferred, either way.
Should I generate a paymentApplication to both invoices? I want to see them as +1000 -1000 = 0 EUR.
The current data model and services do not support applying an invoice to an invoice, i.e. canceling part or all of one invoice with another. That is something I have considered but IMO is messy... even if it is a common practice in certain parts of the world (from my limited knowledge of it an archaic practice that isn't so commonly used any more). That could be supported though, I have certainly considered it (adding an entity or perhaps modifying PaymentApplication to support it, adding a service to do it and a corresponding GL posting service to balance AP/AR accounts).
Right now the best thing to do a cancel the original invoice, which does the proper reverse GL postings if the invoice has already been posted.
If you want both invoices in the system and canceling entries somewhere the currently supported approach is to use a FinancialAccount, basically use FinancialAccount payments to pay both invoices and then the balance of the FinancialAccount represents the amount due or owed to the external party. There is full support for these sorts of FinancialAccount transactions, doing payments both ways (withdrawals and deposits), representing the liability for positive balances in the GL, etc.