Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[16.0] [REF] Purchase Order: button confirm partner no subscribe #102

Draft
wants to merge 76 commits into
base: 16.0
Choose a base branch
from

Conversation

ThomasBinsfeld
Copy link
Member

No description provided.

Megaaaaaa and others added 30 commits December 17, 2024 09:03
Description of the issue this commit addresses:

Due to the covid's economical impact, Luxembourg's government decided to apply
a 1% diminished rate to some taxes to help companies recover from the crisis.
Now that this period is over, those rates aren't right anymore and should be
brought back to their original value in the OSS mapping.

Desired behavior after this commit is merged:

Rates that had been diminished by 1% are back to their original value.
16% -> 17%
7% -> 8%

task-4369658

closes odoo#189444

Related: odoo/enterprise#75650
Signed-off-by: Wala Gauthier (gawa) <[email protected]>
When the user tries to reset the password, a traceback will appear.

Steps to reproduce the error:
- Install "auth_signup"
- Configure "Outgoing mail server"
- Now Log out
- Click on Sign in > Reset Password > Enter your email >
  Click on "Reset Password" twice

Error: A traceback appears:
"InFailedSqlTransaction
current transaction is aborted, commands ignored until end of transaction block"

After this commit, user can not click on "Reset Password" button multiple times.

sentry-5661309399

closes odoo#184862

Signed-off-by: Florian Vranckx (flvr) <[email protected]>
As creating/obtaining a registry does not set the `dbname` context variable on the current thread,
it must be set manually for the standalone tests to run correctly.

closes odoo#190330

Signed-off-by: Florian Vranckx (flvr) <[email protected]>
Steps to reproduce:

- Insert a pivot in a spreadsheet (e.g. CRM Lead)
- Create a global filter, set a value on it (filter on CRM Stages -> Select new)
- Open the pivot side panel, update something (move up a dimension)
- Save
=> The domain does not take the global filter into account

closes odoo#190781

Task: 4398645
Signed-off-by: Rémi Rahir (rar) <[email protected]>
Before this commit:
When user created Sales Credit Note, and
send it for E-waybill. On the portal, it
shows as a Supple Type as `Inward` instead
of `Outward`.

In this commit:
We fix the above issue.

opw-4402929

closes odoo#190805

Signed-off-by: Josse Colpaert (jco) <[email protected]>
Steps to reproduce:

- Insert a list in a spreadsheet (e.g. CRM Lead)
- Create a global filter, set a value on it (filter on CRM Stages -> Select new)
- Open the list side panel, update the domain (add Marc Demo as Salesperson)
- Save
=> The domain does not take the global filter into account

Task:4398467

closes odoo#190782

Signed-off-by: Rémi Rahir (rar) <[email protected]>
Issue:
When the product "Service on Timesheet" is linked to company A, archiving products in any other company causes an error to occur.

Steps to reproduce:
- Install both Sales & Timesheets modules
- Create a second company
- On the product form, link the "Service on Timesheet" product to the second company
- Archive a product from the first company

Cause:
The "Service on Timesheet" product is necessary for the Timesheets app to work.
Having linked it to one company restricts its access to others.

Solution:
While this is expected behaviour, I suggest blocking the user from linking the product to a company to prevent similar issues.
I propose doing so since archiving and deletion are already blocked.
This change still allows unlinking from the company through the UI.

Ticket:
4270086

closes odoo#188251

Signed-off-by: Xavier Bol (xbo) <[email protected]>
The aim of this commit is updating the COA and the account
groups for the new legislation in France.

task-4040854

closes odoo#190065

Related: odoo/enterprise#75373
Signed-off-by: Wala Gauthier (gawa) <[email protected]>
Steps to reproduce:

- In Settings, enable "Multi-Step Routes"
- In the Routes, unarchive "Replenish on Order (MTO)"
- Create a storable product P with routes: MTO, Buy and a set vendor
- Create and confirm a sale order with one line:
    - 2 x product P
> A delivery has been created.
- Cancel the SO, set it back to quotation and confirm it once more.
> The first delivery has been cancelled and a new one has been created
- Decrease the quantity of the SOL from 2 to 1 and save
> Issue: The delivery from stock to customer was not updated but an
> incoming picking was created from customer to stock.

Cause of the Issue:

When confirming the SO, `_run_pull` will be called and will create an
outgoing move SM01 based on our rule. Initially and because of the rule
used for its creation, the `procure_method` of this move is
`make_to_order`. However, once the SO is cancelled, this move
`procure_method` will be updated to be `make_to_stock`:
https://github.com/odoo/odoo/blob/ef161136fe2034752c2cc923cb892e933b78d4c0/addons/stock/models/stock_move.py#L1794-L1798
Once the SO is reset to draft and confirmed once more, a new outgoing
move SM02 will be created by the `_run_pull` using the same rule as SM01
Then, when the quantity of the SOL is decreased from 2 to 1, a negative
outgoing move SM03 will be created by the `_run_pull` and is expected
to be absorbed by SM02 during the `_merge_move` of its `action_confirm`:
https://github.com/odoo/odoo/blob/ef161136fe2034752c2cc923cb892e933b78d4c0/addons/stock/models/stock_move.py#L1397

However, the merging process will fail since:

While the `procure_method` is a valid comparaison key for negative
moves, it is a tricky field to use as the `procure_method` present on
the move we want to merge with might not correspond to the
`procure_method` set by our rule (`make_to_order` for SM03). The purpose
of these lines is therefore to update the `procure_method` of negative
moves to match valid merging candidates:
https://github.com/odoo/odoo/blob/ef161136fe2034752c2cc923cb892e933b78d4c0/addons/stock/models/stock_rule.py#L260-L269
However, SM01 is not a valid merging candidtes as it was cancelled
and its `procure_method` has changed during its cancellation so that
it will wrongly update the `procure_method` of SM03 to `make_to_stock`:
https://github.com/odoo/odoo/blob/ef161136fe2034752c2cc923cb892e933b78d4c0/addons/stock/models/stock_rule.py#L267-L268
and will therefore not match its only valid merging candidate: SM02.

opw-4368599

closes odoo#190824

Signed-off-by: William Henrotin (whe) <[email protected]>
…axes:

Previously, settling a sale.order from the POS of a Belgian company
would auto check the invoice option before paying.

Steps to reproduce:
-------------------
* Install `l10n_be_pos_cert`
* Switch to the Beligian company
* Crete a quotation in **Sale** app
* Add any partner and any product, remove all taxes for the product line
* Save
* Open pos shop
* Settle the order
* Go to the payment screen
> Observation: The invoice button is already selected.

Why the fix:
------------
This invoice option was auto selected since this commit: c760fbb

The following commit 3a5e222
updates the previous one as the invoice enforcement is only needed when we have
intracom taxes on the SO. Thus when no intracom taxes apply we can still
decide wether or not to invoice. We fallback on the default behavior which
is to have the invoice button un-selected.

opw-4334095

closes odoo#188400

Signed-off-by: Joseph Caburnay (jcb) <[email protected]>
*: mass_mailing

Users with website_designer permissions but without access to the email
marketing app (mass_mailing.group_mass_mailing_user) encountered an
access error when editing pages with "Newsletter" blocks.

This commit fixes the issue by granting read-only access to the
mailing.list model for the website_designer group. This ensures they can
edit pages containing "Newsletter" blocks without exposing full email
marketing functionality or compromising security.

Steps to reproduce:

- Install the website and mass_mailing modules.
- Remove the "Email Marketing: User" access rights from a user in
  Settings > Users.
- Open the Website Editor.
- Add a "Newsletter" block to a page.
- Observe: An access error is triggered.

opw-4201455

closes odoo#190188

Signed-off-by: Quentin Smetz (qsm) <[email protected]>
A stock valuation issue occurs when a landed cost is present in a bill
lines of a purchase order (without the `stock.landed_cost` created)
and the receipt note is validated after confirming the bill.

Steps to reproduce:
- Create a product with automated inventory valuation and AVCO.
- On the purchase tab, set the control policy to “on ordered quantity”.
- Create a purchase order with this product:
  * Quantity: 1
  * Unit cost: $10
- Validate the PO.
- Create a bill and add a landed cost line:
  * Quantity: 1
  * Cost: $25
- Validate the bill.
- Validate the receipt note.
- Check the valuation:
  * The unit value will be incorrect, calculated as $17.5
    ((10 + 25) / 2).

This issue is caused by commit
odoo@5d06785.

The solution is to include only landed cost lines from bills
where the `stock.landed.cost` is created and validated.

opw-4384070

closes odoo#190815

Signed-off-by: William Henrotin (whe) <[email protected]>
Commit [1] broke the tooltip about domain configuration on the website
switcher. They just did not appear ever anymore.

At the same time, it moved a translatable term from XML to JS, which
apparently works without losing translations... but it also changed the
actual term by removing the "." at the end, losing the translations.
This commit also restore that ".", making existing translations work
again automatically, and it also patches the ".pot" to notify about the
translatable term move.

[1]: odoo@dbd2f89

closes odoo#190877

Related: odoo/design-themes#1030
Signed-off-by: Quentin Smetz (qsm) <[email protected]>
In odoo#113577 this view was added in the wrong module.

Not only people using `l10n_it_edi` need to debug this information, but also those using EDI for other countries.

Leaving empty view in `l10n_it_edi` for backwards compatibility.

@moduon MT-8204 OPW-4362382

closes odoo#189673

Signed-off-by: Antoine Dupuis (andu) <[email protected]>
Previously, the space between a field with the avatar widget and the
field underneath changed depending on whether a user is set or not which
creates a small flicker.

After this commit there will be no flicker when a user is set on an
avatar field.

Steps to reproduce:
- Install Project app
- With the vertical dots button, open a project's settings (form view)
- Set/Unset the "Project Manager"
=> a small vertical flicker with the underneath field
- Open one of the project's tasks
- Eventually, add a field under "Assignees" if none is present
- Set/Unset the "Assignees"
=> a small vertical flicker with the underneath field

task-3996557

closes odoo#186383

Signed-off-by: Pierre Paridans (app) <[email protected]>
Currently, when using pricelists, if you change the price of a product inside
the session, it will show a discount value on the receipt.

Steps to reproduce:
-------------------
* Activate advanced pricelist
* Modify the shop's default pricelist
  * Discount policy: Show public price & discounts
  * Add a rule: 10% discount on all products with min qty of 10
* Open shop session
* Add any product qty 1
* Manually change price to a higher amount
* Pay the order
> Observation: On the receipt we can see a negative discount value.

Why the fix:
------------
Changing the price of a product through the price button in the session
should never be considered as a discount. Lines for which the product price
was manually set should not be counted toward overall discount (positive or
negative).

opw-4366651

closes odoo#190785

Signed-off-by: Adrien Guilliams (adgu) <[email protected]>
Currently, a connection error shows when the ReadTimeout error occurs
when calling the JSON-RPC endpoint in IAP.

This commit will show users a timeout error when a "ReadTimeout" error
is found in the JSON response in the RPC call.

sentry-6059323528

closes odoo#190841

Signed-off-by: Louis Baudoux (lba) <[email protected]>
To allow compatibility between all db versions and new IoT Box images, we need
to ensure that `path_file` method returns the path starting from `/home/pi`
instead of the path of the service user (which is `/home/odoo` in newer images).

closes odoo#190963

Signed-off-by: Yaroslav Soroko (yaso) <[email protected]>
We have a constraint enforcing the presence of a zip code on both
the sender and the receiver of the invoice but we can't trace the
origin of this constraint. It seems to not exists anymore in the doc
or the schematrons. We therefore remove it as it cause unnecessary
frictions when invoicing.

task-no (feedback from our prod + tsb)

closes odoo#191129

Signed-off-by: Laurent Smet (las) <[email protected]>
This commit allows dropping an "inner content" block near an image link.

- Go to the homepage in edit mode.
- Drag and drop a "text-image" block onto the page.
- Drag and drop a "badge" (or any other "inner content" block) under the
image. This is possible, and it's the intended behavior.
- Click on the image and add a link to it.
- Bug: Try dragging and dropping a "badge" under the image again, it is
no longer possible.

opw-4273436

Part-of: odoo#190732
Signed-off-by: Quentin Smetz (qsm) <[email protected]>
This commit prevents dropping a building block into an image field.

There is no known case in V16.0 where the issue can be reproduced, but
it must still be fixed in V16.0 because it should not be possible
anyway.

For example, in V16.0, if an image field had a div as a parent, adding
the "row" class to the parent of that div would allow dropping blocks
into the image field. This was because the selector defining where an
image could be dropped is ".row > div:not(.o_grid_item_image) > img" in
V16.0.

However, in V17.0, since this commit [1], the selector was changed, and
the ".row >" part was removed, which caused the bug to appear.

Steps to reproduce from V17.0:

- Go to the "/shop" page.
- Click on one of the products to go to its product page.
- Enter edit mode.
- Bug: It is possible to drop any "inner content" block into the
"product" image field.

[1]: odoo@507b80a

opw-4273436

closes odoo#190732

Signed-off-by: Quentin Smetz (qsm) <[email protected]>
### Contains the following commits:

odoo/o-spreadsheet@9d0e3350b [REL] 16.0.56 Task: 0
odoo/o-spreadsheet@5f0a950b2 [FIX] sheet view: DELETE_SHEET in initial revisions Task: 4405573
odoo/o-spreadsheet@38c2a08d2 [FIX] cell: keep non-breaking spaces Task: 4403607
odoo/o-spreadsheet@f535004d4 [FIX] figure: crash on deleting dragged figure Task: 4329240
odoo/o-spreadsheet@a70d1c065 [FIX] composer: topbar composer z-index Task: 4246966
odoo/o-spreadsheet@32459cb66 [FIX] config: Update task url Task: 0

closes odoo#191104

Related: odoo/enterprise#75874
Signed-off-by: Rémi Rahir (rar) <[email protected]>
Co-authored-by: Anthony Hendrickx (anhe) <[email protected]>
Co-authored-by: Alexis Lacroix (laa) <[email protected]>
Co-authored-by: Lucas Lefèvre (lul) <[email protected]>
Co-authored-by: Dhrutik Patel (dhrp) <[email protected]>
Co-authored-by: Adrien Minne (adrm) <[email protected]>
Co-authored-by: Mehdi Rachico (mera) <[email protected]>
Co-authored-by: Rémi Rahir (rar) <[email protected]>
Co-authored-by: Pierre Rousseau (pro) <[email protected]>
Co-authored-by: Vincent Schippefilt (vsc) <[email protected]>
Steps to reproduce:
- Install "l10n_ch" and switch to "CH company"
- Create a new invoice with a swiss partner and confirm
- Click "Send & Print" and select "Send by Post", confirm
- Go in Setting > technical > Email > Snailmail Letters and find your invoice
- Download the PDF document
- The QR code and several other information are missing

Cause:
The snailmail module is setting specific paper format (base.paperformat_euro) when generating the PDF.
https://github.com/odoo/odoo/blob/16.0/addons/snailmail/models/ir_actions_report.py#L20-L22
But the Swiss reports have their own formats to display the QR code correctly. So the generated PDF have its QR code on another page that is lost when merging the PDF for the header and the one with the QR code.

Solution:
Force the paperformat for the two "IrActionReports" responsible for the page with the Qr-code.

opw-4399150

closes odoo#190881

Signed-off-by: de Wouters de Bouchout Jean-Benoît (jbw) <[email protected]>
Issue:

Certain carrier's API processes validity checks and parcels generation
one picking at a time so that on our end we are forced to send requests
one at a time at the end of the the `_action_done`:
https://github.com/odoo/odoo/blob/e4f68fc6eb2a666a07b6627b9dc0ec575b79d1e3/addons/stock/models/stock_picking.py#L918
https://github.com/odoo/odoo/blob/e4f68fc6eb2a666a07b6627b9dc0ec575b79d1e3/addons/delivery/models/stock_picking.py#L192-L196
However, since a UserError of any of the picking will cause a rollback
of the entire batch on Odoo's side, pikcings might end up being
processed on the carrier side but non validated on Odoo's side during
batch validation.

Steps to reproduce:

- Configure sendcloud shipping method + website + payment providers
- In your sendcloud configuration select sendcloud shipping product to
  not be able to handle products with a weight exceeding 10 kg e.g;
  bpost @home (0-10kg).
- Create 2 storable products with respective weigth 1 and 100 kg.
- Publish them on the website for sale.
- Open a private window, make an order via the website for the 1kg
  product by filling your cart and use sendcloud as carrier.
- Repeat the operation with the other product to generate a seconde SO.
- Back to your main window > Inventory Overview > Delivery Orders
- Select both deliveries > Action > Validate (in batch)

> While the first delivery order was processed on carrier side
> (can be checked on sendcloud's website)
> the UserError of the second DO rollbacked its validation in Odoo.

Fix:

As such, and since the carrier requests needs to happen after we have
validated the pickings in Odoo, we should avoid any rollback of the
transaction once any requests has already been successfully treated on
the carrier side.

Note:

It is not possible restructure the code to use `senf.env.cr.savepoint`
in a loop in order to reset the validation of pickings that are not
valid on the carrier side because savepoints can't be used more than 64
times before the server crashes and hence can't be used in record loops.

opw-4357325

closes odoo#190320

Related: odoo/enterprise#75502
Signed-off-by: William Henrotin (whe) <[email protected]>
…chat

Currently a 'ParseError' is arising when user installs the 'website_livechat'
module after deleting the 'YourWebsite.com' channel from 'im_livechat' module.

To reproduce this error:
- Install 'im_livechat' module.
- Open the application and  delete 'YourWebsite.com' channel by going to
'Configure Channel'
- Now try to install the 'website_livechat' module.
- The error appears in the log.

Error: `ParseError
while parsing /home/odoo/src/odoo/18.0/addons/website_livechat/data/
website_livechat_data.xml:4, somewhere inside
<record id="website.default_website" model="website">
           <field name="channel_id" ref="im_livechat.im_livechat_channel_data"/>
       </record>`

This commit solves the above issue by using 'forcecreate=False' to bypass
record creation if it violates checks.

sentry-6107471185

closes odoo#189566

Signed-off-by: Ayushmaan Verma (ayve) <[email protected]>
This fixes the simple, yet very common case where:
- You are creating an expense for one of your employee
- The partner of said employee has its field `parent_id` set
  to be your own company
- The expense move commercial_partner_id would then always be yourself
- You never pay your employees, only yourself
- ???
- Jail

closes odoo#187778

Task-id: 4345465
Signed-off-by: de Wouters de Bouchout Jean-Benoît (jbw) <[email protected]>
Authentication data was accidentally logged when sending requests to the
Authorize API. This change stops logging such data to avoid security breaches.

opw-4311870

closes odoo#191219

Signed-off-by: Antoine Vandevenne (anv) <[email protected]>
Issue:

When printing a Purchase Order or Quotation in a company using the Indonesian tax chart, a tax code (Indonesian tax description) appears instead of the tax percentage.
This behaviour shows up in 16+

Steps to Reproduce:

1- Ensure the company uses the Indonesian chart of accounts.
	- Install the l10n_id module.
	- Go to Settings > Taxes and set the Fiscal Country to Indonesia.
2- Navigate to Purchase and create a Purchase Order.
3- Add a product line and select an Indonesian tax (ex: 11%).
4- Print the Purchase Order.

The printed Purchase Order displays the tax code (description) instead of the tax percentage. The same behavior occurs in the Sales module regarding quotation printing.

The PO (chkl) suggested that changing only the description field to achieve the desired results might be a good idea

opw-4333143

closes odoo#187703

Signed-off-by: Habib Ayob (ayh) <[email protected]>
Users may give gift cards to their customers. Acting like a payment
method, gift cards will lower the total amount of a sale order up to 0.
Currently, in case of fixed tax applied in the order, the tax amount
cannot be covered with the card balance

Steps to reproduce
- Generate a Gift Card of 100$
- Create a Sale Order with a product having:
  - price: 90$
  - quantity: 1
  - A fixed tax of 10$
- Add the gift card to the order

Issue: Fixed tax amount will be left uncovered.
This is an issue because when using the gift card (or anyhow having the total 0),
it means the fixed tax cost is supported by the merchant so it should be
covered by the gift card

opw-4422678

closes odoo#191321

Signed-off-by: Morgane Demesmaeker <[email protected]>
…allow extension

Related to OCA/account-reconcile#761

TT51885

closes odoo#188808

Signed-off-by: Thomas Becquevort (thbe) <[email protected]>
deso-odoo and others added 30 commits December 27, 2024 11:00
Commit [1] handled cases of pressing enter at the edge of an anchor, which is a
child of an unbreakable element. The commit inserted the `br`'s after anchors;
however, it missed the situation where the anchor tags are block elements nested
inside an unbreakable element inside a `li`. In this specific case, inserting
two `br` tags after a anchor block resulted in the creation of two new lines.
This commit handles that case by only inserting one `br` tag after the anchor,
rather than both.

[1]: df6f8dd

task-3631910

Part-of: odoo#171469
Signed-off-by: David Monjoie (dmo) <[email protected]>
This commit ensures that the link popover closes when the cursor moves outside
the link.

task-3631910

closes odoo#171469

Signed-off-by: David Monjoie (dmo) <[email protected]>
Behaviour before commit:

In website, when trying to apply color or any style on a link
from toolbar whole link gets selected. This happens because
in wysiwyg.js destroyLinkTools method gets called when user
clicks on toolbar to apply color.

Behaviour after commit:

Now, any style can be applied on a link without selecting
whole link.

task-4072867

closes odoo#180616

Signed-off-by: David Monjoie (dmo) <[email protected]>
**Problem**:
After this commit:
odoo@cf8f0ff
the toolbar is hidden when it overflows (`this.toolbar.classList.toggle('d-none', distToScrollContainer < OFFSET / 2);`). This behavior is not suitable for selections containing elements with a height that exceeds the viewport, as the toolbar becomes inaccessible.

**Solution**:
Ensure the toolbar is always visible, even when overflowing. In such cases, reposition the toolbar to align with the top of the selection, providing consistent accessibility.

**Steps to reproduce**:
1. Add an image to the editor that overflows the viewport.
2. Select the image.
3. Observe that the toolbar does not appear.

opw-4398551

closes odoo#190465

Signed-off-by: David Monjoie (dmo) <[email protected]>
… lines

***Issue 1***

Trying to validate a receipt related to a landed cost account line for
a product using a uom from a different uom category will raise a
userError that do not allow you to validate the receipt.

Steps to reproduce:

- Create a product:
 - real time property valuation
 - average cost method
 - on ordered quantities control policy
 - UOM from an other category han "Unit" e.g. kg
- Create and confirm a PO for 100 k units at 1.35 each
- Create an invoice for 23 k, receive 23k units and backorder
- Create a landed cost on the invoice for 23k units in the company
   currency units
- Post the invoice
- Create a second invoice for 27k units and post it
- Try to validate the receipt of the 27k units more units
> UserError: The unit of measure Units defined on the order line doesn't
> belong to the same category as the unit of measure kg defined on the
> product.

Cause of the issue:

Since Commit 32543ce
The landed_cost account lines related to a given stock move are also
considered in the `_get_price_unit` call of stock moves:
https://github.com/odoo/odoo/blob/1b999e4b358eabe80cb3d636cd7bc348c5b85a1b/addons/purchase_stock/models/stock_move.py#L60
https://github.com/odoo/odoo/blob/1b999e4b358eabe80cb3d636cd7bc348c5b85a1b/addons/stock_landed_costs/models/purchase.py#L11-L16
However, the uom related to the landed cost account line might not match
the uom category of the product related to the move. As such, this
line will raise a UserError:
https://github.com/odoo/odoo/blob/da1f44c2296486c0267a7bdbbe3a314ada3aa679/addons/purchase_stock/models/stock_move.py#L70
https://github.com/odoo/odoo/blob/da1f44c2296486c0267a7bdbbe3a314ada3aa679/addons/uom/models/uom_uom.py#L223-L227

***Issue 2***

Steps to reproduce

- Create a product invoiced on ordered quantities
- Create a PO and a bill for it, post the bill
- Receipt half the quantity
- Add a landed cost product on the PO, create a second bill for this
  landed cost product. Create and validate the landed cost.
- Receipt the second half quantity.

Issue:

The valuation of the second transfer is too low

Cause of the Issue 2:

To get the price unit for "on ordered qty" policy, We compute the ratio
of already receipt value on already invoiced value:
https://github.com/odoo/odoo/blob/4f6353ec8a7306fbf63e95e8e02248d72f413aa3/addons/purchase_stock/models/stock_move.py#L84
The issue is that the receipt value is increase by the landed costs
value because the receipt valuation layer is linked to the landed cost
valuation layer. But the product invoice line is not linked to the
landed costs invoice line. Resulting in a invoice value under valuated.

This commit will ingnore the receipt values coming from landed costs so
that the landed costs value will be added to the total invoiced value
and not removed from the value here:
https://github.com/odoo/odoo/blob/cfb7a3593c5a4b313bdfd8628fe1b0dfe7e73823/addons/purchase_stock/models/stock_move.py#L72
*if* the landed cost has it's own invoice line.

Revert Commit 32543ce
Authored-by: Whenrow <[email protected]>

Issue 1: opw-4389366
Issue 2: opw-4354498

closes odoo#191225

Signed-off-by: Adrien Widart (awt) <[email protected]>
Before this commit:

When multiple types of lists were selected and the deleteBackward operation was
performed, the list type remained unchanged.

After this commit:

When deleteBackward is pressed with multiple types of lists selected, and all
selected content is removed, if the anchor node's list item is empty, the list
type will change to match the type of the list where the deleteBackward
operation started.

task:4187739

closes odoo#180687

Signed-off-by: David Monjoie (dmo) <[email protected]>
Previously, the "Images Subtitles" template in the Megamenu had an issue
where the images were stretching vertically to fill the container's
height.

Adding an additional class to the container fixes the styling and
maintains the images' correct aspect ratio.

task-4203427

closes odoo#182903

Signed-off-by: Benjamin Vray (bvr) <[email protected]>
Steps To Reproduce:
-> Go to Edit mode.
-> Drag & Drop Tabs Snippet.
-> Click in middle of tab's text and press "Enter".
-> Tab is split and and new Tab is created.

Issue Reason:
As tab's element fails isUnbreakable() check for 'Keydown'(Enter) event
which makes it possible to split the element. And issue is not specific
to Tab snippet but in other snippets where anchor tag and elements with
'btn' class or role attribute is 'button'.

Solution:
By modifying checks in isUnbreakable() for handling elements with anchor
tags and elements with 'btn' class or role attribute is 'button'.

This commit solves the issue of tab duplication in Tab Snippet and few
snippets in which there is already button and the said behavior is
observed are : Cover , Text - Image , Image - Text , Carousel , Donate
Now ( Button ) where anchor tag and elements with 'btn' class or role
attribute is 'button', in Masonry and Carousel snippet which adds button
through Add Element option and also when we add a button using /button
command in any snippets.

task-4316648

closes odoo#187014

Signed-off-by: Benjamin Vray (bvr) <[email protected]>
**Problem**:
When in `codeview`, calling `saveModifiedImagesPromise` creates the attachments and updates the DOM but does not update the `codeview`. As a result, the non-urgent save (`this.updateValue()`) uses outdated content from the `codeview`.

**Solution**:
Ensure that the `codeview` content is updated after saving attachments to reflect the latest changes.

**Steps to reproduce**:
1. Add an Image-Text snippet.
2. Save the snippet.
3. Resize the image.
4. Switch to code view.
5. Save.
6. Observe that the class `o_modified_image_to_save` is not removed from the image.

opw-4406195

closes odoo#191475

Signed-off-by: David Monjoie (dmo) <[email protected]>
Before this commit: the bg color of a table cell is set to a fixed value when
selected

After this commit: the selection will have a blue overlay color effect on the
selected cells with bg color

task-4398980

closes odoo#191366

Signed-off-by: David Monjoie (dmo) <[email protected]>
Issue:
in the Saudi Arabia localization, the delivery address is not displayed
on invoices even if `Customer Addresses` is enabled.

Steps to reproduce:
1. Go to settings and enable `Customer Addresses`.
2. Install the Saudi Arabia localization.
3. create an invoice with a delivery address other than the customer's.
4. Print the invoice.
5. notice that the delivery address is not displayed on the invoice.

Solution:
- Added the delivery address to the invoice report next to the QR code.

opw-4337379

closes odoo#190976

Signed-off-by: Kawtar Drissi El Bouzaidi (kdeb) <[email protected]>
Backport of [1]. Note that in 16.0, to reproduce the bug, you first have
to enter *website* edit mode, leave it, then go to mass mailing. Indeed,
there is another bug, fixed by [2] in 17.0 but it was decided to ignore
it in 16.0 as it is not critical and fixing it in 16.0 would be too
risky regarding custo and other things, as it requires to split/move
files from existing assets.

[1]: odoo@94a03db
[2]: odoo@dcf0880

closes odoo#192081

Signed-off-by: Quentin Smetz (qsm) <[email protected]>
Since [1], when an extra menu is displayed due to the top menu exceeding
its maximum width, the active class is no longer applied correctly. This
issue was introduced during the conversion from jQuery to vanilla
JavaScript.

Steps to reproduce:

- Enter the Website in edit mode.
- Navigate to Site > Menu Editor.
- Add several menu items until the menu exceeds its maximum width.
- Ensure that one of the items in the extra menu redirects to "Contact
  Us".
- Click on the "Contact Us" menu item.
- Open the dropdown menu (via the "+" icon) and observe that the
  "Contact Us" entry is not highlighted.

This commit resolves the problem.

[1]: odoo@0de6349

task-4428845
opw-4383641

closes odoo#191548

Signed-off-by: Aaron Bohy (aab) <[email protected]>
Steps to reproduce
==================

- Add a daterange widget to an x2many view (with studio)
- Open the picker
- Click on the next month

=> The picker closes

Cause of the issue
==================

The previous/next handler [0] rerenders the datetime picker.
By the time the list renderer intercepts the click, the ev target is no
longer connected to the DOM. This means that
`.closest(".daterangepicker")` returns nothing.

Solution
========

We can add a property `isFromDateRangePicker` to the event in the
capture phase and check that after the rerender.

---

[0]: https://github.com/odoo/odoo/blob/2a1857db4bee43ff266b4be279791c9b5c957085/addons/web/static/lib/daterangepicker/daterangepicker.js#L1231-L1253

opw-4375790

closes odoo#191914

Signed-off-by: Aaron Bohy (aab) <[email protected]>
Steps to reproduce:
- Install hr_timesheet (with demo data)
- Navigate to portal > timesheet
- Group by project

Issue:
When only the hr_timesheet module is installed and timesheets are grouped in the
portal view, the column alignment is broken due to an incorrect colspan.

Cause:
When groupby is applied, the colspan is manually set to 4, causing misalignment
between the header and row columns.

Fix:
This commit sets the last column's colspan to 2 when grouping is applied to fix the
alignment issue.

task-4294780

closes odoo#186532

Signed-off-by: Xavier Bol (xbo) <[email protected]>
…e wizard

Steps to reproduce:

1. Log in with a non-admin users
2. Open any Partner from
3. Click on Actions > Privacy Lookup

Bug:

```
You are not allowed to access 'Privacy Lookup Wizard' (privacy.lookup.wizard)
records.

This operation is allowed for the following groups:
	- Administration/Settings

Contact your administrator to request access if necessary.
```

Expected behavior:

The error message is correct. This feature should only be available to
Administrator users. Therefore, the action should be hidden accordingly.

closes odoo#150748

Signed-off-by: Yannick Tivisse (yti) <[email protected]>
And compress the arabic language

closes odoo#192210

Signed-off-by: Martin Trigaux (mat) <[email protected]>
This reverts commit ff37026
After which customer credit notes share the sequence with supplier credit notes.

Steps to reproduce:

- Open Vendor Bills journal and enable 'Use Documents?'
- Create a Bill with document type '(46) Factura de Compra Electrónica'
- Create the credit note
- In the Wizard: select 'Full Refund', Document Type 61, Confirm
- Document name will be 'N/C 000001'
- Now create an invoice with document type '(33) Factura Electrónica'
- Add a credit note for the invoice

Issue: Credit note name will be 'N/C 000002' but sequences should be
unique for move type

opw-4268371

closes odoo#192285

Signed-off-by: Josse Colpaert (jco) <[email protected]>
Scenario:

- install l10n_ch
- go to /report/barcode/?barcode_type=QR&value=&width=150&height=150&mask=ch_cross

=> the ch_cross mask (swiss cross that should be in the center) is not
in the center

Issue:

Reportlab QrCodeWidget has a fixed size to 32mm (with mm that is 72(ppi)
/ 25.4(1mm to inch) so ~2.83 pixels) and to get the widget to the full
size, a zoom is applied on the Drawing content (so on the QrCodeWidget).

Here are the zoom that are applied for several Drawing size:

- for 100 pixels: 100 / (32 * mm) => 1.012…
- for 256 pixels: 256 / (32 * mm) => 2.822…
- for 400 pixels: 400 / (32 * mm) => 4.409…

But in the code, the zoom is just hardcoded to mm (~2.83) which
corresponds to a barcode size of mm * 32 * mm => 257.127 pixels which is
kind of good enough for 256 pixels, but wrong for most other size.

In base code we only use 256 x 256 pixels so this is not much of an
issue unless someone want to use it for something else.

Fix:

With this commit, we apply the Drawing zoom (on which we have the
QrCodeWidget) to the ch_cross image.

Note:

Without the fix, the added test only fail on the third assertion for
each loop iteration, the farer we are from 257x257 pixels the bigger
the error is, for example for 256x256:

Result:   (38.45140, 38.45140, 52.25725984251969, 52.25725984251969)
Expected: (38.28288, 38.28288, 52.02823111111111, 52.02823111111111)

opw-4307177

closes odoo#192091

Signed-off-by: Antoine Dupuis (andu) <[email protected]>
**Problem**:
When selecting all content (`Ctrl+A`) in an empty editable area, the selection includes only a `<br>` element. This causes issues when interacting with non-selectable content inside the selection, leading to unexpected behavior.

**Solution**:
If the selection contains only on `br` element, reset the selection on click to avoid inconsistent states.

**Steps to Reproduce**:
1. Open the editor.
2. Press `Ctrl+A` to select all.
3. Click anywhere within the editable area to hide the toolbar.
4. Observe that the toolbar remains visible, and the selection state does not update.

opw-4438513

closes odoo#192084

Signed-off-by: David Monjoie (dmo) <[email protected]>
…y public holiday

to reproduce:
=============
- create a leave for an employee of 3 days
- create a public holiday that happens to be in the middle of the employee leave
- check work entries for the employee on that period
-> only work entries of the public holiday are created

Problem:
========
- when the public holiday was created we reevalute the leaves that can be
affected by the public holiday, so they are set to `state='draft'` which
will unlink resource leaves records that are linked to them, but these
resource leaves are not recreated at the end of the process

Solution:
=========
when we unlink the resource leaves we should check if the leave is not
fully covered by the public holiday and recreate the resource leave if
it was previously validated

opw-4353988

closes odoo#191552

Signed-off-by: Yannick Tivisse (yti) <[email protected]>
- add check on `employee_id` to the contract domain to exclude templates from the contract count on the stat buttons as it gives misleading info about the real contracts count

closes odoo#192145

Task: 4402795
Signed-off-by: Yannick Tivisse (yti) <[email protected]>
If you create a pricelist rule with a discount that has a valid date range,
that discount is only applied if the SO was created in that range.
Even if it is confirmed within the valid date range.

Fix:
For website_sale orders we consider the date to be the current time
when computing the price.

opw-4375643

closes odoo#192361

Signed-off-by: Victor Feyens (vfe) <[email protected]>
In 862ede4 the added test depended on
being in year 2024, so it failed in eg. 2025.

With this change we don't harcode the invoice name in assert data.

runbot-error-111390
opw-4050777

closes odoo#192192

Signed-off-by: Xavier Dollé (xdo) <[email protected]>
Steps to reproduce:

- Render the Contact qweb widget with fields ["phone", "website"]

```py
Contact = self.env["ir.qweb.field.contact"]
partner = self.env["res.partner"].create(
    {
        "name": "Test Partner",
        "phone": "1234567890",
        "website": "https://www.example.com",
    }
)
result = Contact.value_to_html(partner, {"fields": ["phone", "website"]})
```

Result:

- The website is not shown

This is a regression introduced in 9e53aea, in combination with some buggy
behavior in the qweb compilation.

Somehow the `t-elif` condition is applying on the next element instead on itself,
hiding the website element. I did not investigate further to find the root
cause, though.

Switching to a `t-if` condition works around the issue.

closes odoo#191201

Signed-off-by: Rémy Voet (ryv) <[email protected]>
closes odoo#191453

Signed-off-by: Julien Castiaux (juc) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.