The use strict statement was outside the odoo.define statement. The use
statement could be applied to other statements.
Now, the use strict is in the odoo.define.
closesodoo/odoo#31128
- Set up as a normal shipper and one which will cause an
error (e.g. service not available for customer address; or no price rule
matching)
- Order a product on eCommerce, go to Payment page
When changing of delivery method, from the second delivery, to the first
and to the second delivery again, the behavior of the 'Pay Now' button
is the follow:
* choose second delivery - button disabled
* choose first delivery - button enabled
* choose second delivery - button disabled
If the connection to the server is to slow, the choose of the delivery
and the state of the button are not syncronised. That means that at the
end of this changing, the button stays active long enough to click it,
and pass an order without a delivery charge.
Now, only the last request is take into account, and the false positives
are avoided.
opw-1937575
closesodoo/odoo#31127
Steps to reproduce:
- activate the multi-currency option in the Accounting App
- activate the EUR currency (USD being the base currency)
- create a EUR Bank Journal with an EUR account
- rate = 1.4
- create a vendor bill for Asustek for 1000,10 EUR
- create a vendor bill for Asustek for 500,00 USD
- create a supplier payment for Asustek for 1000,00 EUR
- use the payment matching smart button
- match the vendro bill of 1000,10 with the payment;
Bug:
Odoo says that the total amount in EUR matches.
Expected Behavior: An open-balance to write-off and prevent from
reconciling.
opw-1935414
closesodoo/odoo#31055
Let M be a mass_mailing.
For all messages m related to M, retry_failed_mail removes the mail
statistics
of m before putting M 'in_queue'.
Since there are no statistics on m, its recipient is returned by the
function
get_remaining_recipients when called by send_mail once M is processed.
However when keep archive is set to False, the 'mail.mail' records
are automatically removed. As a results their statistics are not
removed,
and thus these mails are not retried.
closesodoo/odoo#30158
- Create a Service article:
UoM = Day(s)
Invoicing policy = on ordered quantity
Tracking = Task in project
- Create a SO: 10 days, unit price = $100 and validate.
- On the task created, the initially planned hours is equal to
80 (10 * 8h).
- On this task, timesheet some hours with several employees:
15 hours
10 hours
10 hours
The `timesheet_revenue` on analytic lines is incorrect:
1000
0
0
It should be:
187.5
125
125
The unit conversion between days and hours is not performed...
opw-1925320
closesodoo/odoo#31062
The tax for 8% is used in the northern border zone of Mexico
Is a new tax and must be used in the DIOT report and in the CFDI for
sales.
closesodoo/odoo#31046
With the control panel refactoring, the auto_complete widget was set on
a different target, which caused issues with the search bar: the event
handlers for the search bar were triggered before the handlers for the
auto_complete widget.
With this commit, we make sure they are handled in the proper order.
Also, a small piece of code that was supposed to check the position of
the cursor was lost.
closesodoo/odoo#30795
Purpose
=======
A date field not marked as "mandatory" could not be left blank in the survey.
That was caused by the form returning "Invalid date" instead of an
empty value when submitting.
closesodoo/odoo#30788
When creating a leave, we usually check/create activities for the
concerned users, this is fine when creating one leave.
However it starts to become a problem when trying to create leaves in
batch using the by company or by department holiday_type as the number
of leaves created in batch can become quite big.
Now when we create leaves in batch, we do not check for the activities,
which will fasten a lot the creation.
Another problem is that when someone defined a leave on the very day you
want to create such a request, then it will crash, this can lead to
waste of time and resources.
Now we raise an error before trying to create the leaves in case of
conflict.
NB: Tested with +- 320 records, took 20 seconds instead of more than 10 minutes.
Task: 1934383
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
closesodoo/odoo#30625
When creating a leave, we usually check/create activities for the
concerned users, this is fine when creating one leave.
However it starts to become a problem when trying to create leaves in
batch using the by company or by department holiday_type as the number
of leaves created in batch can become quite big.
Now when we create leaves in batch, we do not check for the activities,
which will fasten a lot the creation.
Another problem is that when someone defined a leave on the very day you
want to create such a request, then it will crash, this can lead to
waste of time and resources.
Now we raise an error before trying to create the leaves in case of
conflict.
Task: 1934383
When uninstalling a module, the messages linked to the records
of that module are not deleted leading to ghost messages when
reinstalling the module.
This is due to the lack of foreign keys in the definition of the
chatter making it impossible to cascade delete.
opw-1928208
closesodoo/odoo#30798
Activate multi-company, deactivate the common contact book.
Create a PO P with user U1 in company A. Switch to company B.
User U2 in company A tries to send P by email.
Rendering of the template fails, because it tries to access object.create_uid,
which breaks multi-company record rules.
We add a sudo in the template so that it works as intended.
opw 1930521
closesodoo/odoo#30789
- Create a product P with:
Costing Method Average Price
Inventory Valuation Perpetual (automated)
- Create a component C with, costing 10.
- Create a BOM for P:
1 Unit of C
- Create a MO for P, validate
=> a journal entry of 10 is created
- Modify the BOM for P:
2 Units of C
- Create a MO for P, validate
=> a journal entry of 15 is created
The journal entry should be 20.
opw-1928342
closesodoo/odoo#30766
With a portal user, receive an email that says "Go to lead/opportunity"
and click on the link
The link's url is /mail/view which is the generic access controller
Before this commit, the user is redirected to the backend,
with fireworks of access errors
After this commit, the portal url is opened
As a side note, in master crm.lead should implement portal.mixin
OPW 193509
closesodoo/odoo#30762
Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
Set the user as admin instead of root, othrewise the stage list looks
empty.
opw-1963212
closesodoo/odoo#32361
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Improve the implementation of IoT.
Allow both-direction communication between iot box and devices.
task: 1906910
closesodoo/odoo#30440
Signed-off-by: Christophe Simonis <chs@odoo.com>
Add Cups configuration to not share printers to the network by default.
When multiple IoTBoxes were on the same network they would share printers
with each other, creating multiple duplicates of the same printer.
When we are on HTTPS and we want to connect a box with the scan
we need to accept manually the certificate of the box.
With this commit we don't need to accept manually the certificate.
We don't have problem of mixed content if we use the onload method of Image object
So we load a image and put on parameter the token of the odoo DB to make a connection.
This loop try to get "screen_url" from "URL_SERVER"
So IoT Box need to be connected to the same network as "URL_SERVER". ( Inetrnet or locally )
If can not reach "URL_SERVER" he return a default screen_url
When IoT Box is wired connected there are no problem.
But with Wifi the wireless service take some time to by enabled.
With this fix the loop wait 1 second on every loop.
So if can not reach "URL_SERVER" in 30 seconds he return a default screen_url
Improve the implementation of IoT.
Allow both-direction communication between iot box and devices.
Now a device can send its value / status as soon as it changes. Not only when he receives a request.
Now the box have only 3 routes:
/hw_drivers/action
parameter: session_id, device_id, data
used to ask at a device to make a action (take picture, make print, ect...)
/hw_drivers/event
parameter: listener
listener is a dict where you have the session_id and a list of device_id to listen
this route wait to answer that we call device_changed for a device_id with data or value
/hw_drivers/box/connect
parameter: token
used to register the box to a Odoo database
token contain the url of Odoo database and a unique number that allow the IoT Box
to connect box in the hour
task : 1906910
Steps to reproduce the bug:
Let's consider that we are in 2019
- Create two customer invoices: I1 and I2
- I1 with invoice date = 2 april 2019 and amount = 100€
- I2 with invoice date = 2 april 2018 and amount = 1000€
- Go to Reporting > Invoices
- Click on widget "Time Ranges" and set "Based on" Invoice Date and "Range" This Year "Compare To" Previous Year
Bug:
The untaxed total for previous year was 1100€ instead of 1000€ because it counted previous year and this year.
opw:1962027
closesodoo/odoo#32331
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
The labels Request for Quotation and Purchase Order were not displayed.
opw:1958631
closesodoo/odoo#32281
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
- Set an internal location as a return location
- Create a SO with a dropship product, validate and deliver
- Return the product, and choose the internal location as the return
location.
The received quantity on the PO is counted twice.
Since the return is an 'in' move linked to a PO, it is automatically
counted as incoming quantity.
This case is quite specific, so we explicitly add an exception in case
the origin move was a dropship, but the return is not a returned
dropship.
opw-1958228
closesodoo/odoo#32205
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
On the line chart of google analytics account, we have a tooltip with
lines ({date}
sessions: {number of session}) overlapping and going
outside of the modal width.
This does not happen on google examples, the only fix found is to
display the tooltip in HTML instead of SVG.
opw-1961605
closes#32285
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
This partially reverts commit e2e27b41ad.
The commit changes the DOM structure in order to pretty print both
amount (value without tax, B2B setting) and total price (value with tax,
B2C setting). Actually having both (B2B and B2C) is a client
misconfiguration and we do not support that, furthermore changing the DOM
structures can break inherited templates.
The said commit was also fine tunning 716ff76, the fine tune is
related the the removal of the dynamic colspan attribute. The section,
note and subtotal should take the entire width of the table, setting the
colspan to an abritary maximum ensures they fill the entire width.
closesodoo/odoo#32194
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Before this commit, the duration_unit view attribute was not present in the gantt RNG
But the JS code in the framework and in Studio allow for modifying it
So, this commit makes it an optional view attribute
OPW 1946216
closesodoo/odoo#32133
Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
The HSN code is a code that internationally identify a precific product.
Presently each code for each product is print in the invoice summary.
After the fix it does have a dedicated column in the invoice so it is
print along the product is defines.
opw-1941077
closesodoo/odoo#32042
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
The field incoterms_id is made redundant by the field incoterm_id introduced in
b5bb5bd421. As such, it has been removed in master at: 569a498d36
We make this field invisible,
and synchronize the invoice incoterm_id with the sale order incoterm.
opw 1935573
closesodoo/odoo#32039
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
Modify the suggested products of a quote template
Before this commit, the description of the line was only filled with the
product name
After this commit, the sale description is included
OPW 1945131
closesodoo/odoo#31425
Before this patch, if an m2m's relation field pointed to a model that
was to be deleted, the deletion of the aforementioned model wouldn't
trigger the m2m's deletion, which would lead to the registry crashing.
With this patch, whenever an ir.model is being unlinked, a check is
performed to verify that no other fields (m2m or otherwise) have this
model as a comodel, and if they do, they are unlinked as well.
closesodoo/odoo#30230
Adding event listener in on_attach_callback need to be removed
in on_detach_callback.
Before this commit on_detach_callback was not implemented in control panel.
After this commit we can use on_detach_callback.
Needed for task ID: 1934261
closesodoo/odoo#30758
Task 1930403
Purpose:
A suspense account is an account in the general ledger that temporarily stores any transactions for which there is uncertainty about the account in which they should be recorded. Once the accounting staff investigates and clarifies the purpose of this type of transaction, it shifts the transaction out of the suspense account and into the correct account(s). An entry into a suspense account may be a debit or a credit.
The Chosen Odoo approach (macro) for this case is
1) from bank statement -> reconciliation widget -> reconciliation model
2) create move that have a dedicated checkbox
3) be able to reopen the bank statement line "like if there is no linked account move" and finally reconcile the transaction with the good invoice/bill (we can reprocess account move "to check")
4) when we reprocess, Instead of creating an account move : Check if there is an "to check" existing linked account move and remove all the account move lines then replace them by the good ones --> we want to keep the sequence
closesodoo/odoo#30486
Fixes related to commit 748b9072d6
* fix template still having an unnecessary t-else whereas the t-if has
been removed;
* move order by strategy on right class;
* fix access rights on intermediate model between channels and partners. It
should be accessible to website publisher as they will have so manage
channel members;
* fix some typos;
closesodoo/odoo#30949
Purpose
=======
The 'state' field for a member of a channel did not imply anything functionally
so we decided to remove it. It allows to remove an unnecessary computed fields.
ACLs are updated accordingly.
If needed, we will soon be able to check partner_ids that have ordered but
not paid a channel / course product by searching the related 'sale.order' model
for such products.
Due to a wrong order of operations, after splitting an anchor (press
ENTER), the range was setting on the first anchor. Now it sets on the
second one (as the code - but not the tests - suggests was supposed to
happen). Tests were adapted to reflect that change.
In tests, after splitting the anchor, `Wysiwyg.getValue` didn't always
properly clean up `data-original-title`. Targetting empty
`data-original-title` attribute instead of `aria-describedby` attribute
should fix that issue.
closesodoo/odoo#30923