Change “default_partner_id” from “commercial_partner_id” to “bank_partner_id”
for “partner_bank_id” field in from view. If not, on an invoice, a newly created
partner bank (via “Recipient Bank” field) would be created for the partner
instead of the current company.
closesodoo/odoo#71312
Task: 2524441
X-original-commit: e18e256137e4593aee0cb6f1d0fcc4168dff79c1
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
Signed-off-by: jbw-odoo <jbw-odoo@users.noreply.github.com>
While using the cash rounding, there were issues when rounding up and down.
The pre filled amount was correct but the rest of the transaction was wrong. (Wrong due, wrong change,...)
This commit re calculate the rounding applied when using up or down payment.
closesodoo/odoo#71298
X-original-commit: bfccdf07adba35a5838a35a7bba98a1d71c67d2f
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
Before, when using the manage order, if a payment method was used and then removed from the pos.config,
we couldn't load the old order anymore because of unknow reference.
To fix this, we load all methods at the opening of the pos but when we display the payment methods we only show those in the pos.config.
closesodoo/odoo#71292
Task-id: 2541708
X-original-commit: e44219b1cdb80d37b557ff74767f5f3e5aca5072
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
Before this commit:
B2CS is not decreased in case of refund but it's shown in CDNUR but CDNUR has a condition that only shows a refund of B2CL.
HSN value is not decreased in case of refund
After this commit:
Refund is decreased from B2CS and not show that in CDNUR
HSN value is decreased in case of refund
B2CS = Business to Consumers Small
B2CL = Business to Consumers Large (invoice value is more than Rs.2.5 lakhs)
CDNUR = Credit/Debit Notes for Unregistered
HSN = Harmonized System of Nomenclature(hsn code per product)
closesodoo/odoo#71225
Opw: 2446769
X-original-commit: 9f6b5b889b9402a391a1215c44ce2c5501e1b5de
Related: odoo/enterprise#18497
Signed-off-by: Josse Colpaert <jco@openerp.com>
Signed-off-by: Jigar Vaghela <jva-odoo@users.noreply.github.com>
Beforehand, when installing the SEPA DD module, the Accounting App
was also installed, because of a dependency between the batch payment
feature and the account_accountant module.
Now, a bridge module breaks this dependency, and SEPA DD can be used with
the Invoicing App. This means that Batch Payment, being a dependency of
SEPA DD, is available to the Invoicing App.
task-2375697
closesodoo/odoo#65634
Related: odoo/enterprise#16161
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
The footer company name override from the website is done in a separate
template from website.layout in order to avoid duplicating it when
edited.
Related to https://github.com/odoo/odoo/pull/69943
task-2468472
closesodoo/odoo#71307
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Steps:
- Install Website
- Go to Website
- Click "Go to Website"
Bug:
The default phone number on the website is not fictional and may cause
unwanted spam.
Explanation:
In North America, only 555-0100 through 555-0199 are specifically
reserved for fictional use.
> The industry also reserved a block of 100 numbers as fictitious,
> non-working numbers (555-0100 through 0199) for use by the
> entertainment and advertising industries.
Source: https://www.nationalnanpa.com/pdf/NRUF/ATIS-0300115.pdf
opw:2530388
closesodoo/odoo#71303
X-original-commit: 5a047574dde6b207697244c866749d3cd439922c
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: backspac <backspac@users.noreply.github.com>
Before this commit the PyInotify filesystem watcher used by the code
autoreload feature (`--dev=reload`) would not get a chance to free
it's inotify watches before the reexec, hence at each reexec triggered
by a code reload the inotify watches where accumulated until potentially
reaching the kernel limit `fs.inotify.max_user_watches`.
This patch ensures that inotify properly closes it's file descriptor
before we reexec:
https://github.com/dsoprea/PyInotify/blob/f77596a/inotify/adapters.py#L79closesodoo/odoo#71302
X-original-commit: 8703ff1e3d9be6f2f5fce2e8c4e62589b05133fb
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Before this commit, for default colors, the text-muted class color was
set as !important from the portal and could not be overriden by the
website, leading to inconsistent display between the website and the
portal for the copyright.
As a fix for stable, we do not change the text-muted color from the
portal when using default colors.
task-2468472
closesodoo/odoo#71300
X-original-commit: d2e934631d4de02a7933434a1252dab994fed4b7
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
*: web
This commit brings some functionnal changes to the palette selection
screen:
- The list of suggested palettes does not depend on the uploaded logo
anymore. It is now a fixed list of 20 palettes manually chosen among the
existing ones.
- The recommended palette is not chosen among the existing palettes
based on the logo's extracted colors anymore. The recommended palette is
now a fully custom palette generated based on the two main colors
extracted from the logo.
- The selected palette has a border to indicate it is the currently
selected palette.
task-2518565
closesodoo/odoo#71268
X-original-commit: 23dee47ed51d0dfa54f68ef4b328aba957589bb9
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
In a Manufacturing Order, the components' quantities are rounded using
the rounding precision of the produced product's UoM. This leads to
incorrect values.
To reproduce the error:
1. In Settings, enable "Units of Measure"
2. In UoM, edit Units:
- Rounding Precision: 1
3. Create two products P_finished and P_compo
- P_compo's Product Type: Consumable
- P_compo's UoM: L
- P_finished's UoM: Units
4. Create a Bill of Materials
- Product: P_finished
- 1 Component:
- Product: P_compo
- Quantity: 0.2
- UoM: L
5. Create a Manufacturing Order:
- Product: P_finished
6. Confirm, Mark as Done
Error: Qty to consumes became 0 and consumed qty is 0. Both values
should be 0.2L, but they have been rounded using the rounding precision
of Units
OPW-2529462
closesodoo/odoo#71293
X-original-commit: aff3a2e06801dfb7a58df5180fb4ab5487b27f02
Signed-off-by: Steve Van Essche <svs-odoo@users.noreply.github.com>
Signed-off-by: Adrien Widart <adwid@users.noreply.github.com>
The optimization 2ccf0bd0dc does not take into account that to
"unblacklist" a user, you have the archive the mail.blacklist record so
only mail.blacklist active records need to be taken into account.
Added test without the fix fails with:
AssertionError: False is not true : MailTrace: email
test.record.02@test.example.com (recipient res.partner(), state:
sent, record: mailing.test.blacklist(166,)): found 0 records (1 expected)
opw-2536304
closesodoo/odoo#71277
X-original-commit: 965c67cb16d2a4ac10d35a01da3af311867a47e6
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Issue
- Install 'Survey' & 'website' module
- Enable "es_VE" language and activate on main website
- Go to Website Homepage
- Switch to "Spanish (VE)" language (footer)
- Go to "Survey" module
- Create a survey:
- Add a question of type 'Date' then save
- Click on "TEST" button
- Start survey and add a date with the datepicker
- Submit survey
Error message : 'This is not a date'
Cause
When submit survey, not using the database date format.
Solution
When validating form (on submit), check if date is formated
with database format and (not the moment locale since user can
alter date and datetime format).
opw-2452237
closesodoo/odoo#71228
X-original-commit: f3c5dd794e4de71187fd7532c39595b2297eb93d
Signed-off-by: Anh Thao PHAM <kitan191@users.noreply.github.com>
Signed-off-by: bon-odoo <nboulif@users.noreply.github.com>
Before, the "Company name" placeholder was hardcoded in the frontend
layout template, and the user had to change it with his company name
from the website view, which was not user-friendly if the website module
was not installed.
Now, by default, the frontend layout template displays the user's
company name. If the website module is installed, it is editable.
task-2468472
closesodoo/odoo#71176
X-original-commit: 059804be90021559debee6f930462594a3ca8a97
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
The display name of cancelled entries is "/"
This provides no information to the user - especially when the duplication message is logged.
This aims to improve the display_name of account.move so draft and cancelled entries display the id as a reference
closesodoo/odoo#70764
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
In mail_plugin module, add a method which returns translatable modules,
this method will be overridden in the other modules to add their module names.
Translations are prepared via the _prepare_translations method which uses
the get_translations_for_webclient method, this way we can easily fetch
translations without having to write python code.
We also add xml files in "static/", these files contain terms to be translated,
for each plugin we create a separate xml file so that we can easily update each
plugin separately.
This implementation will allow having translations handled by Odoo, which has
several advantages:
- existing system, nothing to develop
- it will use transifex and the terms will be translated by the community
- forces that mail_client implementations to have the same logic (consistency)
- compared to other solutions which rely on python code to return translations,
this solution is more robust as it avoids having to type the string to
translate twice
Task-2480075
closesodoo/odoo#69118
Ent-pr: https://github.com/odoo/enterprise/pull/17626
Plugin-pr: https://github.com/odoo/mail-client-extensions/pull/6
Related: odoo/enterprise#17626
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
before this commit: when many2mnay_tags widget does not have color_field in
options still hovering over many2many_tags badge shows cursor pointer, while
it should display default cursor and if there is color field given in options
then cursor should be pointer.
after this commit: cursor pointer will be displayed only when color field is
given in options else shod cursor default.
task-2451204
with this commit, we adds many2many_avatar_user widget to have same behaviour
as many2one_avatar_user where clicking on avatar image opens chat box, so to
have same feature on many2many_tags which is related to res.users we adds
many2many_avatar_user widget.
task-2451204
Steps to reproduce:
1. activate routes setting + multi-step incoming shipments (2 or 3,
doesn't matter)
2. create an immediate transfer receipt
3. add a done quantity (optional: validate)
4. open corresponding 2nd step internal transfer
Expected result:
- amount done in immediate transfer receipt will be demand of internal
transfer
Actual result:
- demand (and all other values) will be 0
closesodoo/odoo#68885
Task: 2492994
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
"Set Quantities" button does not make sense to show for immediate
transfers since there are no quantities to reserve, therefore we hide
it.
Task: 2492994
If the chat window was initially folded and when a new message is received
the chat window automatically unfolds. it is annoying having a window that
pops up each time a new message is coming while having folded it once.
So, It should remain folded when a new message is received if the chat
window is already folded.
Task : 2522141
closesodoo/odoo#71258
X-original-commit: 6e84914a3691735e9c97084cc8d55788babd2ad9
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
When performing an email or SMS mailing on functional models a default domain
is a good start to avoid sending notifications to dead records, aka
* canceled registrations;
* canceled tracks;
* canceled sale orders;
Task ID-2431217
COM PR odoo#67322
ENT PR odoo/enterprise#16876
UPG PR odoo/upgrade#2236closesodoo/odoo#67322
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
PURPOSE
Remove hardcoded list of models on which mailing is possible. Indeed it is
not modular and not really smart with enterprise code not being reachable
in community.
SPECIFICATIONS
Replace hardcoded list of models on which mailing (both mail or sms) is
possible by a computed searchable field on ``ir.model`` based on a class
attribute.
It allows to cleanly define models having mass mailing capabilities and add
this attribute in bridge modules (when existing) or directly on base model
definition to avoid bridge modules.
In this commit we introduce a basic ``_mailing_enabled`` class attribute
activating mailing on model.
Mailing models may also have a ``_mailing_get_default_domain`` method allowing
to define a custom default domain when sending a marketing mailing on records
on this class.
Mailing models can now define a ``_mailing_get_opt_out_list(_sms)`` method
allowing to define custom behavior to fetch opt-outed records. Instead of
defining a model-based behavior on Mailing itself, it now calls the model
defined one. We still have two methods, one for mailing and one for SMS
opt out computation as it relies on different underlying models and fields.
LINKS
Task ID-2431217
COM PR odoo/odoo#67322
ENT PR odoo/enterprise#16876
UPG PR odoo/upgrade#2236
Merge two overrides of Base into the same file. Just moving code to clean
module, nothing changes functionally or technically.
LINKS
Task ID-2431217
COM PR odoo/odoo#67322
ENT PR odoo/enterprise#16876
UPG PR odoo/upgrade#2236
The method filtered_domain() is broken for domains with hierarchical
terms ('child_of'/'parent_of').
To see *one* of the ways the implementation is broken, let `A` be a
model with `parent_id` pointing to `A`, and `a1` a record of model `A`
without parent (`a1.parent_id` is `False`), then this fails:
assert a1 in a1.filtered_domain([("parent_id", "child_of", a1.id)])
The reason it fails is that on
https://github.com/odoo/odoo/blob/f5519586d214a9b34ad24683a7f97c47802a3bad/odoo/models.py#L5377-L5380
`data` is empty since `a1` has no parent, thus
https://github.com/odoo/odoo/blob/f5519586d214a9b34ad24683a7f97c47802a3bad/odoo/models.py#L5403-L5404
fails, therefore the result of `filtered_domain` is empty.
Note: the implementation of the hierarchical operators is full of quirks
that are hard to emulate otherwise than by reusing the original code.
As a consequence, the current implementation may be broken in more than
one way.
Let's see another way the implementation is broken: let `B` be a model
without a `parent_id` field and with a `friend_id` field pointing
to `B`, and let `b1` be a record of model `B`. Then
b1.filtered_domain([("friend_id", "child_of", b1.id)])
throws an exception of the form shown below:
ValueError: Invalid field 'parent_id' in leaf "<osv.ExtendedLeaf: ('parent_id', 'child_of', 1) ...
Meanwhile the following code is still valid and returs b1:
B.search([("friend_id", "child_of", b1.id)])
closesodoo/odoo#71237
X-original-commit: e7a5ba95d8b7df5bbf545ef8afe0a1f5d0f70272
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
When performing an sms marketing on a model having only a ``partner_id``
field available (aka no ``phone`` or ``mobile``) it crashes due to seen
list computation (aka already contacted recipients). This is due to an SQL
query not taking into account those models as it works only for those with
a phone field.
We fix it as done in ``mass_mailìng`` app, aka fetching information on the
related partner if available.
Some tests for models using a 2many relationships towards recipients are
added. Note that this kind of model does not really support complete SMS
notification, as only the first found partner is notified. Mass SMS on this
kind of model is currently not possible as seen list is not supported. There
is no standard use case of this in Odoo codebase.
Correctly support sms marketing on sale model by defining the necessary
methods. As sale order has only a partner_id field available we have to
correctly override phone related methods for SMS.
LINKS
Task ID-2431217
COM PR odoo/odoo#71140
X-Original-Commit odoo/odoo@987d974ccbclosesodoo/odoo#71178closesodoo/odoo#71205
X-original-commit: 642816d0a819bf74927ed5aa11b6843cbb97d4df
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Purpose is to test specific behavior of opt-out for SMS marketing. This is
currently not tested and working a bit strangely, as they are flagged as
blacklist. This will soon be updated in another task but at least current
behavior is logged somewhere.
We also update some test models in order to reflect potential strange and
non-default behavior, notably partner_id field used as contact field. It
will be used soon when cleaning some opt-out behavior.
Tests are added to check phone sanitized is correctly taken into account
in default domains when inheriting from the phone blacklist mixin.
Some counters notes are also updated next to some last updates.
Task ID-2431217
COM PR odoo/odoo#71140
X-Original-Commit odoo/odoo@3ba3054f0a
X-original-commit: a9ac2582eb508daa21fd0d3a5a551261ecc18f8b
There is a missing depends on subscription_ids fields, meaning it is not
correctly refreshed when contacts are updated. When dealing with m2m using
the o2m model as relational table, depends have to be specified on field
itself to allow recomputing the fields.
Task ID-2431217
COM PR odoo/odoo#71140
X-Original-Commit odoo/odoo@11ffeddf23
X-original-commit: 37bad522bcaf9a6db2f676286fb9ceb1a188dcab
- Create a pos order, pay and valide
- Close Pos
- reopen pos
- search this order
- click print ticket
--> Issue the hash doesn't appear on the ticket
closesodoo/odoo#71217
X-original-commit: 40adcce221ab882d034b2f4ed2987a234ba434f5
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
In database with frontend and live chat there are lot of bad query error.
bad query: UPDATE "mail_channel_partner" SET "write_uid"=5,"write_date"=(now() at time zone 'UTC') WHERE id IN (328111)
closesodoo/odoo#71207
Error: Could not serialize access due to concurrent update
X-original-commit: 36a9e761c8d6c1c6e9611cc410ecca82ff2b1659
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
The method that computs what is due and the change of an order is based
on the selected payment line which is wrong, because if you add and
remove a payment line, none will be seleced, that lead to issue in this
case because a change is computed, and it won't match the invoices
because an amount_return is sent to server.
To reproduce you can follow this simply procedure:
- set rounding half-up to 0.05
- create a product at 0.98
- open POS and create an order with the product
- go to payment screen
- add cash payment (1€ auto filled)
- add bank payment (It'll autofill -0.02 not really a problem)
- remove the bank payment => It'll show 0.02 due (it is caused because of no payment method is selected)
- Set a customer and check the invoice => unbalanced (0.02 probably because it is set in amount_return of the request)
closesodoo/odoo#71195
X-original-commit: af5a88e84fb1c05c4be38930373165f28a06f4f0
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
Hide fields related to belgian localisation when not using a belgian
company.
Task Id: 2496597
closesodoo/odoo#69691
Related: odoo/enterprise#17881
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
- using join on required fields ease PostgreSQL planner guessing
- skip useless join, the fastest code is the not executed one
- skip dynamic `or` insertion and replace with a union all in CTE
- replacing `where exists` with a join is then possible
- a bit of alignment
from some s to some ms execution time.
Submit an "Apply for a job" on website , goes from
`"POST /website_form/hr.applicant HTTP/1.0" 200 - 182 2.649 0.106`
without this patch, to
`"POST /website_form/hr.applicant HTTP/1.0" 200 - 185 0.492 0.107`
when this patch is applied
closesodoo/odoo#71028
X-original-commit: 783280375ff04955978a14f007f96d6c4d7443b1
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Steps:
- Install Events
- Go to Events / Configuration / Settings
- Enable Tickets
- Go to Sales / Configuration / Settings
- Enable Multiple Sales Prices per Product
- Go to Sales / Products
- Edit Event Registration
- Sales tab
- Pricing
- Pricelist: Public Pricelist (USD)
- Price: $6
- Go to Sales
- Create a new quotation
- Pricelist: Public Pricelist (USD)
- Product: Event Registration
- Event: Design Fair
- Ticket: VIP
Bug:
The pricelist is not taken into account. Unit price should be $900 but
is $1500.
Explanation:
The original issue comes from this commit: https://github.com/odoo/odoo/commit/379f1490c93dc599a74add2d678c18fbba1efa62
The advertised amount was not the one showing up in the cart. This is
because the pricelist was not taken into account anymore when entering
the payment process.
Using `price_reduce` instead of `price` enables all kinds of discounts
on the final price.
However, `price_reduce` relies on the context to find the current
pricelist.
This commit adds the context needed to compute the price of the tickets.
This context is the same as the one in the sales module since pricelists
are working fine there: https://github.com/odoo/odoo/blob/b208570ce8399bc6d3e4a8ba02eef6558e0a6ccc/addons/sale/models/sale.py#L1494
The currency conversion is done in `product.price`. It's therefore
already done when calling `price_reduce`.
opw:2519453
closesodoo/odoo#71175
X-original-commit: bee8ac5ccf8106b25566332e769b73e8f707d05b
Signed-off-by: backspac <backspac@users.noreply.github.com>
The main company can have something else than EUR or USD, especialy when
testing localizations.
closesodoo/odoo#71171
X-original-commit: 91a3dca13c1de637b25810ed7f509dce6e66c908
Signed-off-by: Josse Colpaert <jco@openerp.com>
Signed-off-by: William André (wan) <wan@odoo.com>
This method was defined in `account` but overrided in `l10n_cl`. Prefix
the method to avoid that.
X-original-commit: c60530eedc70f7bb6040adaf311a273bad5aa37c
When one or more vendor bills in Italian e-invoice format were sent to the registered PEC mailbox, if they are in the PKCS#7 format ('.xml.p7m'), nothing happened.
The e-invoice content should be automatically decoded and the invoice should be created as soon as the xml file is fetched from the PEC mailbox.
A new remove_signature function has been added in a tools/remove_signature.py file to handle this case.
The OpenSSL and pyOpenSSL libraries must be installed.
They are not in requirements.txt but they're probably available.
New tests has been provided for the signed email reading method.
opw-2460485
closesodoo/odoo#71164
X-original-commit: ed723be917637320fc4d2787bdf505e4a7a8216d
Signed-off-by: Josse Colpaert <jco@openerp.com>
Signed-off-by: Paolo Gatti <lordkrandel@users.noreply.github.com>
This is a forward-port of commit https://github.com/odoo/odoo/commit/970387f91fea0cb47404612f7d519ffba2c9ad3b
In editable list view, moving to next cell using TAB key crash when the
following field is becoming read-only (i.e non-focusable) and an onchange()
event is triggered.
Consider an editable tree view like this:
<form>
<field name="o2m" onchange="1">
<tree>
<field name="description"/>
<field name="date" attrs="{'readonly': [('description', '!=', False)]}"/>
<field name="type"/>
</tree>
</field>
</form>
1. Edit 'description'
2. Issue a TAB keypress before 'date' becomes read-only
It will crash while calling getSelectionRange() on an empty element.
opw-2523630
closesodoo/odoo#71163
X-original-commit: 2a880a8020b55b692505846e9626359fe019dbdb
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Signed-off-by: Anh Thao PHAM <kitan191@users.noreply.github.com>
With this commit, changing the scheduled date on a planned production
order will unplan the workorders and so highlight the 'Plan' button to
replan them from the new scheduled date.
closesodoo/odoo#71089
X-original-commit: a6783acaef3c7c2224d1cda72717a36c4b38c001
Signed-off-by: Rémy Voet <ryv-odoo@users.noreply.github.com>