Daily updates from Odoo
Navigate
Branch
Wednesday, September 18, 2024
70 changes
16 changes
Resolved issues and error corrections
Users can now remove a component from a confirmed manufacturing order without triggering an error when saving. This prevents an interruption in manufacturing order updates and lets teams correct component lists as expected.
Original PR description
Steps to reproduce: - Create an MO and confirm it. - Remove any component (`move_raw_ids`). - Save the form. Expected behavior: The component should be removed. Current behavior: A traceback appears. This is because the `write` of the `mrp_production` always tries to destructure the value of `move_raw_ids` into a `Command` tuple of three elements, which is not the case when deleting on of the components, where the tuple consists only of two elements: the `DELETE` constant and the id of the removed record (no values element). --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures warehouse push rules can be applied when stock moves originate from a sub-location, not only the exact configured location. It helps inventory routes behave consistently and reduces manual intervention when goods are redirected within warehouse location hierarchies.
Original PR description
The changes made in #156437 had the purpose of adding more flexibility in the moves, being able the re-route them on the fly, without having to bother with the whole chain being already created. And while the search for pull rules properly look for parent location if no rule is found within the givin location, it wasn't the case yet for push rules. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
This commit will set the deferred accounts for spain template. task: 4181499 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180004
Original PR description
This commit will set the deferred accounts for spain template. task: 4181499 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180004
Do not use the purchase description in dropshipping pickings Example use case: - Create a dropshipping product and set a purchase description - Create a sales order with the product and confirm - Purchase order will have the purchase description - Confirm the purchase order - Go to dropshipping picking - Print Delivery slip Current behavior: - Product name and purchase description is displayed Expected behavior: - Purchase description should not be displayed @Tecnativa TT5067
Original PR description
Do not use the purchase description in dropshipping pickings Example use case: - Create a dropshipping product and set a purchase description - Create a sales order with the product and confirm - Purchase order will have the purchase description - Confirm the purchase order - Go to dropshipping picking - Print Delivery slip Current behavior: - Product name and purchase description is displayed Expected behavior: - Purchase description should not be displayed @Tecnativa TT50677 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180111 Forward-Port-Of: odoo/odoo#179104
The custom stock.move.line's x2many field computes a domain automatically for the SML that can be selected from the stock.move records (e.g. when trying to find a specific lot, etc. to fulfill a demand). This commit makes it possible to include the domain defined on the field in the final constructed domain, making it possible to somewhat customize this behaviour without the need for a js override. Task-4116000 ----------- Example of customization made possible with this: Have a com
Original PR description
The custom stock.move.line's x2many field computes a domain automatically for the SML that can be selected from the stock.move records (e.g. when trying to find a specific lot, etc. to fulfill a demand).
This commit makes it possible to include the domain defined on the field in the final constructed domain, making it possible to somewhat customize this behaviour without the need for a js override.
Task-4116000
-----------
Example of customization made possible with this:
Have a computed field `x_allowed_lot_ids` on the stock.move and restrict the selection of the lots to this domain by modifying the view `stock.view_stock_move_operations`:
```xml
<field name="move_line_ids" domain="[('lot_id', 'in', x_allowed_lot_ids)]" [...] widget="sml_x2_many"/>
```
without this commit, the `domain` attribute set on the field is simply ignored and it would require a more complex js custo (we could live with it)
Forward-Port-Of: odoo/odoo#180421With this commit we extend the account_tax model to add tax category code and tax exemption reason, that will be used when generating peppol xml. Without that we can only do some incomplete computation leading to missing informations in peppol xml. opw-4061329 Forward-Port-Of: odoo/odoo#180309 Forward-Port-Of: odoo/odoo#176221
Original PR description
With this commit we extend the account_tax model to add tax category code and tax exemption reason, that will be used when generating peppol xml. Without that we can only do some incomplete computation leading to missing informations in peppol xml. opw-4061329 Forward-Port-Of: odoo/odoo#180309 Forward-Port-Of: odoo/odoo#176221
When uploading a bill via xml, if the file does not contain the node 'Name` in accounting parties informations, we don't set the partner at all on the bill. With this commit, if the node `Name` is missing, we fallback to the node `RegistrationName`. opw-4154071 Forward-Port-Of: odoo/odoo#180308 Forward-Port-Of: odoo/odoo#180056
Original PR description
When uploading a bill via xml, if the file does not contain the node 'Name` in accounting parties informations, we don't set the partner at all on the bill. With this commit, if the node `Name` is missing, we fallback to the node `RegistrationName`. opw-4154071 Forward-Port-Of: odoo/odoo#180308 Forward-Port-Of: odoo/odoo#180056
On accounts from 14... to 19..., there are current liabilities while they should be non-current libialities. Manual forward-port of #178373 opw-4134510 Forward-Port-Of: odoo/odoo#180446
Original PR description
On accounts from 14... to 19..., there are current liabilities while they should be non-current libialities. Manual forward-port of #178373 opw-4134510 Forward-Port-Of: odoo/odoo#180446
Before this commit, when importing multiple leaves for different employee, the last employee in the list will be set as a follower on all the created leaves. This commit fixes this behavior by checking for the employee assigned to each leave and using its ID when adding the follower. opw-4023073 Forward-Port-Of: odoo/odoo#179872 Forward-Port-Of: odoo/odoo#178994
Original PR description
Before this commit, when importing multiple leaves for different employee, the last employee in the list will be set as a follower on all the created leaves. This commit fixes this behavior by checking for the employee assigned to each leave and using its ID when adding the follower. opw-4023073 Forward-Port-Of: odoo/odoo#179872 Forward-Port-Of: odoo/odoo#178994
When the message in the chatwindow is too long, the textarea in the chatwindow is constantly showing the scorllbar. This causes the chatwindow to flicker when the user is typing a message. This commit fixes the issue by setting excatly the right class for the fake textarea in the chatwindow so that it can get the real height of the textarea. Current behavior before PR:  Desired behavior after PR is mer
Original PR description
When the message in the chatwindow is too long, the textarea in the chatwindow is constantly showing the scorllbar. This causes the chatwindow to flicker when the user is typing a message. This commit fixes the issue by setting excatly the right class for the fake textarea in the chatwindow so that it can get the real height of the textarea. 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#180483
When returning a purchase/sale order, we can not create accrued entry for the returned order Steps: - Create a purchase order - Receive product - Create and confirm bill - Set received quantity to 0 - From the action menu, select "Accrued Expense Entry" -> There is no line, it should be a line for the vendor credit not This is because we filter the order lines to get only the lines that have a positive quantity to invoice, in that case the quantity to invoice is negative and should be taken i
Original PR description
When returning a purchase/sale order, we can not create accrued entry for the returned order Steps: - Create a purchase order - Receive product - Create and confirm bill - Set received quantity to 0 - From the action menu, select "Accrued Expense Entry" -> There is no line, it should be a line for the vendor credit not This is because we filter the order lines to get only the lines that have a positive quantity to invoice, in that case the quantity to invoice is negative and should be taken into account opw-4176706 Forward-Port-Of: odoo/odoo#180299
**Steps to reproduce this issue:** - Go to views (Settings -> Technical -> User Interface -> Views). - Edit something and click the Save/Discard button. - Notice that the Save and Discard buttons remain visible. **Current behavior before PR:** The state `fieldIsDirty` remains true after clicking the Save/Discard button because the `FIELD_IS_DIRTY` event defined in the `useBus` hook is not triggered in `commitChanges`. **Desired behavior after PR is merged:** The Save and Discard
Original PR description
**Steps to reproduce this issue:** - Go to views (Settings -> Technical -> User Interface -> Views). - Edit something and click the Save/Discard button. - Notice that the Save and Discard buttons remain visible. **Current behavior before PR:** The state `fieldIsDirty` remains true after clicking the Save/Discard button because the `FIELD_IS_DIRTY` event defined in the `useBus` hook is not triggered in `commitChanges`. **Desired behavior after PR is merged:** The Save and Discard buttons hide successfully when not needed. task-3948043 Forward-Port-Of: odoo/odoo#174187
Description of the issue/feature this PR addresses: The date format in Lao contain a typo: `%d/%m/y` should be `%d/%m/%Y` Desired behavior after PR is merged: The date format should be `%d/%m/%Y` --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180481
Original PR description
Description of the issue/feature this PR addresses: The date format in Lao contain a typo: `%d/%m/y` should be `%d/%m/%Y` Desired behavior after PR is merged: The date format should be `%d/%m/%Y` --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180481
Description of the issue/feature this PR addresses: Add translation for the default content Note: I tried adding `_()` within the field, but it didn't work, so I moved it to the default function `_get_default_job_details` --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179688 Forward-Port-Of: odoo/odoo#178484
Original PR description
Description of the issue/feature this PR addresses: Add translation for the default content Note: I tried adding `_()` within the field, but it didn't work, so I moved it to the default function `_get_default_job_details` --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179688 Forward-Port-Of: odoo/odoo#178484
Problem: When viewing the replenishment information for a product, the last purchase date is set to the date from the oldest purchase order. The last_purchase_date field is set using the purchase order with the oldest date_order field. The last_purchase_date field should be set using the purchase order with the most recent date_order field. Purpose: By ordering the purchase orders by date_order desc we will get the purchase order with the most recent date_order field. This will cause the supp
Original PR description
Problem: When viewing the replenishment information for a product, the last purchase date is set to the date from the oldest purchase order. The last_purchase_date field is set using the purchase…
Problem: When viewing the replenishment information for a product, the last purchase date is set to the date from the oldest purchase order. The last_purchase_date field is set using the purchase order with the oldest date_order field. The last_purchase_date field should be set using the purchase order with the most recent date_order field. Purpose: By ordering the purchase orders by date_order desc we will get the purchase order with the most recent date_order field. This will cause the supplier’s last purchase date to be the most recent one instead of the oldest one. Steps to Reproduce on Runbot: 1. Create a storable product and create a reordering rule for this product 2. Create a purchase order for this product and set the Order Deadline to a date in the past and then confirm it 3. Create a purchase order for this product and set the Order Deadline to the current date and the confirm it 4. Navigate to this product’s replenishment information 5. Observe that the Last Purchase date is the earlier of the two dates from the purchase orders opw-4113810 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180500 Forward-Port-Of: odoo/odoo#177306
Versions: 17.0, saas-17.1, saas-17.2 Issue: The tax totals company currency table displays repetitive information. Purpose of this PR: To remove the repetitive tax totals table. Steps to Reproduce: - Install l10n_cl_edi - Set up a currency rate for any active foreign currency (different from CLP) (Using USD for the example) - Create an invoice using a foreign currency (USD in the example) opw-4127839 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.
Original PR description
Versions: 17.0, saas-17.1, saas-17.2 Issue: The tax totals company currency table displays repetitive information. Purpose of this PR: To remove the repetitive tax totals table. Steps to Reproduce: - Install l10n_cl_edi - Set up a currency rate for any active foreign currency (different from CLP) (Using USD for the example) - Create an invoice using a foreign currency (USD in the example) opw-4127839 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178265
46 changes
New functionality added to Odoo
Odoo Sign now supports radio button groups in PDF templates, allowing users to offer multiple options where only one can be selected per group. This improves document customization and makes forms with mutually exclusive choices clearer for signers.
Original PR description
This commits adds the "Radio Button" functionality, where the user can create multiple sets of items to select a single item in each set. Within each seat of items, lines are drawn between consecutive items so the user can differentiate between them. This functionality makes PDF handling in sign much more dinamic and increase PDFs customization by adding the possibility to select a single item in an extended range in the page. task-3876672
Odoo Recruitment can now manage job postings on external job boards directly from Odoo, starting with Monster.com. The update also helps create richer job post content from existing website job pages, reducing manual work for recruiters preparing announcements for multiple channels.
Original PR description
Recruitment: External API Integration ------------------------------------------------------- This PR adds new modules to permit to post job announce to external job boards and manage them directly…
Recruitment: External API Integration
-------------------------------------------------------
This PR adds new modules to permit to post job announce to external job boards and manage them directly inside odoo.
This follows the revamp of hr_recruitment for headhunters
External board integration: Monster.com
-----------------------------------------------------------
This PR also adds the first external board to odoo, Monster.com the new modules will communicate with monster with their SOAP api. see : https://schemas.monster.com/
Website ETL and Job Post Generation
------------------------------------------------
This PR also add a new feature if online jobs is installed to suggest a job description to the user to reduce the amount of work necessary to publish a job announce to other platforms
The idea is that the job description is not sufficient to generate a satisfactory job description.
what this will do is to extract description fromconvert a code like this
```html
<!-- Description text and ratings -->
<section class="pt0">
<div class="container">
<div class="row">
<div class="col-lg-8 pb32" itemprop="description">
<p class="lead">
As an employee of our company, you will <b>collaborate with each department to create and deploy
disruptive products.</b> Come work at a growing company that offers great benefits with opportunities to
moving forward and learn alongside accomplished leaders. We're seeking an experienced and outstanding member of staff.
<br><br>
This position is both <b>creative and rigorous</b> by nature you need to think outside the box.
We expect the candidate to be proactive and have a "get it done" spirit. To be successful,
you will have solid solving problem skills.
</p>
</div>
<div class="col-lg-3 offset-lg-1 pb32">
<div class="s_rating pb8" data-vcss="001" data-icon="fa-star" data-snippet="s_rating">
<h6 class="s_rating_title">Customer Relationship</h6>
<div class="s_rating_icons o_not_editable">
<span class="s_rating_active_icons text-primary">
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
</span>
<span class="s_rating_inactive_icons text-primary">
</span>
</div>
</div>
<div class="s_rating pb8" data-vcss="001" data-icon="fa-star" data-snippet="s_rating">
<h6 class="s_rating_title">Personal Evolution</h6>
<div class="s_rating_icons o_not_editable">
<span class="s_rating_active_icons text-primary">
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
</span>
<span class="s_rating_inactive_icons text-primary">
</span>
</div>
</div>
<div class="s_rating pb8" data-vcss="001" data-icon="fa-star" data-snippet="s_rating">
<h6 class="s_rating_title">Autonomy</h6>
<div class="s_rating_icons o_not_editable">
<span class="s_rating_active_icons text-primary">
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
</span>
<span class="s_rating_inactive_icons text-primary">
<i class="fa fa-star-o"></i>
</span>
</div>
</div>
<div class="s_rating pb8" data-vcss="001" data-icon="fa-star" data-snippet="s_rating">
<h6 class="s_rating_title">Administrative Work</h6>
<div class="s_rating_icons o_not_editable">
<span class="s_rating_active_icons text-primary">
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
</span>
<span class="s_rating_inactive_icons text-primary">
<i class="fa fa-star-o"></i>
<i class="fa fa-star-o"></i>
<i class="fa fa-star-o"></i>
</span>
</div>
</div>
<div class="s_rating pb8" data-vcss="001" data-icon="fa-star" data-snippet="s_rating">
<h6 class="s_rating_title">Technical Expertise</h6>
<div class="s_rating_icons o_not_editable">
<span class="s_rating_active_icons text-primary">
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>
</span>
<span class="s_rating_inactive_icons text-primary">
</span>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Responsabilities, Must Have and Nice to have -->
<section class="s_comparisons pt24 pb24 bg-200" data-snippet="s_comparisons">
<div class="container">
<div class="row">
<div class="col-lg-4 s_col_no_bgcolor pt16 pb16" data-name="Box">
<div class="card text-bg-primary">
<h4 class="card-header">Responsibilities</h4>
<ul class="list-group list-group-flush">
<li class="list-group-item">Lead the entire sales cycle</li>
<li class="list-group-item">Achieve monthly sales objectives</li>
<li class="list-group-item">Qualify the customer needs</li>
<li class="list-group-item">Negotiate and contract</li>
<li class="list-group-item">Master demos of our software</li>
</ul>
</div>
</div>
<div class="col-lg-4 s_col_no_bgcolor pt16 pb16" data-name="Box">
<div class="card text-bg-primary">
<h4 class="card-header">Must Have</h4>
<ul class="list-group list-group-flush">
<li class="list-group-item">Bachelor Degree or Higher</li>
<li class="list-group-item">Passion for software products</li>
<li class="list-group-item">Perfect written English</li>
<li class="list-group-item">Highly creative and autonomous</li>
<li class="list-group-item">Valid work permit for Belgium</li>
</ul>
</div>
</div>
<div class="col-lg-4 s_col_no_bgcolor pt16 pb16" data-name="Box">
<div class="card text-bg-primary">
<h4 class="card-header">Nice to have</h4>
<ul class="list-group list-group-flush">
<li class="list-group-item">Experience in writing online content</li>
<li class="list-group-item">Additional languages</li>
<li class="list-group-item">Google Adwords experience</li>
<li class="list-group-item">Strong analytical skills</li>
</ul>
</div>
</div>
</div>
</div>
</section>
<!-- What's great -->
<section class="s_comparisons pt24 pb24" data-snippet="s_comparisons">
<div class="container">
<div class="row align-items-center">
<div class="col-sm-7 pb40">
<h2>What's great in the job?</h2>
<br>
<ul class="lead">
<li>Great team of smart people, in a friendly and open culture</li>
<li>No dumb managers, no stupid tools to use, no rigid working hours</li>
<li>No waste of time in enterprise processes, real responsibilities and autonomy</li>
<li>Expand your knowledge of various business industries</li>
<li>Create content that will help our users on a daily basis</li>
<li>Real responsibilities and challenges in a fast evolving company</li>
</ul>
</div>
<div data-name="Box" class="col-sm-4 offset-sm-1 pt16 pb16">
<div class="card shadow text-center">
<h5 class="card-header o_colored_level text-bg-primary">Our Product</h5>
<div class="card-body p-0 pt-3">
<img class="img-fluid o_we_custom_image pb24" src="/website_hr_recruitment/static/src/img/job_product.svg" style="width: 75% !important;" alt="Our Product">
<p>Discover our products.</p>
<p><a href="/" class="btn btn-primary" target="_blank"><small><b>READ</b></small></a></p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- What we offer -->
<section class="s_features pt64 pb40 bg-200" data-name="Features" data-snippet="s_features">
<div class="container">
<h2>What We Offer</h2>
<br>
<p class="lead">
Each employee has a chance to see the impact of his work.
You can make a real contribution to the success of the company.
<br>
Several activities are often organized all over the year, such as weekly
sports sessions, team building events, monthly drink, and much more
</p>
<div class="row pt16">
<div class="col-lg-3 text-center pt16 pb32">
<i class="fa fa-2x fa-gift rounded-circle text-bg-primary m-3"></i>
<h3>Perks</h3>
<p>A full-time position <br>Attractive salary package.</p>
</div>
<div class="col-lg-3 text-center pt16 pb32">
<i class="fa fa-2x fa-bar-chart rounded-circle text-bg-primary m-3"></i>
<h3>Trainings</h3>
<p>12 days / year, including <br>6 of your choice.</p>
</div>
<div class="col-lg-3 text-center pt16 pb32">
<i class="fa fa-2x fa-futbol-o rounded-circle text-bg-primary m-3"></i>
<h3>Sport Activity</h3>
<p>Play any sport with colleagues, <br>the bill is covered.</p>
</div>
<div class="col-lg-3 text-center pt16 pb32">
<i class="fa fa-2x fa-coffee rounded-circle text-bg-primary m-3"></i>
<h3>Eat & Drink</h3>
<p>Fruit, coffee and <br>snacks provided.</p>
</div>
</div>
</div>
</section>
<!-- Photos -->
<section class="o_jobs_image_gallery s_image_gallery pt24 pb24 o_grid o_spc-medium" data-vcss="001" data-columns="3" style="overflow: hidden;" data-snippet="s_images_wall" data-name="Images Wall">
<div class="container">
<div class="row s_nb_column_fixed">
<div class="col-lg-8">
<img src="/website_hr_recruitment/static/src/img/job_image_9.jpg" class="img img-fluid d-block h-100 w-100 shadow" style="object-fit: cover;">
</div>
<div class="col-lg-4">
<img src="/website_hr_recruitment/static/src/img/job_image_10.jpg" class="img img-fluid d-block h-100 w-100 shadow" style="object-fit: cover;">
</div>
</div>
<div class="row s_nb_column_fixed">
<div class="col-lg-3">
<img src="/website_hr_recruitment/static/src/img/job_image_11.jpg" class="img img-fluid d-block h-100 w-100 shadow" style="object-fit: cover;">
</div>
<div class="col-lg-3">
<img src="/website_hr_recruitment/static/src/img/job_image_12.jpg" class="img img-fluid d-block h-100 w-100 shadow" style="object-fit: cover;">
</div>
<div class="col-lg-6">
<img src="/website_hr_recruitment/static/src/img/job_image_13.jpg" class="img img-fluid d-block h-100 w-100 shadow" style="object-fit: cover;">
</div>
</div>
</div>
</section>
```
to something like this
```
job title: Experienced Developer
job url: http://snakysnakysketchy:8069/jobs/experienced-developer-4
job features:
Customer Relationship 5/5
Personal Evolution 5/5
Autonomy 4/5
Administrative Work 2/5
Technical Expertise 5/5
job description:
As an employee of our company, you will collaborate with each department to create and deploy disruptive products. Come work at a growing company that offers great benefits with opportunities to moving forward and learn alongside accomplished leaders. We're seeking an experienced and outstanding member of staff. This position is both creative and rigorous by nature you need to think outside the box. We expect the candidate to be proactive and have a "get it done" spirit. To be successful, you will have solid solving problem skills.
Responsibilities:
Lead the entire sales cycle
Achieve monthly sales objectives
Qualify the customer needs
Negotiate and contract
Master demos of our software
Must Have:
Bachelor Degree or Higher
Passion for software products
Perfect written English
Highly creative and autonomous
Valid work permit for Belgium
Nice to have:
Experience in writing online content
Additional languages
Google Adwords experience
Strong analytical skills
What's great in the job?:
Great team of smart people, in a friendly and open culture
No dumb managers, no stupid tools to use, no rigid working hours
No waste of time in enterprise processes, real responsibilities and autonomy
Expand your knowledge of various business industries
Create content that will help our users on a daily basis
Real responsibilities and challenges in a fast evolving company
What We Offer:
Each employee has a chance to see the impact of his work.
You can make a real contribution to the success of the company.
Several activities are often organized all over the year, such as weekly
sports sessions, team building events, monthly drink, and much more
Perks
A full-time position Attractive salary package.
Trainings
12 days / year, including 6 of your choice.
Sport Activity
Play any sport with colleagues, the bill is covered.
Eat & Drink
Fruit, coffee and snacks provided.
```
and then generating a suggested post looking like this with genAI
**Job Title: Experienced Developer**
**Location:** Belgium
**Job URL:** [Apply Here](http://snakysnakysketchy:8069/jobs/experienced-developer-4)
**About Us:**
Join our dynamic and innovative team at [Company Name], where we are redefining the future with cutting-edge technology and creative solutions. We believe in fostering a collaborative environment where creativity and autonomy thrive. As a growing company, we are excited to offer great benefits and opportunities for personal and professional growth.
**Role Overview:**
We are seeking an experienced and outstanding developer to join our team. This role requires a blend of creativity and technical rigor. You will collaborate with various departments to create and deploy groundbreaking products. The ideal candidate is proactive, has strong problem-solving skills, and a "get it done" attitude.
**Key Responsibilities:**
- Lead and manage the entire software development cycle.
- Design, develop, and deploy disruptive software products.
- Engage in technical discussions and provide insights on best practices.
- Collaborate with cross-functional teams to achieve project goals.
- Master and demonstrate our software through effective presentations.
**Must-Have Qualifications:**
- Bachelor’s Degree or higher in a relevant field.
- Passion for software development and technology.
- Excellent written and spoken English skills.
- Highly creative, autonomous, and proactive mindset.
- Valid work permit for Belgium.
**Nice to Have:**
- Experience in writing online content.
- Additional language skills.
- Knowledge of Google Adwords.
- Strong analytical skills.
**Why You'll Love Working Here:**
- **Great Team:** Work with smart, friendly colleagues in a supportive and open culture.
- **Autonomy:** Enjoy flexible working hours and minimal administrative work.
- **Impact:** See the direct impact of your contributions to the company’s success.
- **Learning:** Expand your knowledge across various business industries.
- **Responsibilities:** Take on real challenges in a fast-evolving environment.
**What We Offer:**
- **Competitive Salary:** Attractive salary package with full-time employment.
- **Training:** 12 days of training per year, including 6 days of your choice.
- **Sport Activities:** Engage in sports with colleagues, with expenses covered.
- **Eat & Drink:** Enjoy provided fruit, coffee, and snacks.
- **Team Building:** Participate in weekly sports sessions, team-building events, and monthly social drinks.
**How to Apply:**
If you are an experienced developer looking for an exciting opportunity to make a real impact, we would love to hear from you. Apply now through the [job listing](http://snakysnakysketchy:8069/jobs/experienced-developer-4).
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prEnhancements to existing features
Australian payroll now automates more Single Touch Payroll steps by adding payslips to STP records, creating STP records for pay runs, and warning users about unsubmitted records. The update also improves compliance handling for SuperStream, backpayments, child support, Medicare, STP finalisation, and file replacement, reducing manual work and reporting risk.
Original PR description
- Adds new payslips to STP automatically when they are created.
- Creates a new STP record for each Payrun. Adds warnings to the
dashboard for any STP records that have not been submitted.
3494990Odoo financial reports now apply the appropriate currency conversion method when consolidating companies with different currencies, using average, historical, or period-end rates depending on the account type. This improves the accuracy of consolidated statements and period comparisons, while related sales and manufacturing reports keep their existing behavior.
Original PR description
The CTA conversion method is used when consolidating multiple companies with different main currencies. The general idea is to use different rates depending on the account we're consolidating: -…
The CTA conversion method is used when consolidating multiple companies with different main currencies. The general idea is to use different rates depending on the account we're consolidating:
- Income/Expense accounts should use the average rate on the considered period
- Equity accounts should use the historical rate at the date they were made
- Other accounts should use the current rate, the one that applies at the end of the considered period
Before this commit, Odoo handled such conversions by always applying the current rate everywhere. For this, a structure called the currency table was used.
The community counterpart commit modifies the currency table in order to handle CTA conversion. This commit converts the reports to this new structure, and adds a field on account.report to control whether the report should use 'current' rates or CTA in case of multi-currency consolidation.
We also change the way the comparison feature of the reports works with multi-currency consolidation. In the past, the 'current' rate at the date_to chosen in the reports filter was used for every compared period. Now, each compared period computes a different rate depending on its date bounds. So, the 'current' rate will correspond in each period to the rate applying at the end of the period. The 'average' rate is also computed on each period individually.
Non-accounting reports defined in some sale and mrp modules are also impacted by this commit, to update the way they call the currency table. Their behavior is unaffected, they still make use of the current rates at the time they're opened.
task-4129647The project module’s automated tests were updated to use a newer testing framework and no longer rely on older mail testing helpers. This is an internal quality improvement that helps keep testing infrastructure current without changing user-facing project features.
Original PR description
Purpose of this PR: To convert QUnit tests which depends on mail/test_utils to hoot. part of: 3818666
Subscriptions can now be billed at the end of a period based on what customers actually received or used, making recurring contracts better suited for usage-based services and delivered goods. The update also clarifies delivery timing for subscription products and prevents invoices from being created for already finished contracts.
Original PR description
Currently we always create invoice for the [period next_invoice_date --> next_invoice_date + period] but for products with an invoicing policy based on delivered quantity it is on non-sense.
There are also a lot of use cases requiring periodic invoicing but at the end of the period with an invoicing based on what the customers "received". Some examples:
Subscription for a service where the usage made affects the price:
Electricity
mobile subscriptions
...
Subscription of a physical product that can fail during the period preventing the customer to use it.
Leasing / renting of cars
Tracking device in truck (existing client)
Subscriptions of fresh produce
taskid: 3071118Quality reporting now focuses on more useful information by removing fields that were not meaningful in pivot and graph reports. New passed and failed quantity measures make it easier to understand quality outcomes and spot production issues.
Original PR description
This commit removes some fields from the pivot view of `quality.check` model that doesn't make sense in this view. The removed fields are: `worksheet_page` and `finished_product_sequence`. The commit also adds new two fields that help provide better insights: `qty_passed` and `qty_failed` with the expected meaning. Upgrade PR: odoo/upgrade#6519 Task-3981694
Invoice extraction now combines OCR and autocomplete results when users select a VAT number or partner name. This helps fill in missing partner details automatically, reducing manual entry and improving data completeness.
Original PR description
The OCR and autocomplete functionalities have been integrated to provide more comprehensive data for partners. Now, when a user clicks on a VAT number, the data is enriched using OCR values. Similarly, clicking on a partner name triggers simultaneous retrieval of autocomplete data. This integration reduces the need for manual data entry by automatically filling in missing information. task-4161150
Advanced configuration menu items for tax units, horizontal report groups, and 1099 boxes are now shown only in debug mode. This keeps everyday menus simpler while still allowing administrators and support teams to access specialized setup options when needed.
Original PR description
This Pr will put different menu item in debug mode: - Tax unit - Horizontal group - 1099 boxes Task: 4192465
Appointment and website appointment dashboard cards were simplified to use newer Odoo interface building blocks. This makes the screens easier to maintain and keeps the appointment experience aligned with current platform standards, with minimal change for end users.
Original PR description
In this commit we have simplified the kanban arch for the appointment and it's related module dashboard. The goal is to simplify them, make them easier to read and use bootstrap utility classnames. - Previously, we used kanban-box, but now we are using kanban-card instead. - Deprecated oe_kanban_global_click and oe_kanban_global_click_edit. - More use of <field/> tags - Removed the oe_kanban_colorpicker class and replaced it with the kanban_color_picker widget. - Changed type='edit' to type='open' to open records. since version 16, records always open in edit mode by default. - kanban_image from rendering context, is deprecated so we use <field name="..." widget="image"/> instead - kanban_color, kanban_getcolor and kanban_getcolorname are deprecated use new attribute highlight_color="color_field_name" on root node Task-3992107
The Quality Control dashboard layout was cleaned up to use newer Odoo interface patterns. This makes the dashboard easier to maintain and helps keep the user experience consistent with current Odoo standards.
Original PR description
In this commit we have simplified the kanban arch for the quality_control module dashboard. the goal is to simplify them, make them easier to read and use bootstrap utility classnames. - Previously, we used kanban-box, but now we are using kanban-card instead. - Deprecated oe_kanban_global_click and oe_kanban_global_click_edit. - More use of `<field/>` tags - Removed the oe_kanban_colorpicker class and replaced it with the kanban_color_picker widget. - Changed type='edit' to type='open' to open records. since version 16, records always open in edit mode by default. - kanban_image from rendering context, is deprecated so we use `<field name=... widget=image/>` instead - kanban_color, kanban_getcolor and kanban_getcolorname are deprecated use new attribute highlight_color=color_field_name on root node Task-3992107
The POS preparation and order tracking dashboard layouts were cleaned up to use newer interface building blocks. This makes the screens easier to maintain and keeps them aligned with current Odoo standards, with little expected change for everyday users.
Original PR description
In this commit we have simplified the kanban arch for the pos_preparation_display module dashboard. the goal is to simplify them, make them easier to read and use bootstrap utility classnames. - Previously, we used kanban-box, but now we are using kanban-card instead. - Deprecated oe_kanban_global_click and oe_kanban_global_click_edit. - More use of `<field/>` tags - Removed the oe_kanban_colorpicker class and replaced it with the kanban_color_picker widget. - Changed type='edit' to type='open' to open records. since version 16, records always open in edit mode by default. - kanban_image from rendering context, is deprecated so we use `<field name=... widget=image/>` instead - kanban_color, kanban_getcolor and kanban_getcolorname are deprecated use new attribute highlight_color=color_field_name on root node Task-3992107
Bank and credit card journal audits are now easier to read with a dedicated view that removes unnecessary grouping and highlights the most relevant details. Users can review dates, partners, and matching information more directly, making reconciliation and audit work faster and clearer.
Original PR description
This commit aims to facilitate reading and handling the audit of the Bank and Credit Card journals. This view should be tailored, as it is not the same as suditing sales/purchase ledgers. Beyond showing only the counterpart lines, already addressed by #67611, the view should: - Remove the grouping by Partner > Journal Entry - Show columns Date, Partner and Matching This commit adds a view for the bank/credit card audit, and edits the function journal_report_open_aml_by_move to achieve this tailored audit view. It also edits the List Renderer for the audit view to ensure it can also handle the case where no default groupings exist. task-4147336
Batch payments can now specify who should pay transfer fees instead of always using the standard SEPA option. This helps businesses support more ISO 20022 payment formats and align bank files with local or bank-specific requirements.
Original PR description
In SEPA payments, `ChrgBr` indicates who pays the transfer fees. Currently, the only supported value for this field is `SLEV`. However in other ISO20022 variants, we can use other values. This commit allows user to specify the charge bearer in batch payments. Task ID: 3774253
The sales commission app now supports forecasting and improves how commission achievements and reports are calculated and displayed. These changes help sales teams and managers better plan, review, and understand commission progress, while also improving performance and reducing irrelevant community commission visibility in sales teams.
The project dashboard now better reflects subscription-related information in project profitability views. This helps business users get a more complete view of project revenue and margins when subscriptions are involved.
Original PR description
This commit's purpose is to handle the subscription part of the dashboard. Community part: task - 4150611 affected version: master
Workcenter overview links now take users directly to the work order list instead of the shopfloor view. This creates a more consistent navigation path for teams reviewing manufacturing work from the overview.
Original PR description
This PR removes the links to the shopfloor from the workcenter overview. Instead, all links now redirect to the WO list view. task 4081617
Message reactions are now shown from oldest to newest when loaded from the server. This makes conversation history easier to follow and keeps reaction displays consistent for users.
Original PR description
This commit ensures that message reactions are displayed in chronological order, from the earliest to the most recent when getting the data from the server. https://github.com/odoo/odoo/pull/180198
WhatsApp discussions in Odoo can now be organized with sub-threads inside channels, helping teams keep related replies and follow-ups grouped together. This makes busy WhatsApp conversations easier to navigate and reduces the risk of important context getting lost.
Original PR description
community: https://github.com/odoo/odoo/pull/179348 part of task-3605717
Recruitment screens now show more accurate candidate and application information, especially for companies using multiple company records. Interviewers regain appropriate editing ability on assigned applications, reporting no longer counts archived hires incorrectly, and views better reflect user permissions.
Original PR description
This pr adds various fixes and improvements to recruitment. - The `Similar Candidates` smart button counter now displays accurate numbers when in a multi company environment. Before it would search…
This pr adds various fixes and improvements to recruitment. - The `Similar Candidates` smart button counter now displays accurate numbers when in a multi company environment. Before it would search across companies for candidates, often making the number higher than actual similar candidates in the selected company leading to confusion and despair. - Since the split of the applicant model into applications and candidates, interviewers could no longer edit any information on a application (a candidate by extension) they were assigned to. This has been fixed with new access rules, allowing interviewers to edit candidates, but only through the application form. - Some buttons/fields are now hidden/read-only if you don't have access to them. - The`Other Applications` smart button now also displays applications by similar candidates, not only applications by the viewed candidate. - The `All applications` view now allows grouping by `Candidate`. - A bug in `Applicant Analysis` which cause archived applicants to still be counted as hired was fixed.
This update streamlines the subscription sales workflow, including plan setup, sales order handling, demos, and guided tour content. It helps teams manage recurring sales more easily with clearer views and improved subscription behavior.
Original PR description
task-id: 3750550
Subscription sale orders now create the first delivery as soon as the order is confirmed, instead of waiting until the first invoice is posted. This makes fulfillment start earlier and avoids duplicate or delayed delivery creation during invoicing.
Original PR description
Before this PR, after confirming a sale order, the first invoice is created and posted. then, the first delivery is created. After this PR, the first delivery is created immediately upon sale order confirmation. No delivery is created when the first invoice is posted. task-3866918
Resolved issues and error corrections
Spreadsheet list side panels now wait for required list field information before rendering. This prevents missing or incomplete list details after updates, keeping spreadsheet views reliable for users.
Original PR description
This commit is the Enterprise counter-part of a community commit. Let me explain what's going on: Before the community commit, as soon as a list update was dispatched, it would trigger a new evaluation which would load the new (unloaded) datasource. The meta data (fields) being cached by the ServerData, fetching the fields was actually synchronous. Hence, at the next rendering, right after the command dispatch, the fields were already available. Now, with the community commit, there's a micro-tick delay before loading the new data source. The next rendering, being first in the event queue, renders the component before the cache was even queried. Task: 4134859
This fix improves how restaurant orders are synchronized with preparation displays by focusing on pending orders and processing them through a queue. It helps reduce missed or incorrectly synced orders and fixes related point-of-sale errors that could disrupt kitchen workflows.
Original PR description
*: pos_restaurant, pos_online_payment Before order synchronization was using table to know which orders needs to be synchronized. Now we only refer to pending orders, and we use a queue to synchronize them.
Manufacturing planning no longer blocks certain batch size settings during setup. If the batch size option is disabled or not set to a positive value, it is simply ignored when replenishment is run, reducing unnecessary configuration errors.
Original PR description
We do not impose restrictions on how batch_size is configured. It will simply be ignored if it's not enabled or is not something above zero.
The point of sale preparation display now loads the required sound resources for its notifications. This ensures staff can hear the expected alerts when orders or updates need attention.
Original PR description
In commit 45f568f8f8252913ed7cba00fe3da6f48edb7b26 we replaced the pos sound service with the mail sound service. In this commit we ensure that the correct assets are loaded in `pos_preparation_display`. The assets that handled the specific notifications used in pos were not loaded.
The EU OSS Reports module now avoids loading its test components during normal use. This prevents unnecessary internal test code from being imported in production, reducing the risk of avoidable startup or installation issues.
Original PR description
Test import was prevented by odoo/odoo#177671. Importing tests is only done when tests are enabled. This one was missed because it was merged concurrently.
The automated check for the account merge wizard has been moved into the Accountant app, where it can access the Chart of Accounts screen it needs. This helps ensure the test runs reliably and reduces false failures without changing day-to-day user behavior.
Original PR description
The tour needs access to the Chart of Accounts list view to function, which is available only in `accountant`, so we move it there from `account`. Community PR: https://github.com/odoo/odoo/pull/180614 runbot-98348
The Documents Kanban view has been corrected after a prior change caused visual layout issues. Users should now see better aligned footers, properly shortened text, correctly placed fields, and more consistent spacing when managing documents and accounting documents.
Original PR description
This commit fixes the broken Kanban view of documents, which occurred due to merging of this pr https://github.com/odoo/enterprise/pull/69250 . The following problems were addressed: - Misalignment of the footer - Text not being properly truncated - Incorrect positioning of a field using x-path - Inadequate padding Task-3992107
Orders marked as Food Ready in Atlas now update both their order status and payment status in the Point of Sale. This prevents delivery orders from appearing unpaid after they have progressed through the external food delivery workflow.
Original PR description
Steps: - Install pos_urban_piper - Open Point of Sale. - Configure Food Delivery Connector for one of pos. - Place a test order. - Mark order as Food Ready from Atlas. Issue: - Order status change to Food Ready but not got paid. Fix: - Order status and payment status both is updated.
Several app onboarding walkthroughs were not starting because they were missing from setup files or absent entirely. This fix restores those tours so users can receive the intended guided introduction when using affected apps.
Original PR description
Some of the onboarding tour was missing in the manifest and some were not existing. They have been added. TASK-ID: 4184140
A typo was corrected in the Loans screen. This improves clarity for users and helps keep the interface polished without changing any business process or functionality.
Financial reports now avoid showing the word “False” where an account code is unavailable for the active company. This keeps report labels clearer and more professional by showing only the account name in those cases.
Original PR description
Since sharing accounts between companies in https://github.com/odoo/odoo/pull/171079, an account's code may be False from the perspective of the active company. In that case, we want only the account name to appear in reports. A fix was already done for `account.display_name` in https://github.com/odoo/odoo/pull/177943. This commit does a similar fix for reports which use code + name rather than display_name. taskid: none
Features or functions removed from Odoo
The eBay sales integration has been removed because it depended on a deprecated SDK and was no longer sustainable to support. This means Odoo will no longer maintain this marketplace connector, allowing development effort to shift toward better-supported marketplace integrations.
Original PR description
This module relied on an sdk that is deprecated, therefore the functionality can no longer be supported. task-4185344
Miscellaneous changes
Problem was we try to get partner from `order.partner` instead of `order.partner_id` Steps to reproduce: - Install l10n_cl - Select the CL Company - Go to POS - Select products - Change the client to Blanco Martin & Asociados EIRL (has all the information for l10n_cl) - Click on "payment" - Select any payment method - Select the option "Invoice" - Validate - Console error opw-4180894 Forward-Port-Of: odoo/enterprise#70239
Original PR description
Problem was we try to get partner from `order.partner` instead of `order.partner_id` Steps to reproduce: - Install l10n_cl - Select the CL Company - Go to POS - Select products - Change the client to Blanco Martin & Asociados EIRL (has all the information for l10n_cl) - Click on "payment" - Select any payment method - Select the option "Invoice" - Validate - Console error opw-4180894 Forward-Port-Of: odoo/enterprise#70239
### Issue: The word 'Review' being used in 2 different frontend locations (it's also used in portal_rating) and the frontend can only use the last translation that it loads. Thus, the 'Review' is translated as 'Avis', which is wrong. ### After this PR: Renamed 'Review' label to 'Review Booking'. Task-4164125 Forward-Port-Of: odoo/enterprise#69404
Original PR description
### Issue: The word 'Review' being used in 2 different frontend locations (it's also used in portal_rating) and the frontend can only use the last translation that it loads. Thus, the 'Review' is translated as 'Avis', which is wrong. ### After this PR: Renamed 'Review' label to 'Review Booking'. Task-4164125 Forward-Port-Of: odoo/enterprise#69404
Steps to reproduce ================== - In the accounting app, go to 'Journal Entries'. - Create a new entry. - Set the 'reference' field to 'Receipt'. - Add 2 accounts in Journal Items. - For the 1st account, select 'Account Receivable' (e.g., 121000 Account Receivable). - Set the Partner field to "0h3n-abcdefg@yahoo.example.com" and the label field to "Online transfer reced agst INV-00171, Dt:01.08.2024". - For the 2nd account, set it to any other type, such as "101401 Bank". - Add
Original PR description
Steps to reproduce ================== - In the accounting app, go to 'Journal Entries'. - Create a new entry. - Set the 'reference' field to 'Receipt'. - Add 2 accounts in Journal Items. - For the…
Steps to reproduce ================== - In the accounting app, go to 'Journal Entries'. - Create a new entry. - Set the 'reference' field to 'Receipt'. - Add 2 accounts in Journal Items. - For the 1st account, select 'Account Receivable' (e.g., 121000 Account Receivable). - Set the Partner field to "0h3n-abcdefg@yahoo.example.com" and the label field to "Online transfer reced agst INV-00171, Dt:01.08.2024". - For the 2nd account, set it to any other type, such as "101401 Bank". - Add a credit amount in the 'Account Receivable' and the same amount in the 2nd account. - Save and post the transaction. - Navigate to the general ledger. - Ensure you expand the list of this newly created account move under the 121000 Account Receivable to observe overlapping text. - Click on 'PDF' and print the report. - Notice the overlapping text.  Cause of the issue ================== The o_overflow_value class is only applied when the cell value length is longer than 65 chars Solution =======  Here are the differences, only the following lines are pushed down  opw-4130917 Forward-Port-Of: odoo/enterprise#70141
Before this PR, trying to print an IoT linked report from PoS would result in an error, as the JS file for websockets was not loaded. This PR fixes the issue by including the file. Related community PR: https://github.com/odoo/odoo/pull/180063 Forward-Port-Of: odoo/enterprise#69953
Original PR description
Before this PR, trying to print an IoT linked report from PoS would result in an error, as the JS file for websockets was not loaded. This PR fixes the issue by including the file. Related community PR: https://github.com/odoo/odoo/pull/180063 Forward-Port-Of: odoo/enterprise#69953
Steps to reproduce (on IOS): ------------------- With Safari browser: - Install `Meeting Rooms` app - Go to Meeting Rooms -> Rooms and open any room - Copy the `Room Booking URL` and open it in a new tab - Click on the menu, then on `Add to Home Screen` - Open the room booking from the home screen Issue: ------ The URL and browser buttons are visible at the top of the screen. Solution: --------- Add the meta tags `mobile-web-app-capable` and `apple-mobile-web-app-capable`
Original PR description
Steps to reproduce (on IOS): ------------------- With Safari browser: - Install `Meeting Rooms` app - Go to Meeting Rooms -> Rooms and open any room - Copy the `Room Booking URL` and open it in a new tab - Click on the menu, then on `Add to Home Screen` - Open the room booking from the home screen Issue: ------ The URL and browser buttons are visible at the top of the screen. Solution: --------- Add the meta tags `mobile-web-app-capable` and `apple-mobile-web-app-capable` to the room template. opw-3639196 Forward-Port-Of: odoo/enterprise#67944
**Steps to reproduce:** - Make studio view of account journal entry form view (account.journal.form). - Find the node that exists on xpath "//field[@name='partner_id'][@widget='res_partner_many2one']" and remove the invisible attribute from it. - Upgrade database to saas-17.4 **Traceback:** ``` File "/home/odoo/src/enterprise/saas-17.4/account_invoice_extract/models/account_invoice.py", line 900, in _get_view node.set('invisible', f"{placeholder_condition} or ({node.attrib.pop(
Original PR description
**Steps to reproduce:**
- Make studio view of account journal entry form view (account.journal.form).
- Find the node that exists on xpath "//field[@name='partner_id'][@widget='res_partner_many2one']"
and remove the invisible attribute from it.
- Upgrade database to saas-17.4
**Traceback:**
```
File "/home/odoo/src/enterprise/saas-17.4/account_invoice_extract/models/account_invoice.py", line 900, in _get_view
node.set('invisible', f"{placeholder_condition} or ({node.attrib.pop('invisible')})")
File "src/lxml/etree.pyx," line 2464, in lxml.etree._Attrib.pop
KeyError: 'invisible'
```
**Solution:**
- This occurs because when checking the invisible attribute of a node, we are not checking if an invisible attribute exists or not, so added a condition for checking.
Forward-Port-Of: odoo/enterprise#69891Versions -------- - saas-17.4+ Steps ----- 1. Set document layout to DIN5008; 2. create an invoice; 3. print invoice. Issue ----- Dates are formatted as YYYY-MM-DD, regardless of date formatting preferences. Cause ----- Commit 7f63dab38a6 moved DIN5008 formatting logic from Python to XML. In doing so, dates were no longer getting formatted. Solution -------- Add the `date` widget to the XML fields to format them accordingly. opw-4172138 Community PR: https://github.
Original PR description
Versions -------- - saas-17.4+ Steps ----- 1. Set document layout to DIN5008; 2. create an invoice; 3. print invoice. Issue ----- Dates are formatted as YYYY-MM-DD, regardless of date formatting preferences. Cause ----- Commit 7f63dab38a6 moved DIN5008 formatting logic from Python to XML. In doing so, dates were no longer getting formatted. Solution -------- Add the `date` widget to the XML fields to format them accordingly. opw-4172138 Community PR: https://github.com/odoo/odoo/pull/180415 Forward-Port-Of: odoo/enterprise#70142
Sequences of optional employer insurance payments should come before gross Forward-Port-Of: odoo/enterprise#70081 Forward-Port-Of: odoo/enterprise#70070
Original PR description
Sequences of optional employer insurance payments should come before gross Forward-Port-Of: odoo/enterprise#70081 Forward-Port-Of: odoo/enterprise#70070
Since the fiscal position is added in data with the xml, the others companies than the current ones don't have it. So this commit will allow: - When installing the Avatax modules, create the fiscal position in all US companies at the same time - When creating a new US company with the Avatax module installed, setup the fiscal position in the new company at the same time task: 4100725 Forward-Port-Of: odoo/enterprise#69204
Original PR description
Since the fiscal position is added in data with the xml, the others companies than the current ones don't have it. So this commit will allow: - When installing the Avatax modules, create the fiscal position in all US companies at the same time - When creating a new US company with the Avatax module installed, setup the fiscal position in the new company at the same time task: 4100725 Forward-Port-Of: odoo/enterprise#69204
In this PR, we adapt the code of the belgian blackbox module to be compliant with the law. A summary of the changes can be found below: Added the global discount option in certified pos Added fields to the log of orders Correct loging of orders Remove the option to download the receipt Automatic work in/out for the employees Remove the possibility to refund work in/out Precision made to the sales report Added some restriction on the settings of a pos_config Remove the possibility o
Original PR description
In this PR, we adapt the code of the belgian blackbox module to be compliant with the law. A summary of the changes can be found below: Added the global discount option in certified pos Added fields to the log of orders Correct loging of orders Remove the option to download the receipt Automatic work in/out for the employees Remove the possibility to refund work in/out Precision made to the sales report Added some restriction on the settings of a pos_config Remove the possibility of multi-company when using a certified pos Corrected some behavior that were not meeting requirements (split,...) Forward-Port-Of: odoo/enterprise#69826
A new dependency has been introduced by mistake. Even if it still makes sense from a functional point of view, this modification wasn't respecting our stable policy and thus should be reverted. Error introduced at https://github.com/odoo/enterprise/pull/63481 Forward-Port-Of: odoo/enterprise#70173
Original PR description
A new dependency has been introduced by mistake. Even if it still makes sense from a functional point of view, this modification wasn't respecting our stable policy and thus should be reverted. Error introduced at https://github.com/odoo/enterprise/pull/63481 Forward-Port-Of: odoo/enterprise#70173
When parsing a claim status from the SII, the list of events in the response can either be a single event or a list of events. If a list was returned this would fail with a parsing error because the original implementation only expects a single event. That then led to the status getting repeatedly checked and logging "list indices must be integers or slices, not str" when done through a cron. This fix supports both the single and multiple event scenario. The l10n_cl_claim field is not display
Original PR description
When parsing a claim status from the SII, the list of events in the response can either be a single event or a list of events. If a list was returned this would fail with a parsing error because the…
When parsing a claim status from the SII, the list of events in the response can either be a single event or a list of events. If a list was returned this would fail with a parsing error because the original implementation only expects a single event. That then led to the status getting repeatedly checked and logging "list indices must be integers or slices, not str" when done through a cron. This fix supports both the single and multiple event scenario. The l10n_cl_claim field is not displayed anywhere by default and is only used to check if the claim status still needs to be logged in the chatter or not. Since multiple response codes are possible, in theory it should be a list instead of a single value, but that would be more appropriate for a change in master. A boolean flag would also suffice if the response code doesn't need to be displayed separately. We currently just set the last code that was returned. The responses observed in the customer database include the code NCA, which isn't expected by Odoo. This code was added as a valid one. opw-3920273 Forward-Port-Of: odoo/enterprise#70167 Forward-Port-Of: odoo/enterprise#66498
8 changes
Resolved issues and error corrections
This fix resolves an error that occurred when trying to generate invoices from POS transactions in Chile. The system was looking for customer information in the wrong location, causing the invoice process to fail. With this correction, customers can now successfully create invoices from their POS orders without encountering errors.
Original PR description
Problem was we try to get partner from `order.partner` instead of `order.partner_id` Steps to reproduce: - Install l10n_cl - Select the CL Company - Go to POS - Select products - Change the client to Blanco Martin & Asociados EIRL (has all the information for l10n_cl) - Click on "payment" - Select any payment method - Select the option "Invoice" - Validate - Console error opw-4180894
The Accounting dashboard's comparison formulas have been updated to correctly handle monthly and quarterly date filters, not just yearly comparisons. Previously, the dashboard only worked accurately when comparing full years, but now it properly calculates deltas across different time periods that users can select.
Original PR description
The `Accounting` dashboard was using very naive formulas to compute deltas between years. Namely, the formulas were based on the assumpution that we'd only compare values year by year but the filters allow to work with quarters or months as well. This revision updates the dashboard file to take the months/quarters into account. task-3957037
This update removes two empty and outdated fields ("Operation Type" and "Subdivision") from the external trade section of Mexican invoices. These fields were removed from the official Mexican external trade regulations and were appearing as blank cells on printed invoices, causing confusion. The change aligns Odoo's invoice format with current Mexican tax compliance requirements.
Original PR description
**Steps to reproduce:** - Install Accounting and l10n_mx_edi_extended - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Configure external trade according to: https://www.odoo.com/documentation/17.0/applications/finance/fiscal_localizations/mexico.html#external-trade - Make sure that USD has up-to-date rates - Create an external trade invoice: * Customer: [a US customer] (e.g. Deco Addict) * Currency: USD * Usage: Without fiscal effects * Incoterm: EX WORKS * External Trade: Definitive - Confirm the invoice - Print the invoice **Issue:** In the external trade section of the invoice, there are 2 empty cells: "Operation Type" and "Subdivision". According to https://facture.com.mx/nuevo-complemento-comercio-exterior-2-0/ they both have been removed. opw-4078535 Forward-Port-Of: odoo/enterprise#70178
This fix resolves a system error that occurred when changing product types in companies set to Kenya. The system was trying to access an incorrect company attribute, causing the product type change to fail. The fix corrects the attribute reference so product type changes now work properly for Kenya-based companies.
Original PR description
Currently, an error occurs when the system tries to access the attribute name 'account_fiscal_id' through 'company_id' [1] but it is not available in 'res_company' model. Step to produce: - Install the 'l10n_ke_edi_oscu_stock' module. - Create a product, Set a company as Kenya, Change a 'Product Type' storable to service or consumable. - Again change a 'Product Type' to a storable product. ```AttributeError: 'res.company' object has no attribute 'account_fiscal_id'``` Link [1]: https://github.com/odoo/enterprise/blob/3f0113b0d95200466f51b9c1f75b58a3534fb34c/l10n_ke_edi_oscu_stock/models/product.py#L21-L22 To resolve this issue, Get a product country code from 'account_fiscal_country_id' instead of 'account_fiscal_id' Sentry-5862212825
A broken link in the GST Return (GSTR) report that previously displayed a 404 error has been fixed. Users can now click on the "Checkout our tutorial" link and be directed to the proper Odoo documentation for GST filing, improving the user experience and providing easy access to helpful resources.
Original PR description
Before this commit: whenever user clicked on `Checkout our tutorial` broken url on GSTR report a new page with 404 Not Found opened After this commit: We fix the `Checkout our tutorial` broken url, now when user clicks on the page it redirects user to Odoo documentation of GSTR filing
This fix resolves an issue where text in the general ledger report would overlap and become unreadable when printing to PDF. The problem occurred when journal entries contained longer text descriptions (like partner names and transaction details). The fix improves the text formatting rules to prevent overlapping regardless of text length, ensuring reports are always clear and professional-looking.
Original PR description
Steps to reproduce ================== - In the accounting app, go to 'Journal Entries'. - Create a new entry. - Set the 'reference' field to 'Receipt'. - Add 2 accounts in Journal Items. - For the…
Steps to reproduce ================== - In the accounting app, go to 'Journal Entries'. - Create a new entry. - Set the 'reference' field to 'Receipt'. - Add 2 accounts in Journal Items. - For the 1st account, select 'Account Receivable' (e.g., 121000 Account Receivable). - Set the Partner field to "0h3n-abcdefg@yahoo.example.com" and the label field to "Online transfer reced agst INV-00171, Dt:01.08.2024". - For the 2nd account, set it to any other type, such as "101401 Bank". - Add a credit amount in the 'Account Receivable' and the same amount in the 2nd account. - Save and post the transaction. - Navigate to the general ledger. - Ensure you expand the list of this newly created account move under the 121000 Account Receivable to observe overlapping text. - Click on 'PDF' and print the report. - Notice the overlapping text.  Cause of the issue ================== The o_overflow_value class is only applied when the cell value length is longer than 65 chars Solution =======  Here are the differences, only the following lines are pushed down  opw-4130917
Users can now reorder projects in the Field Service Configuration menu. Previously, the reordering feature was unavailable because the sequence field wasn't properly configured in the project list view. This fix enables drag-and-drop reordering functionality, giving users more control over how their projects are organized.
Original PR description
Before this commit, it was not possible to resequence the projects in any list views of Project and Field Service because the `handle` widget is not defined in the sequence and the default order applied in those list views does not begin with `sequence` field. This commit shows the sequence field in the list view of `Field Service > Configuration > Projects` and change the default of that list view to allow the user to resequence the projects as he wishes. Community PR: odoo/odoo#180403 Close odoo/odoo#176961
Fixed a bug in the Chilean localization module where claim status updates from the tax authority (SII) would fail when multiple events were returned instead of a single event. This was causing repeated error messages and preventing proper status tracking. The fix now handles both single and multiple event responses correctly, and adds support for an additional response code (NCA) that was observed in customer data.
Original PR description
When parsing a claim status from the SII, the list of events in the response can either be a single event or a list of events. If a list was returned this would fail with a parsing error because the…
When parsing a claim status from the SII, the list of events in the response can either be a single event or a list of events. If a list was returned this would fail with a parsing error because the original implementation only expects a single event. That then led to the status getting repeatedly checked and logging "list indices must be integers or slices, not str" when done through a cron. This fix supports both the single and multiple event scenario. The l10n_cl_claim field is not displayed anywhere by default and is only used to check if the claim status still needs to be logged in the chatter or not. Since multiple response codes are possible, in theory it should be a list instead of a single value, but that would be more appropriate for a change in master. A boolean flag would also suffice if the response code doesn't need to be displayed separately. We currently just set the last code that was returned. The responses observed in the customer database include the code NCA, which isn't expected by Odoo. This code was added as a valid one. opw-3920273 Forward-Port-Of: odoo/enterprise#70167 Forward-Port-Of: odoo/enterprise#66498