Before this commit, the taxes with amount of zero are not shown on
invoice print. For instance, the 15% tax of a product with value of
€0.01 will not be show on invoice print.
This previous commit 37a0f7acae8aebef35577b178f8aeefed11c9105 allows
showing zero percent taxes on invoice print. This commit, will
fine-tuning the previous commit to also show taxes with zero amount.
opw-2307761
closesodoo/odoo#55665
X-original-commit: b8bb1e12a10477bb31addc6d3cecefa046dd09fe
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
- Go to Accounting > Configuration > Taxes and create a new Group of Taxes:
* Tax Name: TaxGroup
* Tax Computation: Group of Taxes
* Add 2 taxes (i.e. T1 15% and T2 20%)
- Go to Accounting > Customers > Invoices and create a new Invoice:
* Add a Product and select TaxGroup as Taxes
- Post the invoice
- Go to TaxGroup edition and remove T2 20%
- Go back to create Invoice and add a Credit Note
At Credit Note creation, a KeyError is triggered.
opw-2321199
closesodoo/odoo#56729
X-original-commit: 816c0fa0f74d6126aecd663183361e53a1d8b460
Signed-off-by: Anh Thao PHAM <kitan191@users.noreply.github.com>
Right now on few business objects (like leads, invoices, tasks, helpdesk
tickets etc) creation message contains
* subtype description;
* generic creation message;
This looks like multiple creation message on chatter after creation of the
record as you generally have "Task Created - Task created" (subtype description
then generic message).
This happens when we provide custom subtype on creation by by overriding
`_creation_subtype` method.
This commit fixes the issue by only using provided creation subtype and
removing default body. If creation subtype is not provided default creation
message is posted as before.
In this commit we also fix subtype for Lead/Opportunity creation and make
it generic ('Lead/Opportunity created') to avoid inconsistent behavior.
Finally some cleaning is made in method naming. Semi followup of 92e9e84b63
LINKS
Task ID-2288458
PR odoo/odoo#56631
PR odoo/enterprise#12707closesodoo/odoo#56688
X-original-commit: 2ebbeb4b5443c6405dd9a3b202a1eee9c5c67ebb
Related: odoo/enterprise#12728
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
PURPOSE
Since v13 some commits added code in mail thread file. This file is already
quite long and keeping it organized allow to understand its content.
SPECIFICATIONS
Some methods defined on mail.thread may actually be called on models
not inheriting from mail.thread . Instead of having model methods on mail
thread receiving a records parameter it seems better to have those available
directly on BaseModel.
Move static_message_track on BaseModel in models.py. This method is now called
_mail_track, to be coherent with othe rmail-related naming. It is used in
accounting to track values in line model that does not inherit from mail.
thread. Update accounting accordingly (followup of d862965).
Move _message_get_default_recipients_on_records in models.py. Renaming it
_message_get_default_recipients() allow to be compatible with current behavior
and current override available in some addons (like CRM, event, ...).
Move _notify_get_reply_to_on_records in models.py. Renaming it
_notify_get_reply_to() allows to be shorter and coherent.
Move _alias_check_contact_on_record in models.py. Renaming it
_alias_check_contact_() allows to be shorter and coherent. Its override in
hr is also moved on BaseModel.
LINKS
Task ID-2327096 (code cleaning)
PR #56631
X-original-commit: f5df1ed912455e5ed52a65df3149f30a9d424de0
when creating the first bank statement on a journal. It will trigger
manual field recomputations:
https://github.com/odoo/odoo/blob/d19477f982e046ba563ce18706f0eab2b250738d/addons/account/models/account_bank_statement.py#L288-L297
previous_statement_id will correctly be False
The manual recomputation in create will recalculate all bank
statements that have a False previous_statement_id.
These bank statements are usually the first ones in a journal. When they get
recomputed it triggers recomputations for every bank statement that
follows it.
This commit try to limit this behavior by recomputing statements only in
the same journal
opw-2311173
closesodoo/odoo#56648
X-original-commit: e932df3b356752eb9c42164821acb6e2db7fe317
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: agr-odoo <agr-odoo@users.noreply.github.com>
Before this commit, Creating a new Credit Note will log `Refund Created` into the chatter, and creating a new Vendor Refund will log `Credit Note Created` chatter due to wrong types given in `_get_creation_message` method.
With this commit, We use the correct type in this method.
closesodoo/odoo#56618
X-original-commit: 4d2d9f030d6a5a56657d30586ba6fc0bbd688fca
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
Create an invoice I with a tax T on an invoice line. Validate
Archive T
Create the credit note from I
Traceback will occur because the archived value is not copied on the
reversal, causing issue when matching data
opw-2320472
closesodoo/odoo#56407
X-original-commit: d949cb88abbf8f64b383bceba07105df578a4a14
Signed-off-by: agr-odoo <agr-odoo@users.noreply.github.com>
- Create 2 customers A & B
- On A, set a Payment Term for Sales and Purchases
- Create a customer invoice
- Add a line
- Set Partner A
=> the payment term is selected
- Set Partner B
=> the payment term is kept
Moreover, the term account is set only if the customer has a payment
term set, which is not logical.
Since the partner is not mandatory, we keep an intermediate behavior: we
set the info of the partner only if there is a partner defined.
opw-2304436
closesodoo/odoo#55632
X-original-commit: 68d470ee832ea7999ebcb58109d249d7d463c83d
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
Task 2005940
account:
* Use stored compute methods instead of default for
{out,in}bound_payment_method_ids
* Track is_move_sent in the chatter
* Split 'Invoices' and 'Bills' in the smart button of payment form
* Because account.payment.method can be shown on the res.partner form,
we need to relax the security level to readonly for all users
account_check_printing:
* Add the preferred payment method for partners, with a related on
account move allowing to do a group by and doing payments in batch
* Add a constraint to forbid twice the same check number in the same
journal
* The amount in words is now readonly to prevent typos and mismatches
with the amount in digits
* Remove the field `check_number_int`. The check number is kept as Char
so that '000012345' is not displayed (and printed) as '12,345' but it
is parsed so that comparison and incrementation are possible.
closesodoo/odoo#56179
Related: odoo/upgrade#1669
Related: odoo/enterprise#12527
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
the search for sequence include a criteria `date_trunc('year', date) =
date_trunc('year', '2017-10-01'::date)` Which is translated by query
planner in `date_trunc('year'::text, date::timestamp with time zone)`.
As it's mutable thanks to the time zone, it's not indexable. Enforcing
the `without timezone` makes the query planner use an immutable
`date_trunc('year'::text, date::timestamp without time zone)`. As it's
immutable, it's indexable.
closesodoo/odoo#56244
X-original-commit: 70f671a32a504c6aa92fd19e38e6151c10b2325b
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
The tooltip message on default_account in the journal is too obvious, and it has an issue
(There is no way to control the tooltip title when the field appears multiple times in the view,
it is always taking the label of the last time the field appears)
which is a limitation of the framework.
Thus, it is removed.
Fix the display of emails on the accounting dashboard, as they only should be
visible when properly set and on the purchase journal.
Improve the flow of the new bank account wizard to avoid forcing the user
to chose an existing journal when one of them exists without account.
This should still be a possibility, but the user should be able to decide
to create a new journal if wanted.
Task id #2322724closesodoo/odoo#56177
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
This provides a better API to search for records by name without the
formatting part (`display_name`).
This also simplifies all the overridings of `_name_search` that no
longer need to call `name_get()`. The call to `name_get()` is done in
method `name_search` in a generic way.
Task 2300900
Easier onboarding.
Because we don't have the correct prefix to use, we set a default '999'
code prefix.
closesodoo/odoo#55996
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
Added edi.documents representing an electronic document for a move and an edi.format.
A format can be asynchronous if it needs to call a web-service to generate the document, it will then be generated by the CRON (otherwise it's generated in post).
The formats can support payments if needed (can be generated immediately or by the CRON).
Added support for errors and related views.
Setting defaults format on a journal can be done automatically (based on a hook).
Added tests : xml comparaison with diff and helpers to test a EDI import/export
--task: 2247368
* merge report_invoice_document and report_invoice_document_with_payments templates
* define new generic method _get_name_invoice_report that let us to
print a different report, this method can be inherited by each localization
to set their custom report
* change report templates to use the new method.
Use _for_xml_id to replace all the self.env.ref().read()[0]
This has the advantage of having a single point of control and to add
the fields filtering and model verification.
Add sudo for other operations on ir.actions.*
Task 2292368
Bundle
https://runbot.odoo.com/runbot/bundle/master-reconcile-model-boost-wan-60105
* Search in Notes and References, not only in the statement's
communication.
* Activate the partner mapping for Suggest Counterpart models
* Always show the Amount Matching field
* Do not block the deletion of models with a partner mapping
* Allow to archive models
* Add a button to get back to Processing state from Validated state on
bank statements.
closesodoo/odoo#55031
Related: odoo/upgrade#1619
Signed-off-by: Cedric Snauwaert (csn) <csn@openerp.com>
Because we used the same variable to compute the partner, it was
overriden once we went through a model with a partner mapping, and kept
for models with lesser priority.
Also remove the key param to sort the recocniliation models. We want the
models to be sorted according like in the list view, and that is exactly
what the .sorted() function does without params. (no need to worry about
changing it if we change the _order)
Lets assume we have these records
```json
{
'id': 1,
'journal_id': 1,
'date': '2020-01-01',
},
{
'id': 2,
'journal_id': 1,
'date': '2020-01-01',
}
```
with the domain
```
[('date', '<=', st.date),
('journal_id', '=', st.journal_id.id),
('id', '!=', st.id)]
```
in the compute method of `previous_statement_id`, the previous
statement of 1 will be 2 and vice versa.
A solution is to change the declaration of the field from Date to
Datetime
This config parameter was used in order to choose another country than the company's to select the tax report. It is now replaced by a new account_tax_fiscal_country_id field in account_reports.
closesodoo/odoo#55308
Related: odoo/enterprise#12156
Related: odoo/upgrade#1624
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
- Go to Point of Sale
- Switch to View list
- Select a POS and click on Action\Export
- On Export wizard:
* check "I want to update data (import-compatible export)" option
* expand "Default Balance" section
A KeyError is triggered while trying to access undefined field referred by "_rec_name"
of "account.bank.statement.cashbox".
opw-2309064
closesodoo/odoo#55480
X-original-commit: 7e3143b93ffd7162c90e0c50758a4f44b0645cd6
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: Anh Thao PHAM <kitan191@users.noreply.github.com>
There are inconsistencies in the m2o accounts create & edit behavior.
New off-balance account type was not correctly filtered
This change correct those two issues
Task ID: #2288757closesodoo/odoo#54626
Related: odoo/enterprise#11920
Signed-off-by: Cedric Snauwaert (csn) <csn@openerp.com>
- Create Tax 0:
Percentage
Amount: 0
Tax Included
Tax Group 0
- Create Tax 8:
Percentage
Amount: 8
Tax Included
Tax Group 8
- Create a customer invoice with one line
Quantity: 8.0
Price Unit: 15.55
Taxes: Tax 8, Tax 0 (order is important)
The tax amounts are:
Tax 8: 9.22
Tax 0: -0.01
If the taxes are inverted, the tax amounts
Tax 8: 9.21
Tax 0: 0.00
The difference is due to the rounding of the 8% tax done differently. In
the second case, the computation of the 8% tax goes through:
https://github.com/odoo/odoo/blob/8c5cd335a57c20ed5faa6b7c7630c296c1f2a5cf/addons/account/models/account.py#L1480
In the first case, the amount is recomputed in:
https://github.com/odoo/odoo/blob/8c5cd335a57c20ed5faa6b7c7630c296c1f2a5cf/addons/account/models/account.py#L1483
The rounding is different in both cases, leading to an inconsistency.
When the tax amount is zero, there is no need to save the amount in
`total_included_checkpoints`.
opw-2306676
closesodoo/odoo#55812
X-original-commit: e2776e188070221ef465a864bd2cb8dcfc971e14
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
When an user wants to lock his fiscal year lock date.
The system checks whether all the bank statement lines are reconciled.
However, the date must also be added to the search domain to receive
only the bank statement lines that are included in the lock date.
Task ID: 2297407
closesodoo/odoo#55672
X-original-commit: d232ecacda28614f36dd655a3f000290c6d3a91c
Signed-off-by: Cedric Snauwaert (csn) <csn@openerp.com>
Order move for hash: In the method write, we sort the recordset following this rule: by date, by ref and by id.
This rule is used because we need to be consistent with the method _compute_name.
If we don't filter moves like that, we could possibly have a problem.
If you have several moves and you post them at the same moment with the action "Post entries", the hash sequence
could be in another order than the name sequence.
For example:
Move_20 (29/07/2020) - Hash_2
Move_21 (02/07/2020) - Hash_1
About security check, if the hash is activated, the user cannot reorder by date with resequence
because we don't want that the name sequence have not the same order than hash sequence.
Task ID: 2297407
closesodoo/odoo#55669
X-original-commit: b3ae96dc52178a3b13dda845244fe34268aed8a0
Signed-off-by: Cedric Snauwaert (csn) <csn@openerp.com>
Change ValidationError to RedirectWarning, RedirectWarning is usefull to redirect user to
the problem. For the lock date, we can redirect user to unposted entries or unreconciled bank statement lines.
Task ID: 2297407
With company country and localization set to Peru
Go to invoice dashboard
Click on 'Send sample'
User will receive the warning
'If you want to use "Off-Balance Sheet" accounts, all the accounts of the
journal entry must be of this type'
and the action will abort because the first account fetched for the
operation is an 'Off Balance' account
opw-2300813
closesodoo/odoo#55509
X-original-commit: 27a9eb3083e7938199ff047060135e030496eec0
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
Signed-off-by: agr-odoo <agr-odoo@users.noreply.github.com>
- Create an invoice using a tax exigible on_payment.
- Refund the invoice with 'Full refund'.
=> Traceback: The lines are already reconciled.
Explanation:
Odoo tried to reconcile all lines having a reconcile account, including the one set on taxes.
- The first reconciliation is made on the receivable account triggering the cash basis entries that will be reconcile with the tax account.
- The second reconciliation fails because the account has been reconciled to the cash basis entries.
closesodoo/odoo#55594
X-original-commit: 01f2a4c3d95b4ea762ef34ae56ee717a9614cb1a
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
The problem of using fields.Date.today() instead of
fields.Date.context_today() arose with the recent changes in the
account.move._post() method used in the POS tests, around 1 am.
This commit changes all occurences of today to context_today.
closesodoo/odoo#55511
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
Task 2227389
The wizards for creating Accrual Entries and Transfer Entries are quite
similar. We are merging them as they share code and business logic.
Entries in the future should not be posted for both wizards, but set to
be auto posted instead.
Add an easy way to not post the entries in the future when calling
post() on it, but rather set it to be auto-posted at accounting date.
This is useful when we are creating a lot of entries in batch and some
might be in the future, some in the past, and we don't want to separate
that in two batch every time. (asset, accrual, transfer,... )
It was removed here https://github.com/odoo/odoo/pull/32303 but readded
later. We still don't want it for the same reasons.
Having it on related (non stored) is enough.
The cash difference line created on a statement using a cash journal should use the loss/profit account.
Then, the line is supposed to be marked as reconciled and then, doesn't appear in the bank reconciliation report.
closesodoo/odoo#55336
X-original-commit: 60e32447cc3fda3650aa718cb0996d29976005d4
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
This allows the method to be called in RPC
The nil extension has not been enabled as explained at odoo/odoo#12289closesodoo/odoo#55374
Cla: signature for parveenjangra290
X-original-commit: abac62f35c8cd293143e01c137c79519897eb21c
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Wrong usage of self in for loop
closesodoo/odoo#55334
X-original-commit: 5a0b06ab0447f2b09e71934f2cc3209e6ebe9359
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>