During the conversion of the module
`account_asset` to the new API,
the currency conversion in `create_move` has been inverted.
```
amount = currency_obj.compute(cr, uid, current_currency, company_currency, line.amount, context=context)
```
has been converted to
```
amount = company_currency.compute(line.amount, current_currency)
```
while it should have been converted to
```
amount = current_currency.compute(line.amount, company_currency)
```
See:
https://github.com/odoo/odoo/commit/6120bab#diff-e35933343c229da0afceb2a3b9e3639bR356
opw-669568
In the case of a `raw_data` export, a boolean which has the value
`False` will not be exported correctly.
The fix handles the `False` value as a valid value for a field.
opw-666142
With a high number of pricelist items
(8.000.000 in the observed case),
the SQL request performed in `_price_rule_get_multi`
took a significant time (>3000ms)
to be executed without an index on the `pricelist_id`.
opw-670153
The product price unit should be rounded before being used in any
operation. The PoS calls the method `read` in order to get the necessary
fields. However, the product price is a non-stored calculated float. In
old API, such a field is not rounded by the `read` method. It means that
a product price of 28.067 (for example thanks to the use of a pricelist)
will be rounded to 28.07 at the server level but not rounded in the PoS
JS layer.
To lower the impact of the fix, the rounding is done at the JS level,
and not in the `_product_price` method.
opw-669024
The Dialog class destroys the modal (and so removes it from the DOM)
when the dialog closes but leaves the modal-open class on the body
element if there are still other modal(s) in the DOM.
The problem is that (maily on the frontend side) there may be others
modal(s) in the DOM (not handled by the Dialog class) but which are
not shown to the user, and in that case the modal-open class should
be removed.
If the help message is translatable,
there is no reason why the thanks message
coudln't be as well.
This is a following of the revision
f37a40c4c0
opw-670228
If there is no currency set on the journal,
the fallback currency must be the currency
of the journal company, not the currency
of the user company.
This would mean that when you change of company,
with another currency set,
the bank statement change of currency, this is non-sense.
opw-670187
When creating account move lines from an account move, the partner
set on the account move lines has to be the same than the one on the
account move.
opw:668322
When a product has no company set, it assumed it use the main company
currency. Read the main company currency as SUPERUSER as current user
may not have access to it.
Followup of 3622c0d12a.
tl;dr: accept both `None` and empty ('') results as
cache hits, then double-check that the file_size
is really 0
A. Valid empty files
When a LESS file compiles to an empty result
(e.g. `variables.less`), do not treat the empty file
as a cache miss. Those are valid because file_size == 0.
Note: empty files are not stored in the attachment
filestore and return a null (None) `datas` when read
from the database.
B. Invalid empty files
Under some circumstances (e.g. damaged filestore,
race conditions during deletion, etc.), cached
compiled assets may be deleted in the underlying
attachment filestore, while still present in the
table. The filestore implementation returns an
empty file ('') when they are later accessed.
Those can be considered **invalid**
because the expected file_size is > 0.
When a user attempted to edit his answer,
and had not enough karma to edit the tags
of the post, he was always restricted,
even if he made no changes within
the post tags.
opw-670090
In the base model `account.voucher`, in the module `account_voucher`,
the field `number` is set with `copy=False`, to avoid
copy the voucher number and force to re-use the voucher sequence.
The module `account_check_writing` redefine this column,
but forgot to set the `copy=False`. Therefore, once
this module installed, the voucher number is copied
on the voucher duplication.
opw-669154
The image that is set based on the type should not be colorized as it has no
transparency (image_colorize method would fail).
The _get_default_image is called explicitely to pass False to colorize attribute.
A proper refactoring of the method _get_default_image has been done at 66d4de7
but for 9.0 versions, makes this minimal hack without changing signature method.
Fixes#11027
The former `domain` and `context` values were dropped at revision
e021a08b30, as they referred to fields
that do not exist in Odoo 9.0.
Resetting them to empty values is required in order to force
the new value for upgraded databases.
From revision cb01be2,
the purchase stat button is only on product template form,
and no longer on the product variant form.
The domain of the list that this purchase button
opens has not been adapted according to this change,
the domain was still applied as coming from a product
variant form rather than a product template form.
As a result, it opened the purchases of products variants
having as ID the product template ID from which you came
from before hitting this button.
opw-669618
t-field handles better the currency rounding than t-esc.
When setting the currency rounding to 0.05 instead
of 0.01 (e.g. Switzerland), for 600.00:
- t-esc returns 600.0
- t-field returns 600.00, as expected.
opw-669945