Purchase Deposit Company Amount
This module books a foreign-currency purchase deposit at the company-currency amount actually paid and carries that figure through to the final bill, so the deposit account clears to zero and the exchange-rate difference lands in the inventory cost of the goods instead of being stranded on the balance sheet.
In detail:
Adds a Company Currency Amount field to the deposit line of a deposit bill, which forces the line’s balance to the amount entered instead of converting the foreign currency amount at the exchange rate.
Carries the company currency value of a posted deposit bill over to the deposit offset line of the final bill, so the deposit account closes out at the amount that was actually paid.
Books the resulting exchange rate difference into the product lines, and reflects it in the stock valuation of the received goods.
The field is only available on the deposit line of a deposit bill raised in a foreign currency, and the column is hidden everywhere else. Everything on the final bill is derived from it, and a deposit nobody entered an amount for keeps the standard rate conversion throughout.
Table of contents
Use Cases / Context
When a purchase order is in a foreign currency, the deposit is usually settled for an exact company currency amount that does not match the exchange rate configured for that day. Odoo books the deposit at the rate, so the deposit account never closes out cleanly against what was paid.
A paid deposit is a non-monetary asset, so the goods are measured at the deposit’s own rate for the prepaid portion and at the current rate for the remainder. The difference is part of the acquisition cost rather than an exchange gain or loss, which is why it is booked into the product lines.
Usage
Register the deposit with the standard Register Deposit wizard, and enter the company currency amount actually paid in the Company Currency Amount column of the deposit bill before posting it. The column is optional, and can be shown from the bill line list.
Create the final bill from the purchase order as usual. The deposit offset line is pinned to the amount entered on the deposit bill, and the exchange rate difference is added to the product lines.
The example below follows a purchase order of USD 100 with a 30% deposit, where the deposit of USD 30 is settled for JPY 3900, the rate on the deposit bill date is USD 1 = JPY 150, and the rate on the final bill date is USD 1 = JPY 160.
Deposit bill. Without the module the deposit is converted at the rate of the day; with it, the balance is forced to the amount that was really paid.
Without this module |
With this module |
||||
|---|---|---|---|---|---|
Deposit (asset) |
$30 |
4500 |
Deposit (asset) |
$30 |
3900 |
Payable |
-$30 |
-4500 |
Payable |
-$30 |
-3900 |
Final bill. The offset line is read back from the posted deposit bill, so the deposit account closes out at what was paid and the difference lands in the goods instead.
Without this module |
With this module |
||||
|---|---|---|---|---|---|
Product |
$100 |
16000 |
Product |
$100 |
15100 |
Deposit (asset) |
-$30 |
-4800 |
Deposit (asset) |
-$30 |
-3900 |
Payable |
-$70 |
-11200 |
Payable |
-$70 |
-11200 |
Without the module the deposit account is left with JPY 300 that no further document will clear, and the goods are valued at the closing rate alone. With the module the deposit account is back to zero, and the product line carries the 3900 paid for the deposit plus USD 70 at the current rate; the payable is the remaining USD 70 at that rate in both cases.
The column only appears on a deposit bill in a foreign currency, the deposit being the one amount known outside Odoo. In the company currency there is no conversion to override, so the field is refused there.
Everything on the final bill is derived from what was entered: the offset line is read back from the posted deposit bill and the goods lines take the rate difference. Leaving the field empty on the deposit bill opts out of all of it – the deposit, the offset and the goods are then converted at the exchange rate exactly as Odoo does without this module.
The bill that carries the deposit offset has to invoice the order in full. Posting one that leaves part of the order unbilled is refused, because the whole deposit is relieved on that first bill and its difference would be charged to the quantities billed first alone.
Known issues / Roadmap
The deposit is relieved in full on the first bill that follows it, so the difference between the deposit as paid and the exchange rate can only be charged to the goods without distorting them when those goods are the whole order. Billing an order in instalments is therefore not supported: the bill that carries the deposit offset must invoice every line of the order.
Posting a bill that leaves part of the order unbilled is refused with an explanation. Clearing the Company Currency Amount on the deposit bill opts out and restores the standard exchange rate conversion throughout.
Supporting instalments would mean spreading the difference over the whole ordered quantity and carrying the unabsorbed part forward to later bills, which have no deposit offset line left to hold it.
Bug Tracker
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.
Do not contact contributors directly about support or help with technical issues.
Credits
Maintainers
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.
Current maintainers:
This module is part of the OCA/purchase-workflow project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Metadata
Release files for odoo-addon-purchase-deposit-company-amount 16.0.1.0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| odoo_addon_purchase_deposit_company_amount-16.0.1.0.0.2-py3-none-any.whl | Python 3 | none | any | Details for odoo_addon_purchase_deposit_company_amount-16.0.1.0.0.2-py3-none-any.whl |
Release files / odoo_addon_purchase_deposit_company_amount-16.0.1.0.0.2-py3-none-any.whl
| Download URL | odoo_addon_purchase_deposit_company_amount-16.0.1.0.0.2-py3-none-any.whl |
|---|---|
| Size | 40.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aeb6416829ec690e306a1064a6c6db3585abf53bbbbd13c5911753eb50a129ad
|
|
BLAKE2b-256 checksum How to use checksums |
5685070e5ef0e6286b9708a7bd455dc83b578995f63576cd94ce5bdd6d738b2e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|
Security for odoo-addon-purchase-deposit-company-amount 16.0.1.0.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.