Friday, May 10, 2024
24 changes · saas-17.1
Resolved issues and error corrections
Planning users without employee or settings access can now see the assigned resource's avatar in the planning view. This makes schedules easier to read and avoids missing employee images for users with limited permissions.
Original PR description
Issue: --------- When a user lacks access to employee and setting permissions, the resource image does not appear. Fix: -------- We used the `hr.employee.public` model instead of `hr.employee` because everyone can access this one. Steps: --------- - Install the planning app - Create a user with planning user access, without employee and setting access - Create a Test employee(Test) - Create a shift and assign it to Test - Log in as the planning user - Open planning and group by department
Miscellaneous changes
Before this commit: Any IoT-box syncing to a version 16 (and >) database would not be able to start odoo service due to the `num2words` missing library. This is in practice the fault of the IoT as this library is part of odoo requirement. But to solve it it would need to recreate an IoT box OS image and asking customers to re-flash their SD card which is not convenient and time consumming. After this commit: Import conditionally num2words opw-3902183 Forward-Port-Of: odoo/odoo#165067
Original PR description
Before this commit: Any IoT-box syncing to a version 16 (and >) database would not be able to start odoo service due to the `num2words` missing library. This is in practice the fault of the IoT as this library is part of odoo requirement. But to solve it it would need to recreate an IoT box OS image and asking customers to re-flash their SD card which is not convenient and time consumming. After this commit: Import conditionally num2words opw-3902183 Forward-Port-Of: odoo/odoo#165067
#### [FIX] account,sale: credit_to_invoice in multi-company Currently the credit_to_invoice includes sales orders from all allowed companies. But it should only include sales orders from the active company. (Since a single sales order belongs to only 1 company) #### [FIX] account: flush in _credit_debit_get of model res.partner Function _credit_debit_get uses a raw SQL query, but does not flush the used tables to the DB before. Without this commit some of the tests in the following c
Original PR description
#### [FIX] account,sale: credit_to_invoice in multi-company Currently the credit_to_invoice includes sales orders from all allowed companies. But it should only include sales orders from the active…
#### [FIX] account,sale: credit_to_invoice in multi-company
Currently the credit_to_invoice includes sales orders
from all allowed companies.
But it should only include sales orders from the active company.
(Since a single sales order belongs to only 1 company)
#### [FIX] account: flush in _credit_debit_get of model res.partner
Function _credit_debit_get uses a raw SQL query,
but does not flush the used tables to the DB before.
Without this commit some of the tests in the following commits of this PR will fail
(since some of the invoice lines are not flushed yet).
#### [FIX] account,sale: credit limit in multi-currency setup
The partner credit limit (warning) may not be computed correctly in a
multi-currency setup.
Note that the partner credit is always in company currency.
1) Consider a draft invoice. To determine the warning amount
the current amount in document currency (not company currency)
is added to the current partner credit (roughly speaking).
2) To compute the credits from sales orders of the partner
(credit_to_invoice) we just add the amount_to_invoice
from each sales order of the partner.
But this field is in the currency of the order
and thus may be different from the company currency.
To fix these issues currency conversions were added for both cases.
#### [FIX] account,sale: credit limit warning
Currently the amount of the partner credit warning
on invoices is not computed correctly in some cases.
1) There are Sales Order credits
and we create an invoice independent of any of SO
2) We create an invoice from a Sales Order with
an amount greater than the Sales Order.
For (1) the problem is that we substract the current
amount of the invoice from the sales order credits
(since we need to do this in the sales order to invoice flow)
But in case the invoice does not come from a sales order
this is wrong.
For (2) the problem is that the `amount_to_invoice` of a
Sales Order may be negative. This can happen if we invoice
more than the sales order amount.
E.g. we can end up with one invoiced order with -100 and
one uninvoiced order of 100. In the sum this would leave us
with "nothing to invoice" (100 + -100 = 0).
Reproduce (1):
All monetary values here are in company currency.
- Ensure that the partner credit is 0:
i.e. remove all Sales Orders and Invoices.
- Activate 'Sales Credit Limit' in the settings
and set the 'Default Credit Limit' to 100
- Create a new customer; here 'Test'
- Create a Sales Order for customer of 200
and deliver it
- The total partner credit is now 200
- Create an Invoice (not from the Sales Order)
for customer 'Test' (without any lines at first).
- There should be a warning that the total amount
due is 200 (since it exceeds the limit of 100).
- Add a line of 200 to the Invoice
(any value ≤ 200 will do).
- The total amount due in the warning is still 200
but it should be 400 (200 + 200)
- Change the line to 800 (any value > 200 will do)
- The total amount due in the warning is now 800
but it should be 1000 (200 + 800)
Reproduce (2):
All monetary values here are in company currency.
- Ensure that the partner credit is 0:
i.e. remove all Sales Orders and Invoices.
- Activate 'Sales Credit Limit' in the settings
and set the 'Default Credit Limit' to 100
- Create a new customer; here 'Test'
- Create 2 Sales Orders for customer of 200 each
and deliver it
- The total partner credit is now 400
- Create an Invoice from exactly one of the Sales Orders
(full amount or downpayment does not matter here)
- There should be a warning that the total amount
due is 400 (since it exceeds the limit of 100).
- Modify the invoice (any line from the sales order)
s.t. it has a total of 400
- Confirm the invoice
- The amount_to_invoice of the Sales Order is now -200.
The sum of the amount_to_invoice of the Sales Orders is 0.
- Create a new invoice without any lines.
- There is a warning that the total amount
due is 400 (= 200 + -200 + 400 ; SO + SO + invoice).
But it should be 600 since the "overinvoiced" SO
should just be counted with amount_to_invoice 0.
Forward-Port-Of: odoo/odoo#164971
Forward-Port-Of: odoo/odoo#162770Updating the code field of accounts can trigger a lot of recomputes. Especially during upgrades, this can lead to MemoryError. For this reason, in https://github.com/odoo/odoo/pull/125320, it was decided that only tags should be updated on `account.account` when updating a CoA. But, it can happen that a superfluous code update sneeks in through `ResCompany.reflect_code_prefix_change()`, even though the old code and the new one are the same. Avoid this unnecessary update by returning early from
Original PR description
Updating the code field of accounts can trigger a lot of recomputes. Especially during upgrades, this can lead to MemoryError. For this reason, in https://github.com/odoo/odoo/pull/125320, it was decided that only tags should be updated on `account.account` when updating a CoA. But, it can happen that a superfluous code update sneeks in through `ResCompany.reflect_code_prefix_change()`, even though the old code and the new one are the same. Avoid this unnecessary update by returning early from the function when old and new codes are the same. Forward-Port-Of: odoo/odoo#165070
**Steps to reproduce the bug:** - Create a storable product “P1” - Create a repair order: - Select any product to repair - add “P1” as recycled product - Confirm the repair order **Problem:** Display the detailed operation of P1 stock move, the field “quant_id” (source location) is displayed and the dest location is hidden, because the field `show_quant` is True As the product is storable, the show_quant is set as True: https://github.com/odoo/odoo/blob/4da8c6ebca024b31278a9
Original PR description
**Steps to reproduce the bug:**
- Create a storable product “P1”
- Create a repair order:
- Select any product to repair
- add “P1” as recycled product
- Confirm the repair order
**Problem:**
Display the detailed operation of P1 stock move, the field “quant_id” (source location) is displayed and the dest location is hidden, because the field `show_quant` is True
As the product is storable, the show_quant is set as True:
https://github.com/odoo/odoo/blob/4da8c6ebca024b31278a946aef55cc37f0210b33/addons/stock/models/stock_move.py#L601-L602
https://github.com/odoo/odoo/blob/d45f6ab2267f4cf3c2419e7274b2c550b00a796d/addons/stock/views/stock_move_views.xml#L243-L245
https://github.com/odoo/odoo/blob/d45f6ab2267f4cf3c2419e7274b2c550b00a796d/addons/stock/views/stock_move_views.xml#L243-L245
opw-3852774
Forward-Port-Of: odoo/odoo#164672Commit 1: [FIX] website: use em unit for vertical padding of highlighted text The padding was defined in pixels, thus adding a small padding on highlighted titles (wanted design) but an apparently big one on highlighted paragraphs (unwanted design). Using em unit makes more sense: this commit chooses the values so that the padding of highlighted h2 titles in the default Odoo theme is unchanged. You will thus get a slightly bigger one for highlighted h1
Original PR description
Commit 1: [FIX] website: use em unit for vertical padding of highlighted text The padding was defined in pixels, thus adding a small padding on highlighted titles (wanted design) but an apparently…
Commit 1:
[FIX] website: use em unit for vertical padding of highlighted text
The padding was defined in pixels, thus adding a small padding on
highlighted titles (wanted design) but an apparently big one on
highlighted paragraphs (unwanted design). Using em unit makes more
sense: this commit chooses the values so that the padding of highlighted
h2 titles in the default Odoo theme is unchanged. You will thus get a
slightly bigger one for highlighted h1 titles and a slightly smaller one
for highlighted smaller titles.
This would lead to no padding for highlighted paragraphs though. While
this might be what is wanted (most document editing software do not add
any padding) it was decided to keep a minimal value as a compromise.
Related to opw-3877772
Commit 2:
[FIX] website: remove highlighted text horizontal padding
Not adding any horizontal padding is important as it ensures that
several features work (the first one is the very problematic one
reported in the customer ticket):
- Coloring a word inside a highlighted sentence -> in this case, the DOM
is a succession of 3 <font> elements, the word one with both the
background-color and the color.
- Highlighting part of a word -> you don't want the word to be split
- Even in the good cases, you might just not want the padding, to align
the highlighted element with the general layout.
=> The user can still add surrounding spaces if needed anyway which is
actually both technically and functionally intuitive.
opw-3877772
| Before | After |
| -------- | -------- |
|  |  |
| Padding impossible to change + problems (the opw one is illustrated by the highlighted "what they want and give") | Relative vertical padding + No horizontal one (you can add real spaces instead) |
Forward-Port-Of: odoo/odoo#164919Usecase to reproduce: - Create a MO for 2 unit (1 component per finished product) - Produce 3 units - Mark as done - Unlock and change the quantity to 3 units Expected behavior: 3 components removed from stock Current behavior: 6 components removed from stock It happens because the set_quantity_done create a new stock.move.line with excessive quantity. Then the write of qty_producing in mrp.production will write this quantity on all the `stock.move.line`. It results by moving numb
Original PR description
Usecase to reproduce: - Create a MO for 2 unit (1 component per finished product) - Produce 3 units - Mark as done - Unlock and change the quantity to 3 units Expected behavior: 3 components removed from stock Current behavior: 6 components removed from stock It happens because the set_quantity_done create a new stock.move.line with excessive quantity. Then the write of qty_producing in mrp.production will write this quantity on all the `stock.move.line`. It results by moving number of sml * the new quantity producing Solution do the write of new quantity done on the `stock.move` level and let him manage the `stock.move.line` Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#161728 Forward-Port-Of: odoo/odoo#161650
Before this commit, when trying to highlight a message containing a single quote you get a traceback. To reproduce: - post a message with body "can't" - search for "can" - search for "can't" This happens because the XPath expression with unescaped single quotes becomes invalid. This commit fixes the issue by escaping the single quotes using the XPath concat() function. --- Before this commit, trying to search for a message containing a round bracket would produce a traceback. -
Original PR description
Before this commit, when trying to highlight a message containing a single quote you get a traceback.
To reproduce:
- post a message with body "can't"
- search for "can"
- search for "can't"
This happens because the XPath expression with unescaped single quotes becomes invalid.
This commit fixes the issue by escaping the single quotes using the XPath concat() function.
---
Before this commit, trying to search for a message containing a round bracket would produce a traceback.
- search for the string "("
This happens because the search term is not being escaped for the regexp.
This commit fixes the issue by escaping the search term. Same is being done on the mock server. Added tests.
Forward-Port-Of: odoo/odoo#164320To reproduce the problem: - Enable pricelist feature - Create a new Contact > no pricelist shown (all versions affected) - Save > still no pricelist shown (>= 17.0 versions affected) - Exit and go back to the Contact: the pricelist is set The _compute_product_pricelist() doesn't work properly for new record, then we create a new contact, pricelist is empty (until the save for version < 17.0, until save/exit/return on the record for version >= 17.0). In 17.0, we introduced web_save, whi
Original PR description
To reproduce the problem: - Enable pricelist feature - Create a new Contact > no pricelist shown (all versions affected) - Save > still no pricelist shown (>= 17.0 versions affected) - Exit and go…
To reproduce the problem: - Enable pricelist feature - Create a new Contact > no pricelist shown (all versions affected) - Save > still no pricelist shown (>= 17.0 versions affected) - Exit and go back to the Contact: the pricelist is set The _compute_product_pricelist() doesn't work properly for new record, then we create a new contact, pricelist is empty (until the save for version < 17.0, until save/exit/return on the record for version >= 17.0). In 17.0, we introduced web_save, which makes create() and read() in the same request. This is why the version >= 17.0 is more problematic and more confusing for the user. Prior to 17.0, it was not great either, but was never considered a bug (some effort has been made in https://github.com/odoo/odoo/pull/153326/files). So this fix targets versions >= 17.0. Fix the issue by taking care of new ids in the _get_partner_pricelist_multi() method. Also, add a Form test case for every possible case. opw-3872299 Forward-Port-Of: odoo/odoo#163768
Steps to reproduce: - Install Accounting, l10n_it_edi and Contacts - Switch to an Italian company (e.g. IT Company) - Go to Contacts - Create an EU contact with "/" or "NA" as VAT (e.g. a Germnan contact with a full address) - Create an invoice: * Customer: [the created contact] * Product: [any] - Confirm the invoice - Process the electronic invoice - Check the generated electronic invoice Issue: In the XML, the "Nazione" field of customer is set to "/" (or "NA"), instead of th
Original PR description
Steps to reproduce: - Install Accounting, l10n_it_edi and Contacts - Switch to an Italian company (e.g. IT Company) - Go to Contacts - Create an EU contact with "/" or "NA" as VAT (e.g. a Germnan contact with a full address) - Create an invoice: * Customer: [the created contact] * Product: [any] - Confirm the invoice - Process the electronic invoice - Check the generated electronic invoice Issue: In the XML, the "Nazione" field of customer is set to "/" (or "NA"), instead of the code of the customer's country. Cause: The "Nazione" field is computed from the VAT of the customer with a fallback on customer's country. It should be the opposite. opw-3889051 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164950
The field l10n_ae_vat_amount is not hide if the user is connected with a company in another country. For exemple, if you are connected with a BE company with the l10n_ae module installed, the field was visible. Now the field is only visible for the AE companies. task-3877935 Forward-Port-Of: odoo/odoo#163004
Original PR description
The field l10n_ae_vat_amount is not hide if the user is connected with a company in another country. For exemple, if you are connected with a BE company with the l10n_ae module installed, the field was visible. Now the field is only visible for the AE companies. task-3877935 Forward-Port-Of: odoo/odoo#163004
Commit [1] added the support to also consider invisible dropped snippets when checking if the snippets in the right panel are droppable. In order for this status to be properly updated when showing and hiding invisible elements, the `reload_snippet_dropzones` event is now triggered in each call to `toggleTargetVisibility`. However, this function is called a lot of times when doing different operations (e.g. drag and dropping (in `buildSnippet` and `cleanForSave` functions), removing a snippet
Original PR description
Commit [1] added the support to also consider invisible dropped snippets when checking if the snippets in the right panel are droppable. In order for this status to be properly updated when showing…
Commit [1] added the support to also consider invisible dropped snippets when checking if the snippets in the right panel are droppable. In order for this status to be properly updated when showing and hiding invisible elements, the `reload_snippet_dropzones` event is now triggered in each call to `toggleTargetVisibility`. However, this function is called a lot of times when doing different operations (e.g. drag and dropping (in `buildSnippet` and `cleanForSave` functions), removing a snippet, showing/hiding an invisible element), which means that `_disableUndroppableSnippets` is also called each time. This slowed down the editor a lot: - Drop a "Text-Image" snippet and click on it to activate it. => It takes a bit long for the "Undo" arrow and the overlay to appear. - Drag and drop one of the snippet columns. => It takes a while for it to be dropped and for the dropzones to disappear, while it should be instant. It also made some tours having steps that drop snippets fail when launched in the browser console (e.g. `carousel_content_removal`). This happens because the "drop" step takes too long to complete, making the next one fail. Also, this made the call to `_disableUndroppableSnippets` redundant in certain cases. For example, when removing a snippet: in `removeSnippet` there is a call to `toggleTargetVisibility` which will therefore call this function. At the end, it triggers the `snippet_removed` event which will call `_onSnippetRemoved` which also calls this function. This commit therefore fixes these issues by removing the trigger from `toggleTargetVisibility` and by calling `_disableUndroppableSnippets` directly when showing/hiding invisible elements, so only when necessary. [1]: https://github.com/odoo/odoo/commit/922b4ba13d679a237bcc43d7296ff402beacb022 task-3902277 Forward-Port-Of: odoo/odoo#164826 Forward-Port-Of: odoo/odoo#164159
Before this commit, through the list view and form view, private events were being accessed by administrators who were not invited to those private events. These events should have their sensitive fields hidden. After this commit, we filter the sensitive fields from private events during read, thus uninvited administrators won't be able to read the private event's sensitive information anymore. task-3837646 Forward-Port-Of: odoo/odoo#164907 Forward-Port-Of: odoo/odoo#159913
Original PR description
Before this commit, through the list view and form view, private events were being accessed by administrators who were not invited to those private events. These events should have their sensitive fields hidden. After this commit, we filter the sensitive fields from private events during read, thus uninvited administrators won't be able to read the private event's sensitive information anymore. task-3837646 Forward-Port-Of: odoo/odoo#164907 Forward-Port-Of: odoo/odoo#159913
When emoji picker has no emojis, this means the loading of emojis failed. In that case, the screen should have its content centered. Task-3916943 Before/After <img width="303" alt="before" src="https://github.com/odoo/odoo/assets/6569390/5fb2709e-34c5-4027-ab68-cc47d97fc15b"> <img width="300" alt="after" src="https://github.com/odoo/odoo/assets/6569390/8065f4af-0200-4614-b492-63e3fa881b9d"> Forward-Port-Of: odoo/odoo#164896
Original PR description
When emoji picker has no emojis, this means the loading of emojis failed. In that case, the screen should have its content centered. Task-3916943 Before/After <img width="303" alt="before" src="https://github.com/odoo/odoo/assets/6569390/5fb2709e-34c5-4027-ab68-cc47d97fc15b"> <img width="300" alt="after" src="https://github.com/odoo/odoo/assets/6569390/8065f4af-0200-4614-b492-63e3fa881b9d"> Forward-Port-Of: odoo/odoo#164896
Problem: On the webshop product page of a product configured to display the available quantity, the quantity is displayed as a raw float, so it is sometimes shown with many digits. Note that, since the quantity is `float_round`ed python-side, often this doesn't appear. 1.4 is an quantity for which this does show. Exact steps to reproduce: * On a db with sales, webshop and inventory installed, create a product for sale * adjust the on-hand quantity to be 1.4 * set the product to displ
Original PR description
Problem:
On the webshop product page of a product configured to display the
available quantity, the quantity is displayed as a raw float, so it is
sometimes shown with many digits.
Note that, since the quantity is `float_round`ed python-side, often this
doesn't appear. 1.4 is an quantity for which this does show.
Exact steps to reproduce:
* On a db with sales, webshop and inventory installed, create a product
for sale
* adjust the on-hand quantity to be 1.4
* set the product to display remaining quantity on the e-shop (sales
tab) if below x > 1.4
* go to the webshop page of the product, the remaining quantity is shown
as 1.4000...1
Desired:
The quantity is displayed as is for integers. ("usual" case)
The quantity is displayed with as many decimals as are significant,
based on the `uom_rounding`.
opw-3827850
Forward-Port-Of: odoo/odoo#164697
Forward-Port-Of: odoo/odoo#160356- Allow anyone to preview the exhibitor description on events that have not started yet (not only registered people) - Fix/improve the handling of exhibitors missing a profile image or description (don't display broken images/"false") - touch up the layout of registration buttons to be more standard --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163105
Original PR description
- Allow anyone to preview the exhibitor description on events that have not started yet (not only registered people) - Fix/improve the handling of exhibitors missing a profile image or description (don't display broken images/"false") - touch up the layout of registration buttons to be more standard --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163105
The date_deadline propagation would update the sale records multiple times depending on some configuration (check example below). This happens because 'already_propagate_ids' is copied at the beginning of _set_date_deadline (set | set = new set). So, when a child move propagates to multiple other moves, it is not known by the parent move, which will redo the propagation. To prevent this, we always keep the same reference for 'already_propagate_ids' (context: 'date_deadline_propagate_ids'). Th
Original PR description
The date_deadline propagation would update the sale records multiple times depending on some configuration (check example below). This happens because 'already_propagate_ids' is copied at the…
The date_deadline propagation would update the sale records multiple times depending on some configuration (check example below). This happens because 'already_propagate_ids' is copied at the beginning of _set_date_deadline (set | set = new set). So, when a child move propagates to multiple other moves, it is not known by the parent move, which will redo the propagation.
To prevent this, we always keep the same reference for 'already_propagate_ids' (context: 'date_deadline_propagate_ids'). This means that a parent and child move share the exact same Set, and when the child move updates the Set, it also updates the parent Set. So when a child move propagates, the parent will know which moves have been done.
MOVES LINKAGE
```
Move B
/ | \
Move A | Move D
\ | /
Move C
```
PROPAGATION GRAPHS:
```
BEFORE | AFTER
------------+--------
A | A
/ \ | |
C B | B
/ \ / \ | |
B D C D | C
| | | | | |
D B D C | D
------------+--------
11 | 4 NUMBER OF CALLS
```
OPW-3904178

---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#164734Since commit[1], we have added an animation on the `DraggableHook`. However, we have used the same CSS `keyframes` name (`bounce`) as another one added[2] before by `hr_referral` module (enterprise). CSS `keyframes` can't be scoped [3] as they don't follow the cascade. So when `hr_referral` is installed the `keyframes` is override and produce some weird animation when the `DraggableHook` is used. Steps to reproduce: * Go to the HomeMenu (enterprise) on small screen * Click on a App => Bug
Original PR description
Since commit[1], we have added an animation on the `DraggableHook`. However, we have used the same CSS `keyframes` name (`bounce`) as another one added[2] before by `hr_referral` module (enterprise). CSS `keyframes` can't be scoped [3] as they don't follow the cascade. So when `hr_referral` is installed the `keyframes` is override and produce some weird animation when the `DraggableHook` is used. Steps to reproduce: * Go to the HomeMenu (enterprise) on small screen * Click on a App => Bug a weird animation appear before the "navigation" to the App task-3918268 [1]: odoo/odoo@4c5cf0962f91d05085fea75e9c26ecdca9c0eb13 [2]: odoo/enterprise@08c19c4cbd1af70859cbdb49bb535927b1cbf76d [3]: https://developer.mozilla.org/en-US/docs/Web/CSS/@keyframes#resolving_duplicates --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164914
Before this commit, it was impossible to force the use of 'vanilla' ISO 20022 over SEPA in every case. The 'Generic' selection value existed in the PAIN version field, but its actual meaning was to use the regular SEPA, not what the inner code of the module calls "generic SEPA", which actually corresponds to ISO 20022 without the SEPA-specific restrictions. ISO 20022 is currently automatically used a a fallback by our SEPA implementation when trying to generate a file which values would viola
Original PR description
Before this commit, it was impossible to force the use of 'vanilla' ISO 20022 over SEPA in every case. The 'Generic' selection value existed in the PAIN version field, but its actual meaning was to…
Before this commit, it was impossible to force the use of 'vanilla' ISO 20022 over SEPA in every case. The 'Generic' selection value existed in the PAIN version field, but its actual meaning was to use the regular SEPA, not what the inner code of the module calls "generic SEPA", which actually corresponds to ISO 20022 without the SEPA-specific restrictions. ISO 20022 is currently automatically used a a fallback by our SEPA implementation when trying to generate a file which values would violate the SEPA restrictions (such as a non-IBAN account or non-EUR amount). This works fine when your wish is to do SEPA and you need something more generic "by accident", and maybe your bank accepts it. In that context, we got a report from a customer with his journal configured to "Generic", who actually wished to use ISO 20022 instead of SEPA: - When making a batch payment containing a non-EUR amount or non-IBAN account, this worked fine - When making a batch payment violating none of the SEPA restrictions, SEPA was used instead of ISO 20022 When SEPA was chosen, SvcLvl node was set to "SEPA" in the file, as it is the only accepted value. This got rejected by the customer's bank, which expected only ISO 20022, in which "SEPA" is not a legit SvcLvl value. With our commit, this node will now receive "NURG" as its value. This commit is intended as a small patch to unlock customers facing this exact issue. More proper and sandboxed support for ISO 20022 will follow in master. opw-3848174 Forward-Port-Of: odoo/enterprise#62240 Forward-Port-Of: odoo/enterprise#62054
- Amounts should be matched to 99999, not 99.999. This was badly converted from previous versions when integrating these checks in the new report framework in 16.0 - The check made for grid 44 mentioned the wrong grid in its label. This had already be fixed in 15.0, but apparently crossed with the 16.0 refactoring, which undid it by mistake (probably because it moved the file) See documentation: https://eservices.minfin.fgov.be/intervat/static/help/FR/regles_de_validation_d_une_declaration.h
Original PR description
- Amounts should be matched to 99999, not 99.999. This was badly converted from previous versions when integrating these checks in the new report framework in 16.0 - The check made for grid 44 mentioned the wrong grid in its label. This had already be fixed in 15.0, but apparently crossed with the 16.0 refactoring, which undid it by mistake (probably because it moved the file) See documentation: https://eservices.minfin.fgov.be/intervat/static/help/FR/regles_de_validation_d_une_declaration.htm Forward-Port-Of: odoo/enterprise#62229 Forward-Port-Of: odoo/enterprise#61376
Steps to reproduce the bug: - Create a storable product “P1”: - BoM: - Component: C1 - Workorders: OP1 and OP2 - Create a Manufacture order to produce one P1 - Confirm the MO - start the OP1 and mark it as done - start the Shop Floor from the "Work Orders" tab Problem: Operation 1 and 2 are visible, instead of only the OP2 opw-3904023 Forward-Port-Of: odoo/enterprise#62206
Original PR description
Steps to reproduce the bug:
- Create a storable product “P1”:
- BoM:
- Component: C1
- Workorders: OP1 and OP2
- Create a Manufacture order to produce one P1
- Confirm the MO
- start the OP1 and mark it as done
- start the Shop Floor from the "Work Orders" tab
Problem:
Operation 1 and 2 are visible, instead of only the OP2
opw-3904023
Forward-Port-Of: odoo/enterprise#62206Previous to this commit, in demo, when installing CodaBox, if a Belgian company already had an accounting firm set, it was overriden by a new one. This commit fixes this by checking if the Belgian company already has an accounting firm set. If so, we do not modify it. task-id: none Forward-Port-Of: odoo/enterprise#60822
Original PR description
Previous to this commit, in demo, when installing CodaBox, if a Belgian company already had an accounting firm set, it was overriden by a new one. This commit fixes this by checking if the Belgian company already has an accounting firm set. If so, we do not modify it. task-id: none Forward-Port-Of: odoo/enterprise#60822
Currently, when creating a task from the calendar view in the field service app, the start date that was set by the user is not registered. Steps to reproduce: ------------------- * Go to the **Field Service** App * Switch to the calendar view * Select "Tomorrow" (x+1) * For the new task, set the `Planned Date` as follows: * Start date : The day after tomorrow at 3PM (x+2 3PM) * End date: Three days after the start at 4PM (x+5 4PM) * Fill anything for the other required fields > *
Original PR description
Currently, when creating a task from the calendar view in the field service app, the start date that was set by the user is not registered. Steps to reproduce: ------------------- * Go to the **Field…
Currently, when creating a task from the calendar view in the field service app, the start date that was set by the user is not registered. Steps to reproduce: ------------------- * Go to the **Field Service** App * Switch to the calendar view * Select "Tomorrow" (x+1) * For the new task, set the `Planned Date` as follows: * Start date : The day after tomorrow at 3PM (x+2 3PM) * End date: Three days after the start at 4PM (x+5 4PM) * Fill anything for the other required fields > **Save & Close** * Switch to the kanban view and select the task created > Observation: the start date of `Planned Date` is set at Tomorrow 7AM instead of the day after at 3PM Why the fix: ------------ This behavior was introduced after this commit: https://github.com/odoo/enterprise/commit/39b9362d0469d71b59d47e9d66d5e73b9a46520b. This commit added an inverse method to the field `planned_date_start` to enable drag and droping tasks in the calendar view. And `planned_date_start` is a field that exists purely for calendar displaying of tasks. https://github.com/odoo/enterprise/blob/c8c4a52b508621b45239332273832de26a085931/project_enterprise/models/project_task.py#L299-L305 When creating a task in the calendar view, the context contains `default_planned_date_start` and its value depends on the first day you selected in the calendar. At task creation, `default_planned_date_start` triggers a write in `planned_date_start` which triggers its inverse method. This removes the `default_planned_date_start` from the context which won't trigger the inverse method. We don't have to worry about the line `default_planned_date_begin: default_planned_date_start,` as if we have selected a start date in the form, it will be present inside `vals_list` in the create function and will use that value instead of the one in the context. opw-3850455 Forward-Port-Of: odoo/enterprise#61351
Steps to reproduce: Configure Sendcloud with a shipping product that provides customizable functionalities, and select `None` as the functionality filter. All of the shipping methods will be filtered out and we get an error message: `There's no shipping method matching all your selected filters for this picking/order.` The issue is that `'None'` is passed as a string in the list of functionalities but it is checked as `None` type. To fix the issue we check if the string exists in the fil
Original PR description
Steps to reproduce: Configure Sendcloud with a shipping product that provides customizable functionalities, and select `None` as the functionality filter. All of the shipping methods will be filtered out and we get an error message: `There's no shipping method matching all your selected filters for this picking/order.` The issue is that `'None'` is passed as a string in the list of functionalities but it is checked as `None` type. To fix the issue we check if the string exists in the filter. opw-3878116 Forward-Port-Of: odoo/enterprise#61360