Daily updates from Odoo
Navigate
Branch
Saturday, April 13, 2024
32 changes
24 changes
Enhancements to existing features
Removed unused code from the Mexican electronic invoicing components to simplify maintenance. This lowers technical clutter and helps future updates be safer, without changing expected day-to-day user behavior.
Inserted pivot tables in spreadsheets now use the same table styling approach as other spreadsheet tables instead of a fixed pivot-specific look. This makes spreadsheet reports more visually consistent and easier to maintain without changing core business workflows.
Original PR description
This comit replace the hard-coded pivot style with table style when inserting a pivot. Task: [3709540](https://www.odoo.com/web#id=3709540&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
The invoice extraction flow now shows a helpful placeholder when a vendor is not automatically found. This guides users to select a vendor from the extracted document so they can create it more easily, reducing confusion during invoice processing.
Miscellaneous changes
Steps to reproduce ================== - Go to consolidation - Open a record from the dashboard - Go to "trial balance grid" by clicking on the edit button - Clicks on any consolidation account => It gives the traceback Cause of the issue ================== The value of the "range" variable is undefined, thus giving the traceback while trying to access the "name". Forward-Port-Of: odoo/enterprise#60442
Original PR description
Steps to reproduce ================== - Go to consolidation - Open a record from the dashboard - Go to "trial balance grid" by clicking on the edit button - Clicks on any consolidation account => It gives the traceback Cause of the issue ================== The value of the "range" variable is undefined, thus giving the traceback while trying to access the "name". Forward-Port-Of: odoo/enterprise#60442
**Steps to reproduce:** - Enable debug mode. - Select a document (say a pdf file). - Replace it with a non-pdf file (say png). **Issue:** Currently, the file extension is not updated on replacing a document according to the newly uploaded document. **Cause:** The compute method of file extension fetched and set its value only if it was not set already. As a result, the extension was never updated as the field already had a set value (of the older file). **Fix:** This PR alters th
Original PR description
**Steps to reproduce:** - Enable debug mode. - Select a document (say a pdf file). - Replace it with a non-pdf file (say png). **Issue:** Currently, the file extension is not updated on replacing a document according to the newly uploaded document. **Cause:** The compute method of file extension fetched and set its value only if it was not set already. As a result, the extension was never updated as the field already had a set value (of the older file). **Fix:** This PR alters the code of `_compute_file_extension` to ensure that the extension is recomputed and set every time the name of a document file changes. Task: [3801686](https://www.odoo.com/web#id=3801686&menu_id=4722&cids=2&action=333&active_id=10888&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#58656
Configure an email alias for the jounrnal 'Vendor Bills' Send to the mail alias two pdf bills Issue: Only 1 record is created with the 2 bills as attachment The system should split the bills into separate records, but this does not occur: - after the first bill is processed the current move extract_state is 'waiting_extraction' - when the system check whether to extract data from the second document the result is negative, while it should be positive when new_document is true, i
Original PR description
Configure an email alias for the jounrnal 'Vendor Bills' Send to the mail alias two pdf bills Issue: Only 1 record is created with the 2 bills as attachment The system should split the bills into separate records, but this does not occur: - after the first bill is processed the current move extract_state is 'waiting_extraction' - when the system check whether to extract data from the second document the result is negative, while it should be positive when new_document is true, in order to create a separate move. Related: https://github.com/odoo/odoo/pull/160983 opw-3822262 Forward-Port-Of: odoo/enterprise#60480 Forward-Port-Of: odoo/enterprise#60168
**[FIX] round_per_line: Fix payment CFDI rounding issues** - 'base' * 'tasa_o_cuota' must give 'importe' with 0.01 rounding error allowed. Suppose an invoice of 5 * 0.47 with 16% tax. Each line gives a tax amount of 0.08 so 0.40 for the whole invoice. However, 5 * 0.47 = 2.35 and 2.35 * 0.16 = 0.38 so the constraint is failing. - 'base' + 'importe' must be exactly equal to the part that is actually paid. Using the same example, we need to report 2.35 + 0.40 = 2.75 **[FIX] round_globall
Original PR description
**[FIX] round_per_line: Fix payment CFDI rounding issues** - 'base' * 'tasa_o_cuota' must give 'importe' with 0.01 rounding error allowed. Suppose an invoice of 5 * 0.47 with 16% tax. Each line gives…
**[FIX] round_per_line: Fix payment CFDI rounding issues** - 'base' * 'tasa_o_cuota' must give 'importe' with 0.01 rounding error allowed. Suppose an invoice of 5 * 0.47 with 16% tax. Each line gives a tax amount of 0.08 so 0.40 for the whole invoice. However, 5 * 0.47 = 2.35 and 2.35 * 0.16 = 0.38 so the constraint is failing. - 'base' + 'importe' must be exactly equal to the part that is actually paid. Using the same example, we need to report 2.35 + 0.40 = 2.75 **[FIX] round_globally: Manage round globally** Before, the results given in case of round_globally was the same as round_per_line. Suppose an invoice of 5 * 0.47 with 16% tax. We were sending a tax detail of 0.47 * 0.16 ~= 0.08 for each line, so 0.40 for the whole invoice. However, in case of round globally, the total tax is 5 * 0.47 * 0.16 ~= 0.38. The invoice was incorrectly reported as an invoice of 2.75 instead of 2.73. To fix that, the base/tax amount per line are now given using 6 decimals. **[FIX] Deterministic invoices's order in payment CFDI** Before generating a payment CFDI, make sure the invoices are sorted in order to avoid a not deterministic xml. **[FIX] Rounding of TipoCambio** On the xml, the rate to switch from the invoice to payment rate is rounded to 6 decimals. By consistency, we need to use the same number of decimals during the computation to avoid the xml to be rejected. For example: With an MX company setup USD Exchange rate: - Yesterday 17.187 - Today 17.0357 Create an invoice with: - date: yesterday, quantity: 200, unit price: 7.34 USD, tax: 16% Confirm and Send the invoice Register the payment with today date Open the payment and force cfdi SAT Validation will return an error: ''' Code : CRP20204 Message : El valor del campo TotalTrasladosBaseIVA16 no es igual al redondeo de la suma del resultado de multiplicar cada uno de los importes de los atributos BaseP de los impuestos trasladados registrados en el elemento TrasladoP donde los atributos contengan en ImpuestoP el valor IVA, en TipoFactorP el valor Tasa y en TasaOCuotaP el valor 0.160000, por el valor registrado en el atributo TipoCambioP de cada nodo Pago. ''' opw-3775099 **[FIX] Rounding of TotalTrasladosBaseIVA16** - Have an MX company setup - USD Exchange rate: - Yesterday 16.9912 - Today 17.068 - Create two invoices as follows: 1) date yesterday, qty 68.25, unit price 68 USD, tax 16%, total 5383.56 USD 2) date yesterday, qty 24.00, unit price 68 USD, tax 16%, total 1893.12 USD Confirm and Send the two invoices In invoices list view, select both and register payment Select 'Group Payments' Open one of the invoices, and press "Update Payments" In CFDI Tab Force cfdi for the payment Issue: Cfdi validation return an error """ Code : CRP20204 Message : El valor del campo TotalTrasladosBaseIVA16 no es igual al redondeo de la suma del resultado de multiplicar cada uno de los importes de los atributos BaseP de los impuestos trasladados registrados en el elemento TrasladoP donde los atributos contengan en ImpuestoP el valor IVA, en TipoFactorP el valor Tasa y en TasaOCuotaP el valor 0.160000, por el valor registrado en el atributo TipoCambioP de cada nodo Pago. """ opw-3775099 Forward-Port-Of: odoo/enterprise#60580 Forward-Port-Of: odoo/enterprise#60025
### Steps to reproduce * install `l10n_lu` * open the Tax Report * create a tax closing and attempt to post it You will be met with a traceback: `Trying to dispatch an action on a report not compatible with the provided options` ### Cause The bug occurs when attempting to post a tax closing for a tax report that includes sections. This issue originates from the behavior of the `get_options()` method, which, when invoked on a report containing sections, retrieves the `report_id` o
Original PR description
### Steps to reproduce * install `l10n_lu` * open the Tax Report * create a tax closing and attempt to post it You will be met with a traceback: `Trying to dispatch an action on a report not…
### Steps to reproduce * install `l10n_lu` * open the Tax Report * create a tax closing and attempt to post it You will be met with a traceback: `Trying to dispatch an action on a report not compatible with the provided options` ### Cause The bug occurs when attempting to post a tax closing for a tax report that includes sections. This issue originates from the behavior of the `get_options()` method, which, when invoked on a report containing sections, retrieves the `report_id` of a section instead of the main report's ID. This discrepancy occurs because of a feature in the code known as 'rerouting', which intentionally changes the `report_id` to that of the section. Consequently, when an action is dispatched to the main report using these options, an error is triggered due to the mismatch between the expected report ID and the one provided through the options. ### Fix To resolve this issue, the fix involves utilizing the `on_sections_source` parameter when dispatching the action for tax closing. By setting this parameter to true for composite reports, it effectively disables the rerouting behavior, ensuring that the action is directed to the correct report ID, thus avoiding the error. opw-3816175 opw-3833979 Forward-Port-Of: odoo/enterprise#59472
Added partners tax id to DateV export. When exporting the DateV zip file from the General Ledger (in Germany namely), the Customers and Vendors CSV files miss the TAX ID of the partners. The auditors demand it to check the validity of the taxes applied to each transaction. VAT number should be added to the csv files (10th column) according to the DATEV documentation: https://developer.datev.de/datev/platform/de/dtvf/formate/debitoren_kreditoren task-3806969 Forward-Port-Of: odoo/enterp
Original PR description
Added partners tax id to DateV export. When exporting the DateV zip file from the General Ledger (in Germany namely), the Customers and Vendors CSV files miss the TAX ID of the partners. The auditors demand it to check the validity of the taxes applied to each transaction. VAT number should be added to the csv files (10th column) according to the DATEV documentation: https://developer.datev.de/datev/platform/de/dtvf/formate/debitoren_kreditoren task-3806969 Forward-Port-Of: odoo/enterprise#59333
Current request to mapbox matrix API is failing because the matrix requested have a size of 1. Based on their documentation: "The minimum number of elements per request is two (one source × two destinations, or two sources × one destination); requests with single-element results are not supported." Therefore we add the first coordinate point as destination. First distance received by API will be 1st to 1st point then second one is 1st to 2nd point. opw-3845936 Forward-Port-Of: odoo/en
Original PR description
Current request to mapbox matrix API is failing because the matrix requested have a size of 1. Based on their documentation: "The minimum number of elements per request is two (one source × two destinations, or two sources × one destination); requests with single-element results are not supported." Therefore we add the first coordinate point as destination. First distance received by API will be 1st to 1st point then second one is 1st to 2nd point. opw-3845936 Forward-Port-Of: odoo/enterprise#60598
### [FIX] l10n_be_codabox: fallback on Company ID if no Tax ID In Belgium, some companies may not have a Tax ID (for instance non-profit organisations). In that case, we should fallback on the Company ID. task-id: none (validated with LAJE) Forward-Port-Of: odoo/enterprise#60628 Forward-Port-Of: odoo/enterprise#60333
Original PR description
### [FIX] l10n_be_codabox: fallback on Company ID if no Tax ID In Belgium, some companies may not have a Tax ID (for instance non-profit organisations). In that case, we should fallback on the Company ID. task-id: none (validated with LAJE) Forward-Port-Of: odoo/enterprise#60628 Forward-Port-Of: odoo/enterprise#60333
To reproduce: 1. Install pos_restaurant_appointment 2. Create an appointment so that the beginning is before "now" and the end is < 1 hour after "now" Before this commit: It the filter remove values such that nothing is left, the getMin function will crash with a JS traceback: `Caused by: TypeError: Reduce of empty array with no initial value` After this commit: The PoS load as normal opw-3848704 Forward-Port-Of: odoo/enterprise#60520 Forward-Port-Of: odoo/enterprise#60457
Original PR description
To reproduce: 1. Install pos_restaurant_appointment 2. Create an appointment so that the beginning is before "now" and the end is < 1 hour after "now" Before this commit: It the filter remove values such that nothing is left, the getMin function will crash with a JS traceback: `Caused by: TypeError: Reduce of empty array with no initial value` After this commit: The PoS load as normal opw-3848704 Forward-Port-Of: odoo/enterprise#60520 Forward-Port-Of: odoo/enterprise#60457
When marketing activity is created with trigger sms_not_clicked it isn't being run because schedule_date stays null. task-3648034 Forward-Port-Of: odoo/enterprise#59135
Original PR description
When marketing activity is created with trigger sms_not_clicked it isn't being run because schedule_date stays null. task-3648034 Forward-Port-Of: odoo/enterprise#59135
Before this commit, in case of a 401 response by UPS, the user got a traceback `KeyError: 'currency_code'` This happened because in that case, the `result` variable was set to `{'Unauthorized':1}`, but this was not caught in `ups_rest_send_shipping` This commit raises a UserError to avoid the traceback. opw-3848137 Forward-Port-Of: odoo/enterprise#60513 Forward-Port-Of: odoo/enterprise#60014
Original PR description
Before this commit, in case of a 401 response by UPS, the user got a traceback `KeyError: 'currency_code'`
This happened because in that case, the `result` variable was set to `{'Unauthorized':1}`, but this was not caught in `ups_rest_send_shipping`
This commit raises a UserError to avoid the traceback.
opw-3848137
Forward-Port-Of: odoo/enterprise#60513
Forward-Port-Of: odoo/enterprise#60014Before this commit, when the user clicks on `Copy Previous` in the gantt view of `planning.slot`, a filter will be added to highlight the shifts added by the action executed. However, if the user clicks on `Auto Plan` to plan the open shifts automatically, the filter is disappeared and no shifts are highlighted as before. The reason is because we toggle the filter without checking if that filter is already there in the search view. This commit checks if the filter is already there before togg
Original PR description
Before this commit, when the user clicks on `Copy Previous` in the gantt view of `planning.slot`, a filter will be added to highlight the shifts added by the action executed. However, if the user clicks on `Auto Plan` to plan the open shifts automatically, the filter is disappeared and no shifts are highlighted as before. The reason is because we toggle the filter without checking if that filter is already there in the search view. This commit checks if the filter is already there before toggle it. If yes, then we notify the model instead of toggling the facet in the search view. runbot-55489 runbot-58209 runbot-56675 runbot-58149 Forward-Port-Of: odoo/enterprise#60444 Forward-Port-Of: odoo/enterprise#60341
Steps to reproduce ==================== 1. Install Appointment and the Gcal sync. 2. Connect your Google Account. 3. Create an appointment type and keep the videoConference field blank. 4. Book an appointment. The meeting link is added to the calendar event of Google in sync. After this PR ================== - Add a meeting link only if Google Meet is selected in the configuration. - The appointment_google_calendar module is automatically installed based on dependencies. Task-3614
Original PR description
Steps to reproduce ==================== 1. Install Appointment and the Gcal sync. 2. Connect your Google Account. 3. Create an appointment type and keep the videoConference field blank. 4. Book an appointment. The meeting link is added to the calendar event of Google in sync. After this PR ================== - Add a meeting link only if Google Meet is selected in the configuration. - The appointment_google_calendar module is automatically installed based on dependencies. Task-3614890 Forward-Port-Of: odoo/enterprise#53569
An interviewer cannot see refused or archived applicants in the hr_recruitment module. The problem comes from hr_referral. With this fix, the interviewer can see refused and archived applicants. Task: 3802121 Forward-Port-Of: odoo/enterprise#58956
Original PR description
An interviewer cannot see refused or archived applicants in the hr_recruitment module. The problem comes from hr_referral. With this fix, the interviewer can see refused and archived applicants. Task: 3802121 Forward-Port-Of: odoo/enterprise#58956
Before this PR ================== At the time of the upload failure we display the standard error msg, Because of this, the user will try to upload the video again and again and never know the exact reason for the failure. After this PR ================= This commit adds some validation so that we avoid any upload failure from the YouTube side and display a proper error msg. 1). Checks that Title is not more than 100 characters. 2). Check that the Description is not more than 500
Original PR description
Before this PR ================== At the time of the upload failure we display the standard error msg, Because of this, the user will try to upload the video again and again and never know the exact reason for the failure. After this PR ================= This commit adds some validation so that we avoid any upload failure from the YouTube side and display a proper error msg. 1). Checks that Title is not more than 100 characters. 2). Check that the Description is not more than 5000 characters. 3). Checks that Title does not contain > or < forbidden character. 4). Checks that the description does not contain > or < forbidden character. These checks are done at the time of the upload video and also at the time of the post. Task-3392167 Forward-Port-Of: odoo/enterprise#44032
This commit adds various changes to the codebase to fix issues with the leaderboard system, issues such as the leaderboard being displayed even though the current employee has no billable time rate, billing rate target not having the fa-building icon next to it, theorical working hours being incorrect, visual issues and many more. task-3570302 Forward-Port-Of: odoo/enterprise#60405 Forward-Port-Of: odoo/enterprise#50307
Original PR description
This commit adds various changes to the codebase to fix issues with the leaderboard system, issues such as the leaderboard being displayed even though the current employee has no billable time rate, billing rate target not having the fa-building icon next to it, theorical working hours being incorrect, visual issues and many more. task-3570302 Forward-Port-Of: odoo/enterprise#60405 Forward-Port-Of: odoo/enterprise#50307
This commit fixes an issue with the CheckURL method in our utils, it wasn't supporting low enough browser versions. The static method canParse from the URL interface is only supported from Firefox 115+, Chrome 120+ and Safari 17+. This results in errors linked to the usage of this method, as it does not exist in lower versions. To fix that, this call is replaced by a try catch. If the URL constructor raises a TypeError, this is expected and the function returns False. => This is the same
Original PR description
This commit fixes an issue with the CheckURL method in our utils, it wasn't supporting low enough browser versions. The static method canParse from the URL interface is only supported from Firefox 115+, Chrome 120+ and Safari 17+. This results in errors linked to the usage of this method, as it does not exist in lower versions. To fix that, this call is replaced by a try catch. If the URL constructor raises a TypeError, this is expected and the function returns False. => This is the same behavior as the static method version. task-3842970 Forward-Port-Of: odoo/enterprise#59958
### Steps to reproduce: - Go to Settings > Shipping > Fedex > Fedex Shipping Methods - Click on "Fedex international" and unable: "Generate Return Label" - Create a new sale order for a product - Click on "add shipping" and select "Fedex international" - Confirm the SO and go to the related delivery - Add the qty as done and validate the delivery #### > you will have a traceback (if not stopped by a user/config error) ### Cause of the issue: The `packages` defined here: https:/
Original PR description
### Steps to reproduce: - Go to Settings > Shipping > Fedex > Fedex Shipping Methods - Click on "Fedex international" and unable: "Generate Return Label" - Create a new sale order for a product -…
### Steps to reproduce: - Go to Settings > Shipping > Fedex > Fedex Shipping Methods - Click on "Fedex international" and unable: "Generate Return Label" - Create a new sale order for a product - Click on "add shipping" and select "Fedex international" - Confirm the SO and go to the related delivery - Add the qty as done and validate the delivery #### > you will have a traceback (if not stopped by a user/config error) ### Cause of the issue: The `packages` defined here: https://github.com/odoo/enterprise/blob/b3fe7d2bef7e0992d5ae7461a91861f5be059a0e/delivery_fedex/models/delivery_fedex.py#L369 is a list of records. However, these two lines: https://github.com/odoo/enterprise/blob/b3fe7d2bef7e0992d5ae7461a91861f5be059a0e/delivery_fedex/models/delivery_fedex.py#L377 https://github.com/odoo/enterprise/blob/b3fe7d2bef7e0992d5ae7461a91861f5be059a0e/delivery_fedex/models/delivery_fedex.py#L380 try to access the `.commodities` field of that object. A list comprehension is therefore needed for that operation to work properly. opw-3810796 --- Forward-Port-Of: odoo/enterprise#59736
Purpose ======= Fix the unnecessary horizontal and vertical scrollbars appearing in the inspector when a document name is too long. Specifications ============== In the inspector, when the value of the fields of type model (like the Journal Entry or Signature fields) is too long, the value is styled so that its width takes the max-width. However the field max-width is incorrectly computed. It is missing the table-sm class horizontal padding. The field is thus too big to fit in the ins
Original PR description
Purpose ======= Fix the unnecessary horizontal and vertical scrollbars appearing in the inspector when a document name is too long. Specifications ============== In the inspector, when the value of the fields of type model (like the Journal Entry or Signature fields) is too long, the value is styled so that its width takes the max-width. However the field max-width is incorrectly computed. It is missing the table-sm class horizontal padding. The field is thus too big to fit in the inspector and scrollbars appear. Taking into account the table-sm paddings while computing the field value max-width. As the field label left padding is set to 0, the table-sm padding is multiplied by 3 (right padding of label, left and right padding of value). Also adding the "overflow-hidden" class on the inspector so that scrollbars never appear. Task-3829716 Forward-Port-Of: odoo/enterprise#60430 Forward-Port-Of: odoo/enterprise#59652
This commit's purpose is to improve the error message when a user is adding new company to a template that had none set before. Steps to reproduce: - open fsm app - open configuration menu, worksheet template - select the 'Device installation and maintenance' worksheet (it is the one with tasks linked to it) - add a new company 'my company (chicago)' and save. A validation error message pops up. That is fine and the expected behavior, since the new companies of the template are not c
Original PR description
This commit's purpose is to improve the error message when a user is adding new company to a template that had none set before. Steps to reproduce: - open fsm app - open configuration menu, worksheet template - select the 'Device installation and maintenance' worksheet (it is the one with tasks linked to it) - add a new company 'my company (chicago)' and save. A validation error message pops up. That is fine and the expected behavior, since the new companies of the template are not consistent with the task already linked to it. Source: the generic message is using the old values of the companies of the worksheet, but since there were none, no names are displayed and the error message is confusing. Solution: check if the worksheet used to have companies set before the user changes. If not, display a relevant error message task - 3749225 Forward-Port-Of: odoo/enterprise#59782 Forward-Port-Of: odoo/enterprise#57335
*: hr_payroll_holidays Strings within inline templates are not translatable, so we convert these templates into standard templates so that they can be. Task-3761551 community pr: https://github.com/odoo/odoo/pull/159892 Forward-Port-Of: odoo/enterprise#60288 Forward-Port-Of: odoo/enterprise#59877
Original PR description
*: hr_payroll_holidays Strings within inline templates are not translatable, so we convert these templates into standard templates so that they can be. Task-3761551 community pr: https://github.com/odoo/odoo/pull/159892 Forward-Port-Of: odoo/enterprise#60288 Forward-Port-Of: odoo/enterprise#59877
8 changes
Resolved issues and error corrections
This update fixes a bug in the Gantt chart view where quickly resizing a task could accidentally resize a neighboring task instead. The fix improves how the system detects when a resize action begins, ensuring the correct task is selected for resizing. This prevents user frustration and data entry errors when working with tightly packed schedules.
Original PR description
**Before this commit** At the start of a pill resize sequence, if you go fast and your pointer enters an adjacent pill right before the sequence starts you may end up resizing the wrong record. **After this commit** The draggable_hook_builder has been improved in order to inform us when a drag sequence will start. We take advantage of this in order to fix the above issue. Forward-Port-Of: odoo/enterprise#60510 Forward-Port-Of: odoo/enterprise#60328
This update resolves a crash that occurred when users clicked on consolidation accounts in the trial balance grid view. The issue was caused by an undefined variable that prevented the system from properly accessing account information. Users can now navigate and interact with consolidation accounts without encountering errors.
Original PR description
Steps to reproduce ================== - Go to consolidation - Open a record from the dashboard - Go to "trial balance grid" by clicking on the edit button - Clicks on any consolidation account => It gives the traceback Cause of the issue ================== The value of the "range" variable is undefined, thus giving the traceback while trying to access the "name". Forward-Port-Of: odoo/enterprise#60442
Fixed an issue where document file extensions were not updating when users replaced a document with a different file type. Previously, if you uploaded a PDF and then replaced it with a PNG, the system would still show the PDF extension. This fix ensures the file extension automatically updates to match the newly uploaded document.
Original PR description
**Steps to reproduce:** - Enable debug mode. - Select a document (say a pdf file). - Replace it with a non-pdf file (say png). **Issue:** Currently, the file extension is not updated on replacing a document according to the newly uploaded document. **Cause:** The compute method of file extension fetched and set its value only if it was not set already. As a result, the extension was never updated as the field already had a set value (of the older file). **Fix:** This PR alters the code of `_compute_file_extension` to ensure that the extension is recomputed and set every time the name of a document file changes. Task: [3801686](https://www.odoo.com/web#id=3801686&menu_id=4722&cids=2&action=333&active_id=10888&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#58656
This fix addresses a problem where default payroll rules were being incorrectly added to inactive payroll structures. The system was finding and applying default rules even when they were marked as inactive, causing unintended behavior when users created their own custom structures. This update ensures default rules are only applied appropriately.
Original PR description
return doesn't work in a previous way because you this structure is added as inactive and whoever adds his own structures, default rules added there because even it is false, `self.env.ref` will find it anyway.
This fix corrects an issue where custom labels entered during bank reconciliation were only applied to one line of the write-off journal entry instead of all lines. Now when users create a write-off and define a label, that label will consistently appear on all related lines in the accounting records, ensuring clearer and more accurate financial documentation.
Original PR description
When creating a write-off during the reconciliation, the label defined is set on only one line instead of all the line of the write-off journal entry. opw-3773178 closes odoo/enterprise#59142 Signed-off-by: Laurent Smet (las) <las@odoo.com> Forward-Port-Of: odoo/enterprise#60641 Forward-Port-Of: odoo/enterprise#60056
This fix resolves an issue where distance calculations for Mexican EDI shipments were failing due to Mapbox API requirements. The system now properly formats requests to meet Mapbox's minimum matrix size requirement, ensuring shipping distance data is accurately retrieved for logistics operations.
Original PR description
Current request to mapbox matrix API is failing because the matrix requested have a size of 1. Based on their documentation: "The minimum number of elements per request is two (one source × two destinations, or two sources × one destination); requests with single-element results are not supported." Therefore we add the first coordinate point as destination. First distance received by API will be 1st to 1st point then second one is 1st to 2nd point. opw-3845936 Forward-Port-Of: odoo/enterprise#60598
This update fixes a resize problem in the Gantt view by adding drag information to the web interface's dragging system. The change improves the user experience when resizing elements in the Gantt scheduling view.
Original PR description
This commit will make a `willDrag` information available to the draggable_hook_builder context. This is needed to fix a resize issue in the gantt view. See correlated enterprise pull request. Forward-Port-Of: odoo/odoo#161446 Forward-Port-Of: odoo/odoo#161096
Documentation and clarification updates
This update adds new members to the Adhoc Contributor License Agreement (CLA) list. The change ensures that additional contributors are properly registered and authorized to contribute to the Odoo project under the corporate CLA agreement.
Original PR description
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#161548