When changing the account_id of an invoice line, all the tax line,
created from this invoice line and with a tax which has no
"account_collected_id" set, must be set with the same account_id.
Inspired from the function "compute" in model "account.invoice.tax"
closed#9727
opw:657499
When a new column has been added after that some data already exists,
the old lines will keep an empty/null value. So when we search is the new field
is equals to False or if it is different of True, we need to match the null
values.
Backport of de3b64018a
When a new column has been added after that some data already exists,
the old lines will keep an empty/null value. So when we search is the new field
is equals to False or if it is different of True, we need to match the null
values.
close#9925
In saas-6 the editor assets were always included, in 9.0 only for
designer but if website_forum is installed it should also be included.
fixes#9402closes#9852
note: should not be forward ported after saas-8
The decimal precision displayed for the quantities
should be the same in the point of sale interface
and in the back-end.
Besides, the decimal precision of the pos order lines
quantity should be the same than the decimal
precision of the sale order lines quantity.
opw-657591
This commit fixes two bugs on followers:
- when landing on a form view, the followers' dropdown is now correctly filled
- when editing the subtypes of a follower while not being ourself a follower,
the subtypes are now correctly displayed in the modal.
Full composer messages were not loaded in the chatter when sent. We
lost that functionality sometimes in the previous months. This commit
makes it work properly again.
Some refactoring were required, we needed a way to load messages with a
given res_id and model.
message_ids contains the ids of all the messages. However, a maximum of
100 messages are fetched when a page is open, and therefore some
messages might not be found in the JS cache. This leads to
message.is_needaction throwing an exception.
This fix returns True if the message is not found. It means that the
message will be set as 'read' even if it is not displayed.
opw-657896
URL attachments are now returned as data and not redirection.
If the url does not match with a module file, the 301 status
(redirection) is still returned.
This allows to use the /web/image/<xmlid>/<dimension> route
and get an image attachment with correct dimensions.
At the end of the production, the cost of produced product should be the total
cost of production (cost of components + worklogs) for real time product.
The previous behaviour was to take the standard price from the product which,
in real time product, is the last purchased price, which is 0 for manufactured
product.
opw 657419
The 'cron_remove_empty_session' is performed every day and removes livechat
channels that contain no message.
The problem was that the cron might have been executed between the moment a
public user clicked on the livechat button, creating a new empty channel, and
the moment this user sent the first message through that channel. If that
happenned, the message was sent in an unexisting channel, and obviously never
received by the operator.
This fix makes sure that removed empty channels haven't been created or
modified within the last hour.
The problem occurred when the im_livechat cron 'cron_remove_empty_session'
removed empty livechat channels (a public user clicked on the livechat button,
creating a new channel, but never sent any message in it). The empty channel
was deleted by the cron, but the two records in the mail_channel_partner
relation table (linking the channel with the public user and the livechat
operator) wasn't removed, and the value of their field 'channel_id' was None.
When this happenned, it broke the SQL query of 'channel_search_to_join()', the
RPC call performed when clicking on '+' new to public channels in the client
action, resulting in no result displayed in the dropdown.
With this fix, records in the relation table are automatically deleted when
their corresponding channel or partner is deleted.
Those messages can be read from the client action interface, where the onclick
redirection is properly handled, but they are also sent by email. The
generated links should thus have a correct href.
Clicking on the author of a message opens a DM with the corresponding user if
there is one, and opens the corresponding partner's form view otherwise.
When the author is the current user, obviously we don't want to open a DM with
ourself, but we probably don't want to open our partner form view either, which
was exactly the behavior before this rev.
- clicking on a channel mention (or a user) from a chat window opens a new chat
window for that channel
- clicking on any other link in a chat window correctly opens the corresponding
document
2 minor changes were required:
- use do_show() instead of on_reverse_breadcrumb() to update control panel and
url in client action, as other actions can be stacked over the client action,
e.g. by clicking on a document link in a chat window. In that case, the
on_reverse_breadcrumb callback wouldn't be set, and thus the control panel and
url wouldn't be updated by coming back to client action using the breadcrumbs.
- channel_join() now checks whether or not the channel has already been joined
(i.e. if it is in the JS cache) before performing the RPC. This check was
performed by each caller, so this simplifies the code.
When raw materials of finished products are tracking with lot or serial
number, using the "Play" button on the work orders will never trigger
the pop-up asking for the numbers.
This fix prevents the MO to be set on "Done" if any product with
tracking activated is found. This will force the user to click on
"Produce" to finish the process, and therefore enter the serial numbers.
opw-657586
The `amount_residual` computation depends on the fact
the `acccount_id` of the move line does allow reconciliation
or not. If it doesn't, the amount residual will always be 0.0.
So, if you check the "allow reconciliation" on the account
after creating the journal items or after changing the
debit/credit amount, the amount residual is not recomputed.
We do not set the `depends` directly on `account_id.reconcile`,
as, if we do, and a user checks/unchecks this box on an account
having a lot of records, this will recompute this residual
amount on all lines, and this is something we do not want
to happen.
The work-around when this case happens,
that the amount residual is not correct due to the fact
the `allow reconciliation` on the account
was checked after having posted the entry,
is to cancel the entry and repost it. This
will recompute the residual amount.
opw-656972
Thanks to the fix 503820a, when a fiscal position mapped an included
tax on a SO line, the price unit of the product is recomputed.
This fix has been applied in the function product_id_change in
the model "sale.order.line"
Before the fix, when changing the product uom on a SO line, the price
unit of the SO line was reset with the pricelist price without taking
into account the fact that a included tax could be removed on the SO line.
To avoid this kind of problem, the price unit must be recomputed in any
case according to the taxes.
When creating an invoice with a fiscal position(fp) which maps an included tax(itax)
to an excluded tax(etax). Each invoice line mapped by fp must recompute its unit price
to substract the included tax.
Inspired from 503820aCloses#9811
opw:658109
The multicompany rule on procurement.rule may not be working as the field
company_id is not displayed with no default value (so probably often empty).
This means that the user may have access to rules from another company from the
product but failing to read the stock.picking.type
To avoid regressions introduced by 35f3dea, make a search on stock.picking.type
to filter on the one the user really have access to.
opw 658141
When an email is sent through the "Contact us" page, it triggers the
creation of a lead or an opportunity depending on group_use_lead. The
issue is that if group_use_lead is set to 0 ("Each mail sent to the
alias creates a new opportunity"), the user will never see the customer
information entered in the contact form such as the name.
It was therefore decided to make this tab visible even if the leads are
not used.
opw-657154
'write_function' transfer the options to 'write' method from the popup form
Steps to reproduce:
1. Create custom model to add a product quantity on hand(readonly) field on stock.move
2. Show this field on Warehouse>All operations>Create a Transfer> Create: Internal Moves
3. Add a Internal Move, then open it again, the quantity on hand field's value show 0. But change the product, the value is correct.
In 22c8db7fcb the concept of
iface_tax_included was introduced. It was not actually used for the
display price though. It looks like a mistake during merging or
something because it adds the code responsible for dealing with the
option after a return statement in get_display_price().
opw-657983