`self` is the variable with all the purchase order lines,
`line` is the variable with the current line in the loop iteration.
This is expected to get the line quantity. Having written
`self` instead of `line` is an oversight of the revision
0923d1609d
opw-670502
The account number field on a journal is a related field to the
number of the bank account associated to the journal.
As the number of a bank account is a required field,
any attempt to empty it from the journal fails.
Besides, unlinking the bank account from the journal when emptying
the account number on the journal form doesn't seem to be
the appropriate behavior. Imagine you give an account number
to the journal, then empty it, then re-fill it, you probably
do not want the journal entries to be associated to a new bank account,
you probably wanted the same bank account, but renamed, while
it would be the case if we simply unlink it.
If you would like to delete the bank account, you have
to do it from the bank accounts list itself.
opw-670472
Pass the fields parameter in the call to the `read` method,
so it fetches only the needed fields:
- Better performances,
- Avoid possible access rights issues.
In this case, it wasn't possible for a user
having no access rights to the purchase module
to print this report.
opw-670449
The quantity delivered must be converted in the product UoM of the BoM
line. Indeed, the UoM of the BoM line can be different from the UoM of the
product which is manufactured.
opw-669764
Before the fix:
Create a product with a BoM type kit(composed with 5 products) and price=120
Select real price costing method for the product and each component
Select perpetual inventory valuation for the product and each component
Create a PO with the product
Receive the products
When checking the journal of entries, 5 entries have been created with an
amount of 120.
After the fix:
When checking the journal of entries, 5 entries will be created with an
amount equal of the standard price of each component of the kit.
opw:670239
When creating a new pos.session, the starting balance of created bank
statements where all the sames.
By creating bank statements with the same `journal_id` in context, they
all have the starting balance for this journal.
Create them manually to force having the starting balance for the
statement's journal.
CSV export was added in f146e2a and since then newline were not
exported.
But new line should be allowed if the string is quoted by " characters
which is done in Odoo.
closes#11005
opw-667853
The theoritical amount is computed as:
theo amt = ellapsed time / total time period * planned amount
where:
total time period is the difference between date_to and date_from defined
on the crossevered budget line.
ellapsed time is the difference between today and date_from.
The achievment(percentage) on a crossevered budget line is computed as:
percentage = practical amt / theo amt
where:
practical amt is the sum of all account analytic lines valid in the
crossevered budget line period.
When computing the report of a summary, the ellapsed time is equal
to the difference between date_to and date_from defined for the summary and
the practical amount only takes the account analytic lines in the summary
period.
opw:669545
When loading the registry, the parent store are defered at the end of
the registry initialisation. However, when modules should be removed, a
brand new registry is build without deleted modules, losing the list of
models on which parent store should be recomputed.
Properties depends on with which companies the records
are browsed.
When retrieving the fiscal position as sudo,
the company must therefore be enforced within the context,
to make sure to get the properties from the right
company.
This method can totally be accessed as sudo,
within the crons for instance.
Before this revision, the recurring invoices cron
could retrieve properties from the wrong company,
and therefore retrieve the fiscal position of another
company.
Closes#11039
During the conversion of the module
`account_asset` to the new API,
in revision 6120bab,
the variables `current_currency` & `company_currency`
have been changed from identifier integers to
browse records.
The currency passed in the `create` method
values must therefore be adapted according
to this change.
This prevented the correct use
of the assets when the currency of the assets
was not the same as the currency of the company.
opw-669571
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.
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