[FIX] account: fixed behavior in order to create the exchange rate difference entry at the full reconciliation only.
This is needed in order to support the use case where an invoice in foreign currency is paid on a bank account in company currency,
with the user encoding manually the difference due to the currency fluctuation (writeoff in the bank statement reconciliation interface): before
this patch, Odoo was doing automatically the same, what results in a duplicated currency difference booking). ticket ID: 670876.
A test has also been added in account/tests/test_reconcilication.py (test_statement_euro_invoice_usd_transaction_euro_full) to ensure that use case
is now fixed.
[FIX] account_full_reconcile: a reconciliation is full as soon as either total_debit = total_credit OR if total_amount_currency is 0
[FIX] account: when registering a payment with a writeoff, always create the writeoff line exactly as entered by the user. Before, it was modified
by the exchange rate entry, for some reason...
[FIX] account: on invoices, show the payment widget and outstanding payments in the invoice's currency always
[FIX] account: when assigning a payment in company currency on an invoice in foreign currency, save the amount_currency in order to create the correct
exchange rate.
[FIX] account: show the currency difference entry on the invoice payments widget
[FIX] account: fixed the reconciliation methods in order to work with exchange rate entries that have debit = credit = 0
[FIX] account: fixed reconciled field computation. A line is reconciled only if its amount_residual AND amount_residual_currency are 0
[IMP] display the move name of payments on the invoice payments widget
As its documentation notes[0], Jinja2 only processes unicode template
data (or pure ASCII, which will implicitly decode to unicode).
The scaffolding system would read raw scaffolding data in memory (both
templates and passthrough non-templates), but fail to decode templates
before handing them to Jinja, blowing rendering up if templates
contained non-ascii.
Fix#11331 by always decoding templates from UTF8 before handing them
to jinja. This is backwards-compatible, ascii templates work as they
used to, non-ascii UTF8 templates now work correctly, non-ascii
non-UTF8 templates what are you doing?
[0] http://jinja.pocoo.org/docs/dev/api/#unicode
The type of the related field purchase_id is many2one.
With the type the function _related_read in fields.py can convert
the record "purchase.order" in id.
A `sale.order` is considered a quote when `draft` or `sent`,
not just draft.
Before this revision, a `sent` quotation was took into account
in the amount total of sales, not in the number of quotes.
opw-668340
Before Odoo 9.0, `type="url"` leaded
to the use of `do_action_url` in `kanban.js`, which
basically redirected to the link url.
This action no longer exists in Odoo 9.0, besides, this
is not really useful, you are redirected
anyway when using a `<a href="..."/>`.
opw-668215
The a product valuation is real-time, the date used is the scheduled
date of the move, not the actual move processing date. This is because
the date is updated on the move after the AML creation.
opw-671372
Fixes#11228
crm.activity inherits mail.message.subtype with the field subtype_id
Before rendering "chatter.ChatComposer", the internal subtypes are fetched
on model mail.message.subtype(in function "fields_view_get").
But when deleting a crm.activity, the linked mail.message.subtype was not
deleted.
Used case:
When deleting a crm.activity, the activity still appeared in the chatter
if you log an internal note for an opportunity as an employee.
opw:670654
In the sales report, the price are displayed within
the company currency.
The rates in `res.currency.rate` are the
rate TO the company currency
e.g., if the company use the USD as currency,
3152.20 COP TO USD, for the Colombian Peso
To display the price within the company currency
from the currency in which the sales happened,
the price must be devided by the currency rate,
not multiplied by
e.g., with the same setup and the above example,
If the product was sell to 315220.00 COP,
the price within the company currency (USD) is
315220.00 / 3152.20 = 100.00 USD
This was corrected at revision
48ccb19937
but it has been omitted during the salepocalypse
94716a3f14
opw-671931
The `quotations` filter in the sales report did not
take into account the `sent` sale orders.
This is following the revision
7f5f945dcf
which meant sense in Odoo 8.0, as
this report is based on the `sale.order.line`,
and the state on the line could be different
than the state on the order, and there was no
`sent` state anyway among the possible values
of the line state selection.
But, for Odoo 9.0, the state on the line
is a related to the state of the order,
and `sent` must therefore be taken
into account again.
opw-671719
The result of the method `_get_pl` is cached:
```
@tools.ormcache('uid', 'country_code', 'show_visible', 'website_pl', 'current_pl', 'all_pl')
```
But, the result depends as well on the partner pricelist set
in the partner form (or even the pricelist used correctly in his cart),
and, unfortunately, this value is not among this method parameters.
To force the recompute of the method when the partner pricelist
change, one of the method arguments (mentioned above) must change.
To serve this purpose, another method is created, adding
the partner pricelist and the order pricelist among its
parameter, to force the recomputation of the available pricelists
when there is a change in the partner or order pricelist.
The old method is kept for retro-compatibility purposes,
and basically call the new one without the two last arguments
For information, the pricelist in the cookie is set only when
the user choose a pricelist different than the default one
among the available pricelists.
opw-670898
- Issue: Edit sale.order form view, add new line, change product who have
taxes and click quickly on save (with slow network) => error message.
Because some deferreds are lost.
- reduce number of reads and onchange for x2m widgets
- remove before_save method and use commit_value (the issue was that if the
before_save and the change trigger an onchange, the onchange deferred is not
checked before saving the content.
The form view product.template.common.form is common for product.product
and product.template Then the active_id could not be used by default for
the field product_tmpl_id.
opw:670779
A Phantom BoM can have service products which can create tasks.
Somehow the code did not use the _need_procurement function that was there before
to check if it needs to create a task.
When using the left/riht arrow to switch of record
in a form view,
the rendering of the `char_domain` widget was done too
early, before all fields are ready / set, and if the
domain of the previous record could not be applied
on the current record, it leaded to a traceback.
This revision introduce a new deffered,
because I coudln't find one that was doing
what I was looking for:
- `is_initialized` is a defferred which is
resolved when the form view has finished
its rendering for the first time
- `reload_mutex` is a mutex used only when reloading or
switch to left/right record.
While the one needed in this case is a deferred
which is resolved when the record has finished
being rendered, wether when its when coming
from the list view to the form view (and it's
not the first time the form view is loaded,
e.g. list view -> form view -> list view -> form view, another record),
or on the switch of left/right record.
opw-671594
The field help on an ir.actions.act_window is a translatable html field.
When a value is set, it is processed by the `html_sanitize` method to make sure
only valid HTML content is present in the database.
In sanitization, xml line break tag `<br/>` is converted into html tag `<br>`.
Before revision 6c8e53a0, `xml_translate` method was using XML parser for html
fields. Line break was then exported as `<br/>`.
Since this revision, it is using a proper html parser and line break is exported
the same way as it is stored in the database, with a `<br>`.
When translating html value, the content is split per meaningful block and
recomposed based on the msgsrc value. Due to the change of parser, translations
exported before 6c8e53a0 contains `<br/>` tag inside the msgstr and could not
match any block in splitted content (which contains `<br>`).
Correct the .pot with valid tag.
Do not change the xml content of help message as it should still be XML inside
the data files.
opw 671477