Commit Graph
167565 Commits
Author SHA1 Message Date
Arnold Moyaux d85ab80f12 [FIX] stock: closest location
Currently there is 2 behaviors:
- The records is pass to the _gather function, it will order base
on location complete name
- The records is not pass to _gather, it will be order by id.

Obviously we never want to order by id because it's not configurable
and hard to undersand since id are not editable

closes odoo/odoo#142237

Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2023-11-16 10:19:43 +00:00
Arnold Moyaux 18d5934215 [FIX] stock: redirect to location view from product
It's easier to update the quantity from there and people don't
want to do a real inventory from this view

Part-of: odoo/odoo#142237
2023-11-16 10:19:43 +00:00
alsh-odoo 15c12584cf [FIX] point_of_sale: restrict to print sale details without start and end dates
This traceback arises when the user removes 'Start Date' and change 'End Date',
while printing 'Sale Details'.

To reproduce this issue:

1) Install 'point_of_sale'
2) Open 'reporting/Sale Deatils'
3) Remove 'Start Date' and change the date of 'End Date'

Error:-
TypeError:'<' not supported between instances of 'datetime.datetime' and 'bool'

On the '_onchange_end_date' method, when the user removes 'start_date'
the value will be False. It leads to the above traceback
as '<' is used between 'start_date' and 'end_date'.

See:-
https://github.com/odoo/odoo/blob/5e3c4dd330184353a585b343741505cc223b1183/addons/point_of_sale/wizard/pos_details.py#L40-L43

By applying this commit will resolve the issue.

sentry-4521731693

closes odoo/odoo#142270

X-original-commit: ad5a7263461e734e294685fb1406bec97311c4d6
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Signed-off-by: Altaf Shaik (alsh) <alsh@odoo.com>
2023-11-16 08:57:52 +00:00
David (dafr) 7ae5c26526 [FIX] mrp: use date_start for confirmed mo in _run_manufacture
For Confirmed MOs, the date that should be used is the `date_start`, not the `date_deadline`:
    - Confirmed MOs have StockMoves with `move.date == mo.date_start`
    - When computing the qty_to_order, the move.date will be used
    - When finding existing MO to add quantity
        If `mo.date_deadline != mo.date_start`
        Then we can end up in a situation where a Confirm MO is too late to take its quantity into account, but not too late to add the qty_to_order to it.
        Then everytime you run the scheduler, this MO will be too late, so new quantity must be ordered, and the quantity will be added on this MO which is too late.

## TO REPRODUCE ##
- Create product P_M
- Create BoM
- Create Reordering Rule:
    trigger: auto | min: 10 | max: 20 | route: manufacture
- Create & Confirm SO for 10 unit of P_M
=> new confirmed MO for P_M should have been created
- Update MO scheduled date to 2 days in the future
- Run Scheduler
=> New quantity added, you can run the scheduler as many times as you want, new quantity will always be added

OPW-3524854

closes odoo/odoo#142256

X-original-commit: 531fa573a3bb40bd3b82c2a21db5e82d51a2800a
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: David Fesquet (dafr) <dafr@odoo.com>
2023-11-16 08:57:51 +00:00
Jorge Martinez 4cf779c8db [CLA] corporate/factorlibre - Add contributor
closes odoo/odoo#141736

X-original-commit: 85490035ba2bf6d3a63d77c4dc0764b6efdc8e20
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2023-11-16 08:57:46 +00:00
Khushi 905d8565ad [FIX] spreadsheet: traceback while inserting chart from other model
Steps to reproduce:
- Insert a list/pivot in a blank spreadsheet from a module (say Sales).
- Apply a global filter on it.
- Insert an odoo chart in the same sheet but from a different module (eg. CRM)

This works just fine when chart is inserted from the same model because it matches
the existing filter (from the pivot/list), and directly returns that field matching
without check the field matching from charts.

However in case of different model, the issue is that when there are no charts in the
sheet, the existing code of `getOdooChartIds` retrieves the incorrect chart ids
(`getChartIds` getter returns all chart ids, including the id of chart being inserted).
This leads to a traceback as the code tries to fetch fieldMatchings for a non-existent
chart within the sheet.

This commit resolves the issue by modifying the `getOdooChartIds` method to now utilize
`this.charts` instead of `getChartIds` getter, which correctly provides the ids of
charts already present in the sheet.

Task ID: 3573402

closes odoo/odoo#140700

Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com>
2023-11-16 08:57:45 +00:00
Gabriel de Paula Felix (gdpf) 9008399a7b [FIX] microsoft_calendar: typo in microsoft event values
Before this commit, when iterating over microsoft's recurrences occurrences, the'stop' attribute was being accessed instead of the 'end' attribute.

After this commit, this typo is fixed by changing the access from 'stop' attribute  to the 'end' attribute.

Issue from: 3525764

closes odoo/odoo#142199

X-original-commit: 48f4cfc50d08f9333d6cb670b831beea8b7cdfbf
Signed-off-by: Arnaud Joset (arj) <arj@odoo.com>
Signed-off-by: Gabriel de Paula Felix (gdpf) <gdpf@odoo.com>
2023-11-16 01:20:30 +00:00
Michele eb17528df0 [FIX] mrp: avoid to set product_id on mrp.bom if variants are disabled
closes odoo/odoo#142202

X-original-commit: a62149cd8da5c6127dbba9f7239df732c2602362
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2023-11-15 18:12:02 +00:00
Joseph Caburnay b74ca03bcb [FIX] pos_sale: runbot error 27820
`Orderline.getDisplayData()` relies on the presence of the component's `env`.
However, since 7dd76be303b6769767ef0736ba738fc0063a4a28, an `Orderline` instance
can be created without `env`, which results to a traceback when rendering the
order widget. This commit makes sure the `env` is present in the Orderline
instance created from pos_sale module.

Closes runbot error: 27820

closes odoo/odoo#142167

Signed-off-by: Vlad Stroia (vlst) <vlst@odoo.com>
2023-11-15 18:12:01 +00:00
Nicolas Lempereur d0e7c62465 [FIX] project: compute doc_count on new project
Scenario:

- add doc_count field in project.project view
- create new project

Issue: error and can't create new project
> File "addons/project/models/project.py",
> line 190, in _compute_attached_docs_count
> psycopg2.errors.SyntaxError: syntax error at or near ")"
> LINE 6: AND res_id IN ()

Fix: only do the query if there is non-NewID IDs

opw-3584925

closes odoo/odoo#142074

X-original-commit: 4d9a5cedef9459f0e86f16631170f2dc965d0a3b
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2023-11-15 16:54:47 +00:00
Robin Lejeune (role) f6d9f80e6e [FIX] website: prevent page overflow with mobile menu open
Since [commit 1] replaced the mobile menu, a bug appeared on Safari
where the `#wrapwrap` element would still be scrollable even with the
menu open and even though the `body` has `overflow: hidden;`.
This commit fixes it.

[commit 1]: https://github.com/odoo/odoo/commit/bc13176de8d66bbdc1c536017b1f046c5fd31a86

task-3584299

closes odoo/odoo#141154

Signed-off-by: Romain Derie (rde) <rde@odoo.com>
2023-11-15 16:54:45 +00:00
Alexandre Kühn fbcab1fccc [FIX] mail: missing spacing in Messaging Menu 'New Message'
Follow-up of [1]

PR above made several improvements to Messaging Menu, especially
in mobile.

By mistake, it removes the spacing between "All"|"Chats"|"Channels"
and "New Message" in desktop.

This commit re-adds this spacing with `div.flex-grow-1`.

[1]: https://github.com/odoo/odoo/pull/140405

closes odoo/odoo#142186

Signed-off-by: Matthieu Stockbauer (tsm) <tsm@odoo.com>
2023-11-15 15:03:58 +00:00
FrancoisGe f10e7e01e4 [FIX] test_main_flows: edit record after Save & New
Since the commit afdcf9a5d5cd0d25b2ba61167d3ae6726a97d554, the mobile main flow tour
fail sometimes. This is due to the fact that the tour try to edit the record
before the new record is displayed.

The solution is to wait for the new record to be displayed before trying to edit it.

closes odoo/odoo#142124

Signed-off-by: Pierre Rousseau (pro) <pro@odoo.com>
2023-11-15 15:03:54 +00:00
Maximilien (malb) 8b3394bcd3 [IMP] l10_dk: New tags
Following the Bookkeeping Act Request we needed to add a tag on each account of
the standard CoA. In this PR, we created a tag for each account and updated the
coa accordingly.

closes odoo/odoo#141976

Task: 3593628
Signed-off-by: Florian Gilbert (flg) <flg@odoo.com>
2023-11-15 15:03:53 +00:00
Rémy Voet (ryv) 444dbf2001 [FIX] core: avoid quadratic complexity for partial compute methods
For a compute store field with new records (e.g. during an 'onchange'),
the compute method can be called multiple times on the same records
without changing the dependencies. Moreover, it can lead to have N² / 2
complexity for a trivial compute on N records.

With partial (where we don't always change the value) compute method:
```
@api.depends('reward')
def _compute_has_been_rewarded(self):
    for rec in self:
        if rec.reward:
            rec.has_been_rewarded = 'Yes'
```

If every `reward` of `self` (N records) is `False`, when the ORM needs
to recompute `has_been_rewarded` of `self`: the compute will be batched,
but only the first record in the batch will be set (to `False`) each
time (due to the current fallback - "fallback to null value if compute
gives nothing"). This means that we will call the compute method N
times, and the compute itself will loop on an average of N/2 records
(the prefetch set decreasing at each step).

Fix this quadratic behavior by setting the cache to `False` for every
record not set during the compute method (instead of just the current
record).

closes odoo/odoo#142162

X-original-commit: 1604ee983aadc0cbee0cd50cbea2b09572905b04
Signed-off-by: Raphael Collet <rco@odoo.com>
Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
2023-11-15 13:56:36 +00:00
tsm-odoo c9b72f09d8 [FIX] bus: fix im status not updating
Odoo periodically updates the user online status. This is
done every minute and is throttled in order to ensure it won't
be triggered more than it should.

Since [1], the underscore `throttle` function has been replaced
by the `throttleForAnimation` function. This is not equivalent:
the function won't be triggered if there is no animation which
result in an outdated user status.

This issue was highlighted by the live chat: the button does
not show up when there is no available operator.

Steps to reproduce the issue:
- Log in on Odoo with live chat installed
- Go to a web page that uses the live chat widget
- Wait more that one minute and refresh the page
- The live chat button is not shown anymore: the only
operator is considered as disconnected.

This PR fixes that issue by re-introducing the underscore
throttle function: it is robust and can be needed, not all
throttles are linked to animations.

[1]: https://github.com/odoo/odoo/pull/120437.

opw-3578517

closes odoo/odoo#142160

X-original-commit: f64a7cbad3dee3ffc365b931306b1c13c8bff536
Signed-off-by: Matthieu Stockbauer (tsm) <tsm@odoo.com>
2023-11-15 13:56:35 +00:00
Pierre Masereel 307a2e0363 [FIX] base_import_module: no spaces in ir_model_data name
When we are importing a module and we need to create an attachment from
a file in static. We get an error if the file path of the file contains
a space.

We get this error becuase it takes the path to generate an xml id and
the name of an xml_id cannot contains spaces.

closes odoo/odoo#142113

Signed-off-by: Pierre Masereel (pim) <pim@odoo.com>
2023-11-15 12:34:24 +00:00
Florent de Labarre 0bf36e107a [FIX] mrp: add index
Before this commit in large database, the time to unlink some lot can take lot of time.

closes odoo/odoo#142105

X-original-commit: 654ee5c54db6d2cdf7a9d6797899d25a5b156059
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2023-11-15 11:26:13 +00:00
Gabriel de Paula Felix (gdpf) d9bc27b9ad [FIX] microsoft_calendar: traceback batch recurrence update in microsoft
A traceback was being thrown when multiple recurrent events were being updated by a batch microsoft update due to a `self.ensure_one()` validation:
```
Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/http.py", line 2003, in __call__
    response = request._serve_db()
  File "/home/odoo/src/odoo/odoo/http.py", line 1589, in _serve_db
    return service_model.retrying(self._serve_ir_http, self.env)
  File "/home/odoo/src/odoo/odoo/service/model.py", line 133, in retrying
    result = func()
  File "/home/odoo/src/odoo/odoo/http.py", line 1616, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
  File "/home/odoo/src/odoo/odoo/http.py", line 1820, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
  File "/home/odoo/src/odoo/addons/website/models/ir_http.py", line 237, in _dispatch
    response = super()._dispatch(endpoint)
  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
    result = endpoint(**request.params)
  File "/home/odoo/src/odoo/odoo/http.py", line 697, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/home/odoo/src/odoo/addons/microsoft_calendar/controllers/main.py", line 55, in sync_data
    need_refresh = request.env.user.sudo().with_context(sync_context)._sync_microsoft_calendar()
  File "/home/odoo/src/odoo/addons/microsoft_calendar/models/res_users.py", line 106, in _sync_microsoft_calendar
    synced_events, synced_recurrences = self.env['calendar.event']._sync_microsoft2odoo(events) if events else (self.env['calendar.event'], self.env['calendar.recurrence'])
  File "/home/odoo/src/odoo/addons/microsoft_calendar/models/microsoft_sync.py", line 385, in _sync_microsoft2odoo
    update_events = odoo_event._update_microsoft_recurrence(mevent, microsoft_events)
  File "/home/odoo/src/odoo/addons/microsoft_calendar/models/microsoft_sync.py", line 319, in _update_microsoft_recurrence
    odoo_event.with_context(dont_notify=True).write(dict(event_values, need_sync_m=False))
  File "/home/odoo/src/odoo/addons/base_automation/models/base_automation.py", line 401, in write
    return write.origin(self, vals, **kw)
  File "/home/odoo/src/odoo/addons/microsoft_calendar/models/calendar.py", line 180, in write
    self._recreate_event_different_organizer(values, sender_user)
  File "/home/odoo/src/odoo/addons/microsoft_calendar/models/calendar.py", line 203, in _recreate_event_different_organizer
    self.ensure_one()
  File "/home/odoo/src/odoo/odoo/models.py", line 5161, in ensure_one
    raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: calendar.event()
```

After this commit, this traceback is now fixed because the validation iterates over each event, avoiding the batch conflict with the `self.ensure_one()` function and skipping the validation of recurring events since these updates are exclusively on the Microsoft side, which does not allow changing the organizer.

Issue from: 3450045

closes odoo/odoo#142099

X-original-commit: 7c064a1
Signed-off-by: Arnaud Joset (arj) <arj@odoo.com>
Signed-off-by: Gabriel de Paula Felix (gdpf) <gdpf@odoo.com>
2023-11-15 11:26:12 +00:00
roen-odoo 6ed92b6660 [FIX] point_of_sale: correctly print daily sales report
Current behavior:
When you link a printer to the sales detail report. The report will
contains no order. This happens because we are trying to assign docids
to the session_id.

Fix:
Docids represent the session_id only when the report is called from the
PoS directly. So we want to use it only when it's the only data passed
to `_get_report_values`. If session_id is not set in the data, but other
values are (date_start/stop, config_id) we should use those value in
priority.
When called from the frontend directly, docids doesn't represent a
session_id.

Steps to reproduce:
-Install pos_iot
-Link a printer from the demo iot to the sales_detail report (go in
 settings > reporting > reports)
-Do some orders on the PoS, and close it
-Go in the backend, and print the sales detail report
-You will see that the report is empty (You can put a breakpoint in
 get_sale_details method to see that it will be empty)

opw-3247196

closes odoo/odoo#142093

X-original-commit: d93ffa4c770364c31b2a2e0ad855bf8801f23c24
Signed-off-by: Vlad Stroia (vlst) <vlst@odoo.com>
Signed-off-by: Robin Engels (roen) <roen@odoo.com>
2023-11-15 11:26:11 +00:00
Damien Decleire (deda) 3a61cefddc [IMP] partner_autocomplete: Integration of Indian GST Numbers
Until now, only Eyropean tax numbers were taken into account.
Now, Indian numbers are also considered valid and sent to IAP
for link creation.

This commit takes advantage of IAP changes, which now integrates
the Indian GST tax number system.

closes odoo/odoo#142082

X-original-commit: 1a1b9b27efda49fce6a61c0aeb8deb60e040771e
Signed-off-by: Louis Baudoux (lba) <lba@odoo.com>
Signed-off-by: Damien Decleire (deda) <deda@odoo.com>
2023-11-15 11:26:10 +00:00
Kevin Baptiste 150099e5f6 [FIX] hr_recruitment: don't use iap widget when not installed
The recruitment settings were using the iap_buy_more_credits widget,
even tho there is no hard dependency between IAP and Recruitment. Which
was causing a traceback when IAP was not installed.

The widget has been moved to the enterprise module
`hr_recruitment_extract`.

Closes #114747

closes odoo/odoo#142073

X-original-commit: 12f0730d75c2d3316fd7dc06f33a17d9b6ffd963
Related: odoo/enterprise#50658
Signed-off-by: Bertrand Dossogne (bedo) <bedo@odoo.com>
2023-11-15 11:26:10 +00:00
tsm-odoo f5e0ca51de [FIX] mail: fix dropzone background for live chat
Before this PR, the dropzone background was not showing on
the embed live chat. The dropzone is displayed as a `main
component`. In the Odoo frontend, the main component container
is displayed outside of the live chat shadow dom, where the
`bg-view` class is not available. This commit replaces this
class by the `bg-100` one that is almost the same and available
in the frontend.

task-3595537

closes odoo/odoo#142055

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-11-15 11:26:07 +00:00
Antoine Guenet 8c136b9882 [FIX] web_editor: mini clean up of serialize
An object was defined before a conditional return statement and as a
variable rather than a constant.

closes odoo/odoo#142049

X-original-commit: d6478d9af76422eccecffb79bfd6be90cc714342
Signed-off-by: Antoine Guenet (age) <age@odoo.com>
Signed-off-by: Nicolas Bayet (nby) <nby@odoo.com>
2023-11-15 11:26:06 +00:00
Nicolas BayetandAntoine Guenet ac4adf0521 [FIX] web_editor: allow a node to not have oid in serialize
This commit addresses a traceback that occurs when trying to serialize a
node that has no `oid` property because it was added to the DOM while
the mutation observer was not active (eg, using `observerUnactive`).
This is the case with technical nodes added for managing the selection
around links ("link zws spans").

When serializing a node, we expect it and its descendants to have an
`oid` property so we throw an error if such is not the case. But we now
have a legitimate case where nodes have no `oid` property so this
removes the error. If the `oid` was in fact really supposed to be
defined (eg, the node we tried to serialize was the direct target of a
mutation), an error will be thrown soon enough after when trying to
access said property.

Note that other, more ad-hoc fixes specific to the link zws spans would
have been possible (and might still be useful in the future), such as:
- skipping said link zws spans when serializing
- adding a fake `oid` property to the link zws spans

task-3593081

X-original-commit: ba6a7fa4cf5ad422816e49b4d3b941297841ed3f
Part-of: odoo/odoo#142049
Co-authored-by: Nicolas Bayet <nby@odoo.com>
Co-authored-by: Antoine Guenet <age@odoo.com>
2023-11-15 11:26:06 +00:00
JF Aubert 45825263a4 [FIX] mrp: avoid mo overview traceback
Opening the Overview of manufacturing orders containing work orders
without expected duration gives a division by zero.

closes odoo/odoo#141944

Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2023-11-15 11:26:03 +00:00
Walid b7eaf02706 [FIX] stock: propagate package in multistep delivery
Steps to reproduce:
- Enable 3 step delivery (pick,pack,ship) in inventory settings
- Create and confirm an SO with a consumable product
- Put the first transfer (PICK) in pack
(check show detailed operation will make it easier to see the bug)
- Result package is correctly set and will be correctly set as source
package for the following transfer (PACK)

Bug:
result package is not set on the following transfers

Fix:
propagate the package by default (if it's disposable) since consumable
product do not have a stock.quant _check_move_lines_map_quant_package
will fail and package_level will not be created and result will not be
assigned

opw-3513870

closes odoo/odoo#141914

X-original-commit: 83996db3adaf44f5d4428d602071224095cd4790
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Walid Hanniche (waha) <waha@odoo.com>
2023-11-15 11:26:02 +00:00
svs-odoo 5c199e60eb [FIX] repair: minor bugfixes
This commit fixes the following issues:

1. Before this commit, when adding a new move in a repair order, its
   default quantity was equal to the repair order's product quantity.
   The move's quantity should be 1 by default;

2. The `forecast_availability` is renamed from "Reserved" to
   "Forecasted";

3. Removes the "Clear Quantities" button since it does basically the
   same thing than the "Unreserve" button.

closes odoo/odoo#141849

Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2023-11-15 11:26:01 +00:00
JF Aubert 13cb47d4f2 [FIX] stock_picking_batch: forward package
For multi steps batch pickings, the package is not forwarded
like it is for 'simple' pickings.

closes odoo/odoo#141822

Related: odoo/enterprise#50532
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2023-11-15 11:26:00 +00:00
anjeel.haria 14b2f0f0f7 [FIX] website_event: Add timezone in events website snippets
Added timezone for event_card snippet

closes odoo/odoo#141810

X-original-commit: fc4c4a272c55e45bcdbfaba4786f6afec963ac52
Signed-off-by: Jérémy Hennecart (jeh) <jeh@odoo.com>
2023-11-15 11:25:58 +00:00
anjeel.haria ffe75e09f7 [FIX] website_sale: make 'Quantity' table header editable on /shop/cart
This commit only purpose is to propagate the CLA that was
stopped manually in the FW.

The cart is a table with 3 columns: Product / Quantity / Price
Product and Price words are editable while Quantity is not.

This PR fixes that.

Fixes https://github.com/odoo/odoo/issues/135163

X-original-commit: 03e4648b94b262508b7eceb969d91d7033e28834
Part-of: odoo/odoo#141810
2023-11-15 11:25:58 +00:00
Nasreddin Boulif (bon) 4c38507c03 [FIX] mail: don't apply system timezone on tracked date value in chatter
Steps to reproduce:

  - Add a date field in a model with `tracking=True`
  - Log with a user with timezone set to UTC+2
  - Create a record and set the date field to any date.
  - Update the date value to another date
    (Should have logged a message in the chatter with changes)
  - Log with a user with timezone set to `America/Los Angeles`
  - Check the chatter of the record created above

Issue:

  New date value displayed in the chatter is wrong (set to one day
  before).

Cause:

  The value displayed in the chatter is the date value converted first
  as datetime (with Luxon library), then the system timezone is set on
  it and therefore might change the day.

Solution:

  Use `deserializeDate` instead, who has the same computation as
  `deserializeDatetime` (with the sole difference of date vs datetime)
  and therefore will not apply a timezone on the date.

opw-3427502

closes odoo/odoo#142034

X-original-commit: ca3254f8c7700fe78053072710f0c57fee60af5b
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Nasreddin Boulif (bon) <bon@odoo.com>
2023-11-15 09:07:59 +00:00
Walid 361a5835aa [FIX] stock_picking_batch, delivery: put delivered batch in pack
Steps to reproduce:
- Install DHL delivery and enable batch transfers
- Create 2 SO with adding shipping
- Select the 2 delivery orders and add them to the same batch
- Put the batch in a pack
- Only movelines of the first delivery are put in the pack

Bug:
when delivery is Installed a Delivery Package Type has to be chosen
this will in turn put the active picking mls in pack
the case of batch picking was disregarded
https://github.com/odoo/odoo/pull/55096/files#r469780148

Fix:
implementing a method to get the movelines to pack will allow to simply
make an override in stock_picking_batch instaed of creating a new module
this has also the added benefit of unifiying the behavior accross the
different methods

opw-3357423

closes odoo/odoo#141473

X-original-commit: 2d2bfe7f01379beb695b1c8756be393e17faf7de
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2023-11-14 16:35:02 +00:00
Richard deMeester 0c85d03c23 [FIX] purchase: select sellers failing on empty date
Following  #133759 - The code will fail if the purchase_order has NO
date.

This is because

max(
  po.date_order.date_order and po.date_order.date(),
  fields.Date.today()
)

will try to compare False with a date, resulting in:

closes odoo/odoo#140006

Typeerror: '>' not supported between instances of 'datetime.date' and 'bool'
X-original-commit: 0831f6d0f2763e1ca8966c9a0b6c3186a847e733
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2023-11-14 16:35:01 +00:00
Gabriel de Paula Felix (gdpf) 83022f1799 [FIX] microsoft_calendar: fix recurrence being trimmed
Before this commit, recurrences were being cut off after being fetched when their length exceeded the range of the current calendar view. This was because we were fetching the new events within the `get_events_delta` function, but skipping their fetch at the `_get_occurrence_details` function for occurrences outside the current calendar view range, leaving them not created when they should have been. Additionally, the last day within the weekly view was not being fetched because the API request ignored the "23:59" hour/minute information and fetched events up to the "00:00" hour/minute of the respective day.

After this commit, they are now entirely created during their search in the `_get_events_delta` function call. This solves the problem of leaving occurrences uncreated and maintains the improvement of not fetching all recurrences every time as in the previous code after the performance task. In addition, to correct the substitution of the hour/minute "00:00", a day is now being added to the end date to fix the interval obtained.

Benchmark test with 300 recurrences of 500 events each (150.000 events):
- Before the performance task: 01:02:09 (hour/min/sec)
- After this PR: 00:09:51 (hour/min/sec)

Issue from task-id: 3525764

closes odoo/odoo#142014

X-original-commit: 18b978e7a87e36b21449a7981720e4f24630b1c6
Signed-off-by: Arnaud Joset (arj) <arj@odoo.com>
Signed-off-by: Gabriel de Paula Felix (gdpf) <gdpf@odoo.com>
2023-11-14 15:16:10 +00:00
Antoine Vandevenne (anv) 7ec8e3454d [FIX] payment: don't suggest archiving acquirers when it's not possible
Payment acquirers don't have an `active` field, which makes users
confused when they try to delete an acquirer, and the error message
suggests archiving it instead.

opw-3579946

closes odoo/odoo#142000

X-original-commit: 69166117073f1bf255b62b81eaa744f81353f6b4
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-11-14 15:16:09 +00:00
Sébastien Theys d3b7ff500b [FIX] mail: fix race condition in load_message_order
- adapt test to ensure consistent (scroll) state at each step

The issue is hard to reproduce, so the complete resolution of the issue
is not guaranteed, but the current change should do the job, and if it
doesn't, it will help to pinpoint the issue.

Estimated issue: the thread doesn't load more messages when scrolling to
bottom because the scroll to bottom is overriden by the auto-scroll top
when clicking on pin. Adding extra wait point should solve the issue.

runbot-24512

closes odoo/odoo#141999

X-original-commit: 477b1c3aa1da7261273341338f3d37ee828715f8
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-11-14 15:16:08 +00:00
flvr-odoo 3e3843114f [FIX] test_lint: add support for %d in string format
This commit add and test the support for string format with %d. this
is because python will fail if a string is passed to a %d, and
therefore we can consider it safe.

closes odoo/odoo#141993

X-original-commit: 37157cfa5df1201ffd51520969a3fb6b8a9dfdb1
Signed-off-by: Vranckx Florian (flvr) <flvr@odoo.com>
2023-11-14 15:16:07 +00:00
Paolo Gatti (pgi) a14c9f6c86 [IMP] account: Send and print, better no-email partner handling
When you open a Send and Print dialog, if the partner had no email,
then the form to edit the partne appears.
We're removing this behaviour and let the user decide if he wants
to check the partners or not

closes odoo/odoo#141549

Signed-off-by: Josse Colpaert <jco@odoo.com>
2023-11-14 15:16:04 +00:00
Djamel Touati 1b1d2d110e [FIX] stock: fix batch transfer validation
Steps to reproduce the bug:
- Go to inventory > operation > batch Transfer > new:
    - Select 2 picking out
- Confirm
- Try to validate

Problem:
A traceback is triggered:
ValueError: Expected singleton: stock.picking(7, 2)

“self.hide_picking_type = self.state != "draft" and self.ids and
'default_picking_type_id' in self.env.context “

opw-3583908

closes odoo/odoo#141975

Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2023-11-14 13:49:30 +00:00
Michael (mcm) 5094cdcc9d [FIX] purchase_stock: fix tour steps builder
Before this commit, the builder called `this._super` which is not
defined anymore by `patch` and thus caused an error.
The call to `this._super` was useless as it does not use the returned
steps so this commit simply removes the line.

Fixes #141112

closes odoo/odoo#141968

Signed-off-by: Mathieu Duckerts-Antoine (dam) <dam@odoo.com>
2023-11-14 13:49:29 +00:00
Arnaud Joset 1e1add8014 [FIX] calendar: test_event_creation_mail was faulty
The following commit updated the test to use freezegun. One of the event start
date was not properly set before the freezegun date. As a result a notification
mail was sent.
https://github.com/odoo/odoo/commit/080688868e6acf31d3bd624798559852272bcc1a

Strangely, the test was passing during our tests even if the date was in the past.

Runbot issue: https://runbot.odoo.com/web#id=36179&view_type=form&model=runbot.build.error&menu_id=405&cids=1

closes odoo/odoo#141959

X-original-commit: f5a131931583a5d6c415742b3a65793b10e60daf
Signed-off-by: Arnaud Joset (arj) <arj@odoo.com>
2023-11-14 13:49:28 +00:00
Louis Baudoux ef8461d78b [FIX] iap: remove IAP neutralization
Since commit 550595d, it's no longer necessary to change the endpoint to
the IAP services test server.

closes odoo/odoo#141930

X-original-commit: 16a649231fcf98f2b3bae9e297ea892b9c93e3f9
Signed-off-by: Florian Daloze (fda) <fda@odoo.com>
Signed-off-by: Louis Baudoux (lba) <lba@odoo.com>
2023-11-14 13:49:24 +00:00
Djamel Touati 8c4e775cea [FIX] stock: fix production_lot settings
For existing users who had previously disabled the "Lots & Serial
Numbers" settings, by applying this fix: https://github.com/odoo/odoo/pull/138907/commits/376ee1289eba840f1d8b2b6149d933bdedd47518

They will get the user error each time they try to access the settings.
Therefore, we prefer to prevent this and trigger the error only when
necessary.

opw-3452946

closes odoo/odoo#141921

X-original-commit: 608439b09cb68409dec10427d5b927ce0a27d526
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Djamel Touati (otd) <otd@odoo.com>
2023-11-14 13:49:21 +00:00
Djamel Touati f2ba305e23 [FIX] mrp: don't set qty_done in finished move lines
Steps to reproduce the bug:
- Create a tracked product with BoM “P1”:
    - component: add any storable product e.g “C1”
    - byproduct: add any storable product e.g “B1”
- Update the stock of C1
- Update the stock of “P1” with two SN
- use the 2 SN of P1 as component in any MO and mark the MO as done
- Create a new MO to produce 2 units of P1
- Confirm the MO
- Click on “Mass produce”
- Generate two new SN

* First error : The byproduct quantity is not set

- Try to Mark as done the new MO

Problem:
A user error is raised: 'This serial number for product P1 has already
been produced'

When splitting the MO into two, a “stock.move.line”  are created with
a qty_done = 1, leading to an error when verifying if the serial_number
of the move_finished has already been produced.

When clicking the "mark as done" button on the MO, the function
"_check_sn_uniqueness" is triggered and since the finished product is
tracked and there is a serial number set in the MO, the function
"_is_finished_sn_already_produced" is called:
https://github.com/odoo/odoo/blob/c84d80cc71ca0e7120dd293bfc56f9027bfdf9fc/addons/mrp/models/mrp_production.py#L2158-L2162

Within this function, we verify if the move lines of the finished move
have a lot and qty_done set. If this condition is met and we do not need
to exclude this move, an error is triggered.

https://github.com/odoo/odoo/blob/77ca3a830d0f61ee8a5ba31b3b79e80e85c08e79/addons/mrp/models/mrp_production.py#L2063

https://github.com/odoo/odoo/blob/77ca3a830d0f61ee8a5ba31b3b79e80e85c08e79/addons/mrp/models/mrp_production.py#L2086

Solution:
Set "qty_done" to 1 only within the move lines of the components.

Opw-3566259

closes odoo/odoo#141521

X-original-commit: e0e6aed35d0f75c3ad01fbc329d7189f9e8d82f4
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Djamel Touati (otd) <otd@odoo.com>
2023-11-14 13:49:19 +00:00
Djamel Touati cf2d37ecd3 [FIX] mrp: allow use kit as component in MO without BoM
Steps to reproduce the bug:
- Create a kit product
- Create a storable product without BoM “P1”
- Create a MO to produce one unit of “P1”
- Add the kit product as component
- confirm the MO

Problem:
The Manufacturing Order is cancelled. This is because the MO contains
a kit product, and we need to generate moves based on its Bill of
Materials. However, at the same time, we cancel and remove the move
associated with the original product, which is no longer relevant.
But We remove it before creating the moves generated from the phantom
product. Consequently, since we cancel the move, the 'compute_state'
of the MO is triggered, and as there is only one 'move_finished' status
in 'cancel,' the status of the MO is set to 'cancel:

https://github.com/odoo/odoo/blob/5c238bbb18c682ff2d25f740aad604feb7bb5bbc/addons/mrp/models/mrp_production.py#L462-L463

Opw-3548464

closes odoo/odoo#140016

X-original-commit: baa0924974fee0115a0bce117141a8096455b88d
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Djamel Touati (otd) <otd@odoo.com>
2023-11-14 13:49:18 +00:00
Nicolas Bayet 6f599655e4 [FIX] web_editor: prevent the avatar to be loaded
In some undeterministic circumstances the tests in
`test_wysiwyg_collaboration.js` tried to load an image with a wrong
url (`/web/image?model=res.users&field=avatar_128&id=undefined`). It
is `undefined` because in the testing context, `this.getSession().uid`
is `undefined`.
It is not necessary to load these images in these tests so this commit
prevents the loading of these images.

runbot-24600
task-3566600

closes odoo/odoo#139958

Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Signed-off-by: Nicolas Bayet (nby) <nby@odoo.com>
2023-11-14 13:49:18 +00:00
vava-odoo 8e69a3cc73 [FIX] website_sale_stock: fix warning message if unavailable
Before this commit, the warning to inform the user that a product has
become unavailable was the same, whether the user was on the cart or on
the product page. This commit makes sure that the message is adapted to
the context.

closes odoo/odoo#139332

Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2023-11-14 13:49:17 +00:00
Victor Feyens bd07557b16 [FIX] website_sale: overlapping x in cart alert
Bootstrap already adds a X on btn-close buttons automatically

Part-of: odoo/odoo#139332
2023-11-14 13:49:16 +00:00
vava-odoo bfe857db1d [IMP] website_sale: display warning in notifications
When adding items to the cart, the server returns warnings that are
never displayed to the customer. This commit makes use of the new
notification system of website_sale to display it.

task-3502911

Part-of: odoo/odoo#139332
2023-11-14 13:49:16 +00:00