In case you don't have 'field', the first 'if' will raise a warning.
In this case the second 'if' will crash with:
"'NoneType' object has no attribute 'store'"
This commit closes#16146
Courtesy of @kmetaxas
Currently, if you create a manufacturing order, you can select
all the product that have a BOM. But some product have BOM that
are archived or that can't be manufactured.
This commit add a constraint in the domain for product field.
The constraint ensure that BOM are not archived nor phantom BOM.
As show is needed to call super it is impossible to override the
function without running into the immediate print. It is possible though
that you might need some delay that local CPU has rendered everything on
the PoS Ticket before printing...based on this you are able to override
the handle_auto_print and add a delay there.
Closes#16174
On a form view the attribute `use_contacts` will:
- when set to True: enable us to add contacts which will be available on
any time in the calendar,
- when unset: the list of contact is only the contact currently beeing
seen directly in the calendar.
The feature for adding contact is thus not necessary when
`use_contacts` is unset. But it still appeared without having any effect
(which is unexpected).
This commit remove the contact adding feature when it has no necessity.
opw-715932
When posting journal entries for an hr.expense.sheet with several expense lines
(by clicking on the button "Post journal entries"), all the account move lines
created for the same sheet must be linked to the same account move because
the model hr.expense.sheet has just a field "account_move_id" to access all the entries
(by clicking on button "Accounting Entries")
opw:715523,709930,725798,716239
- Activate multi-currency
- Create an invoice in a currency different from the company currency
- Go to Accounting > Reporting > Management > Partner Ledger
- Activate the option "With Currency"
The report printed doesn't contain the amount currency.
opw-726440
When creating a SO with a quote template(QT), the website_description
of the QT is transfered with the lang of the partner to the field
website_description of sale.order model(in onchange_template_id on
sale.order model). But when changing the partner_id on the SO, the
lang of the new user was taken into account.
opw:697893
On mobile view, in the product detail page, the image of the product
fills the largest part of the screen. However, when the user tries to
scroll by clicking on the image, it zooms on the image instead of
actually scrolling. This is confusing for the users who report that they
cannot buy anything on the webshop.
A solution is to simply deactivate the zoom on mobile.
opw-704026
It is confusing to see an existing payment transaction on an SO next to its
total even though it doesn't necessarily mean that the SO is paid because the
transaction could have failed. Additionally, if there are several tentative
transactions for one SO, only the latest one is accessible through this m2o.
Closes#16128
When there is no move line linked to the picking, the customer address must
be the address of the partner linked to the stock.pick
Backport of this commit: 79d8849
opw:725721
There was an issue when selecting a video tag:
- a tag inside the video tag would be selected instead of the video tag
so video could not be removed or modified (modifying it would add a
video or image inside the video itself and so on).
- the selection was not conveyed to the editor so it would be lost
consequently due to some code who restored it to what was saved on
the editor.
This fix solves this by changing how the video tag was selected and
saving the selected range on the editor.
opw-724701
Main journal is not accessible for user from different company,
a security error is raised during the default get
A pos manager could not create a new pos configuration without create rights on
ir.sequence (only admin has by default)
Closes#16063
When the module sale_stock is installed, the MTO route is now by default
available on sale order lines.
We also remove the ability to create routes from sale order lines, as a
salesman will never have to configure new stock routings.
Since ee2c76a431, a new field 'statement_line_id' has been added on account.move.line object and the field 'statement_id' became a related... but this statement_line_id on the bank account aml was, by mistake, not set. That created aml that were wrongly appearing in blue in the reconciliation widget.
If this error occured in a DB, the following SQL query can fix it:
$ UPDATE account_move_line l SET statement_line_id = s.id FROM account_bank_statement_line s
WHERE l.statement_line_id IS NULL
AND l.statement_id = s.statement_id
AND l.name = s.name
AND coalesce(s.partner_id, 0) = coalesce(l.partner_id, 0);
If a record is tagged with no update, the translations must not be replaced,
even if the "overwrite translation" checkbox is checked.
If somebody renames a noupdate and translated record, updating the translations
must keep the new translations.
Closes#14768
When posting journal entries for an hr.expense.sheet with several expense lines
(by clicking on the button "Post journal entries"), all the account move lines
created for the same sheet must be linked to the same account move because
the model hr.expense.sheet has just a field "account_move_id" to access all the entries
(by clicking on button "Accounting Entries")
This commit reverts f97eb0ac2b
opw:715523,709930,725798,716239
- Create an asset category with a journal of type "Purchase" or
"Miscellaneous".
- Create an asset in a currency different from the company currency
- Validate and post the first entry.
The error "The amount expressed in the secondary currency must be
positive..." is raised.
The sign is determined by the journal type. However, in case of an asset
depreciation or a deferred revenue, the amount is always positive. The
amount is negative in case of an asset created from a refund invoice
(see commit c844534f8a).
There is actually no need of a `sign` variable. In case amount is
positive:
- first move is a credit, therefore `amount_currency` is negative
- second move is a debit, therefore `amount_currency` is positive
In case amoutn is negative:
- first move is a debit, therefore `amount_currency` is positive
- second move is a credit, therefore `amount_currency` is negative
opw-725358
The domain field needs space to be rendered. Even with its "in_dialog"
option activated, the readonly representation can take some space.
If there is not enough space, it will be a mess to read it and the
"-> x records" button can also overflow the "Add filter" button.
This commit makes the field to be rendered as a "block", which fixes
the problem in all current cases.
A rounding issue was resolved in
ee33593351. It however introduced
another issue.
Rounding functions (both round_precision in web.utils and float_round
in openerp.tools) are not perfect due to IEEE floating point
limitations. However both should produce the same output given the
same input. An example: rounding 13.95 to 2 digits yields
13.950000000000001.
The additional rounding introduced in
ee33593351 on price lead to issues in
certain cases. One example occurs when applying a 90% discount on a
product costing 13.95. The POS will do the following:
> 13.950000000000001 * 0.09999999999999998
1.3949999999999998
> round_pr(1.3949999999999998, .01)
1.4000000000000001
whereas the backend will do (as eg. in sale.order.line)
>>> 13.95 * 0.09999999999999998
1.3949999999999996
>>> round(1.3949999999999996, 2)
1.3900000000000001
Causing a difference of 0.01.
The core of the issue is that in the backend 13.95 is rounded
differently. When a Float gets written to the database doesn't just
pass through the regular float_round. It passes through
_symbol_set_float which truncates characters exceeding the precision.
This implements the same approach in the POS.
opw-715506
Closes#16119
In the kanban view, if the default_group_by is a many2one, it's possible
to quick create a new column (which will create a new record in the
relation model).
However, the field `name` was hardcoded during the creation, which means
that a custom model with `x_name` couldn't be correctly created.
This commit allows it by using `name_create` instead.
The alert box was flickering if empty: at each click on the status
button, the box was appearing and disappearing quickly. This is probably
due to a bug in the form view that do not wait for the evaluation of the
attrs. This bug is fixed in the new views, but only if the attrs is
fixed. Indeed, as the attrs condition is
attrs="{'invisible': [('production_messages', '=', False)]}"
the field was never set to False. This is because the compute method was
doing
workorder.production_messages = "<br/>".join(messages)
So, even if `messages` was empty, production_messages will be set to ''.
In [1]: 'aaa'.join([])
Out[1]: ''
So we fix the condition to set False to the field if the string is
empty.
In [6]: 'aaa'.join([]) or False
Out[6]: False
A 50 px height was hardcoded, so if you have more than 2 or 3 messages
they were displayed outside of the messages box. We remove this
hardcoded height and it looks better.