Each qty of a line in the BOM Structure report must be computed in
the uom of its BOM line.
Example:
With 2 products: A, B
BOM A: 100 kg of A is produced by 5t of B
So 1kg of A needs how many t of B ?:
In the code:
qty_per_bom = 100 kg expressed in the uom of B => qty_per_bom = 0.1t
qty = 1 kg expressed in the uom of B => qty = 0.001t
l.product_qty = 5t
qty of B = (l.product_qty *qty)/ qty_per_bom = 0.05t
opw:697502
Due to an error introduced when migrating the module at new API
at commit a4e57ea16c limited attendances
having date_from and / or date_to were not correctly taken into
account.
Tests have been added to avoid regression.
Commit d861cdc1c4 introduced the tax group feature. The tax line
details were removed from the printed invoice in favor of the tax group.
However, it requires that all tax groups are correctly defined in the
localization, otherwise the printed invoice doesn't show the required
tax details.
The correct fix, which is the complete definition of the tax groups,
will be done for the upcoming v11 version. In the meantime, this simply
introduces back the tax details table.
from odoo#14848
Those subscribed to the department of the employee didn't get notified when
the employee encoded a leave.
It was due to the department_id not being given as value in create when the
employee made the leave.
This is because there's a group group_hr_holidays_user on that field in the
view, so only when they created a leave the followers would be added correctly
(as department_id was given as value in create).
This commit also remove the useless subscribe_followers method.
Before this commit there was an error when we chose a monthly recurrence
with "Day of Month" of type "Day of" because the code expect them to be
set. In any case they are required field so if they are not field we
should just ignore it.
opw-702852
In the report "Leaves by Department", the start/end dates of the
holidays are computed based on the UTC datetime stored in the database.
This makes the report inconsistent with what is displayed in the
interface.
opw-702202
For first comments on a product in the ecommerce we would not
have the star rating displayed till a page refresh, and the star widget
would not be reset after posting.
Also in other situations, we would get a 0 star widget when posting
comment without rating, but after a refresh the widget would dispappear.
With this change the new comment get the same stars as when refreshed.
opw-702608
The field `purchase_count` is described as '# Purchases' (which is an
integer), so the user should expect the number of POs associated to the
product, not the quantity ordered as it is the case before this commit.
opw-697815
In ff56304f58 a solution was tried to have message posted from
backend livechat linkified for visitor in frontend. This was
forward-ported when it should not have been and introduced issues
including:
- `href="{link}"` would become `href="<a href="{link}">{link}</a>"`
- if html entities such as the ones for U+00A0, and entities <, >,
', " or ` were next to the link, the entity would be linkified
too (up to the ;)
This happen because utils.linkify function is to be used with text
content and not html which was the case in this instance.
opw-693457
opw-702410
This reverts commit 1c60a631df.
The fix was done to conciliate 83956d4 and ff56304f5 but ff56304f5 was
forward-ported erroneously and introduced other issues.
opw-702410
When the user clicks on "Run Reordering Rules", it might create
procurements. However, the cron "Run mrp scheduler" will also create
procurements and might already be running in the background. Therefore,
we need to make sure that both actions don't run concurrently.
Note that the same check is done for the wizard "Run Schedulers".
opw-695607
The field resource_type in mrp.workcenter tree view must be invisible because
this field was not available in the form view before f9f4bba
Adding resource_type in the form view had no business case.
opw:698183
When the policy of the sale order is set to
`Deliver all products at once`,
the commitment date should be the maximum of the order lines lead time
rather than the minimum, as you will deliver all lines at the same time
It looks like the former behavior is applied since Odoo 7.0
d8d0b88467
It should therefore actually be applied in 7.0/8.0/9.0,
but we consider the risk too high for databases
that are used to the former behavior, and expect the old behavior.
We therefore apply this revision only in 10.0, to minimize the risks.
opw-702271
- In a livechat window, type a URL, then end by a space. For example,
type "https://odoo.com " (whithout quotes)
- Press enter
It is converted into "https://odoo.com ".
opw-702410
The depends for an issue inactivity_days expects a set create_date but
this may not be the case (when creating the record for example with the
field create_date in the form view).
opw-702532
Create a canned response containing the character "<". It is
automatically converted into "<".
The substitution field is systematically escaped, for security reason.
This causes the substitution observed. However, the canned responses are
only used in text-only messages. The escaping is therefore not
necessary, since the HTML is not interpreted.
opw-693970
Simplifies the left margin calculation logic with a pre-defined width.
In practice, more use cases should be taken into account, and that could
just make the logic overkill.
opw-697626
In graph view, the y-axis always uses the standard float precision with
2 digits. This might not be enough if the precision was defined
differently for a given float type.
opw-697625
1;2802;0c
now() was bad as it excluded the orders of the latest session
midnight is not good either because
- midnight server != midnight user (timezone)
- some restaurant, bars start in the evening and finish after midgnight
With this default, with 4 sessions:
- POS A, start 2016-12-21 08:05:36
- POS B, start 2016-12-21 08:08:11
- POS A, start 2016-12-22 08:17:51
- POS B, start 2016-12-21 08:19:23
The default start date will be 2016-12-22 08:17:51 to include all orders of
both sessions.
When there are too many labels to display on the x-axis, they overlap
and it simply becomes unreadable. By slightly rotating them, this can be
avoided in most cases.
opw-697625
opw-697626
The dates were lost when in render_html as replaced by the one in the context
(None so fallback on today).
Avoid calling twice get_sale_details
Fixes#14789
Replaces and closes#14790
When MRP and Product Extended are installed:
- Define a manufactured product with valuation as 'Periodic (manual)'
- On the product form, click on "Compute from BOM"
Several issues:
- The field "Counter-Part Account" is mandatory
- Account moves are posted although the product valuation is 'Periodic
(manual)'
The problem is that the wizard is originally used for products with
valuation 'Perpetual (automated)', where this behavior makes sense. In
this use case, however, it's an issue.
Making the field not mandatory is not possible without an upgrade of the
module, so this will have to be fixed in master branch. Regarding the
creation of account moves, however, this commit solves it.
opw-697867
This reverts commit 8416c2bcfa.
Temporary revert this commit, to have enterprise green again...
Need to replace 'full' args by key in context to don't break override
Need to rewrite account_bank_statement_import_csv from enterprise
Before this commit, 'select all' into a list view, and use an action that assign
a user_id to all the records will send n² email, because the function send_mail
use active_domain instead of the current record.
Now, we keep mass_mail mode, but simulate the case where we have clicked on
each record one by one and not all the records matching the active_domain.
So we send only one email by record.
How to reproduce:
create a action server "record.write(dict(user_id=env.user_id))"
add this action in context menu
select all records in a list and apply the action server
Before this commit, the parser (date, datetime, float, monetary, ...) was only
called on field from current model, and not on sub field.
Eg: product_id.price was not parsed as float, because product_id != float
This commit add an overiddable function to get all the parsers: get_parsers
This commit closes#14572
_get_partner_pricelist could return both a recordset or an ID.
While the ORM handles both where the method is called, a migration script
relies on an ID being returned.
( migrations/sale_contract/9.saas~13.1.1/pre-models.py", line 24 )
This commit ensures an ID is being returned every time.