Commit Graph
1740 Commits
Author SHA1 Message Date
stefanorigano (SRI) 56064ff1e4 [REM] *: drop oe_clear class in favor of clearfix bootstrap default
Part of the overall v16 SCSS optimization/restyle, task-2704984.

task-2918463

Part-of: odoo/odoo#97051
2022-08-04 13:54:14 +02:00
william-andre d8d47f9ff8 [REF] accounting v16. Yeeeeaah
TLDR:
* invoices are implemented using computed methods instead of onchange
* the synchronization only happens when switching tabs in the Form view
  to improve perfs.

_______________________________________________________________________

The whole engine of the synchronization of Invoices to the Journal
Entries has been refactored
* by using computed fields instead of onchange functions
* by synchronizing only from invoice to journal entry in `create` and
  `write`
* by saving when switching tabs on the Invoice form, to synchronize
  before showing the values

This comes with numerous advantages:
* no need to call the onchange methods manually
* no need to use the Form emulator to build invoices (i.e. EDI, OCR,
  intercompany, ...)
* the performance for invoices with many lines improves drastically, going
  from 2 minutes to 4 seconds to create an invoice with 500 lines
* the model is more declarative, we can now see how the values are computed
  instead of having the values being copied from various places.
* remove the hack in `onchange` that disabled the recursivity of it,
  which was unexpected and needed to be managed manually in all the
  onchange methods

This means that:
* Some fields need to be exclusively computed on journal entries values
  or invoice values, more specifically the Tax Summary widget.
  It is now
    - computed from entry lines, when opening the view
    - computed from invoice lines when changing those, because the tax lines
      will need to be recomputed anyways, erasing previously set values
    - set with an inverse function when saving; after the sync has been done
* Some possible operations previously possible have been dropped.
  (i.e. look at the removed test test_in_invoice_line_onchange_accounting_fields_1)
  This is because such a behavior was undefined (how is changing the balance going
  to affect the unit price? How is the amount currency going to affect it?)

_______________________________________________________________________

Implementation Details
----------------------

The "dynamic lines", meaning the payment terms and the tax lines are now
only created in the `create` and `write` functions.
In order to reduce code duplication, it has been implemented using
context managers used in both `account.move` and `account.move.line`
These context managers help comparing the values before/after, acting
like a local `onchange`, but getting benefit from the dirty flags from
the `compute` dependences.
This is relying on computed fields on the move (`needed_terms`) and on
the lines (`compute_all_tax`) which contain the values needed for the
related move.
Depending on the needed values and the existing values (`term_key` and
`tax_key`, respectively) the context manager will determine what needs
to be created/updated/deleted.

Some related changes are to produce a `dict` instead of a `str` for the
`tax_totals` (previously `tax_totals_json`) fields, by simplicity to
reduce the complexity of IO, and simplicity of debugging, because the
logic of the field needed to change (cannot be computed at the same time
anymore since it needed the lines to be synced)

By simplicity, and also because it makes more sense, some boolean fields
have been merged into `display_type`:
* `is_rounding_line`
* `exclude_from_invoice_tab`
* `is_anglo_saxon_line`

The `price_unit`, `quantity` and other "invoice fields" are now not set
anymore on lines that are not product lines since it didn't make any
sense to have it.

Performances
------------

You have to keep in mind that a simple `create` didn't compute a lot of
fields, for instance not taxes were set, no payment terms,...
Now it does.

```python
import random
from timeit import timeit
from odoo import Command
domain = [('company_id', 'in', (False, self.env.company.id))]
products = self.env['product.product'].search(domain).ids
partners = self.env['res.partner'].search(domain).ids
taxes = self.env['account.tax'].search(domain).ids
def create(nmove, nline):
    self.env['account.move'].create([
        {
            'move_type': 'out_invoice',
            'partner_id': random.choice(partners),
            'invoice_line_ids': [
                Command.create({
                    'name': f'line{i}',
                    'product_id': random.choice(products),
                    'tax_ids': [Command.set([random.choice(taxes)])],
                })
                for i in range(nline)
            ]
        }
        for j in range(nmove)
    ])
                                                             # After  | Before
print(timeit("create(1, 1)", globals=globals(), number=1))   # 0.11   | 0.09
print(timeit("create(100, 1)", globals=globals(), number=1)) # 2.76   | 2.50
print(timeit("create(500, 1)", globals=globals(), number=1)) # 14.56  | 12.34
print(timeit("create(1, 100)", globals=globals(), number=1)) # 1.03   | 5.52
print(timeit("create(1, 500)", globals=globals(), number=1)) # 3.99   | 125.02
print(timeit("create(50, 50)", globals=globals(), number=1)) # 19.44  | 79.55
```

Another metric that can be used is running the test suite with
`--test-tags=/account` (only `account` installed)
* before: 404s, 267127 queries (366 tests)
* after: 318s, 232125 queries (362 tests)

Why this commit title?
----------------------

Someone told me that this was the perfect way of naming your commits.
c04065abd8

task-2711317

closes odoo/odoo#96134

Related: odoo/upgrade#3715
Related: odoo/enterprise#29758
Signed-off-by: Laurent Smet <las@odoo.com>
2022-08-03 13:44:49 +02:00
Guillaume (guva) 57b7c4ddd3 [FIX] account: customer address show in invoice report
When printing an invoice, the customer address
was not displayed if there was no delivery
address specified.

As the address should be displayed at the same place
than when the delivery address and customer address
are the same, we just paste the code from the related
condition.

opw-2899259

closes odoo/odoo#97248

X-original-commit: c0544097d38fae25decb096808dbbdec0cdb5c4d
Signed-off-by: Josse Colpaert <jco@odoo.com>
Signed-off-by: Guillaume Vanleynseele (guva) <guva@odoo.com>
2022-08-01 20:41:08 +02:00
Nguyen Hong Quang 869f933252 [FIX] account:'Journal Entry' being hidden by their container
Currently, button 'Journal Entry' not wrap with classes `.o_stat_info
.o_stat_text` which make this
text being hidden by their own container.

This PR will fix this problem.

closes odoo/odoo#96927

X-original-commit: 8b7d548cdab9d9e6169553c2b8cde5a4e68004dd
Signed-off-by: Florian Gilbert (flg) <flg@odoo.com>
2022-07-28 09:14:53 +02:00
Pierrot (prro) 157ae1c708 [IMP] account: improve invoice UX and bank addition
When using the wizard to add a bank account, it should be added to
an existing journal only if the journal has no bank account set
and no journal entries.

We also want to be able to remove a set bank account.

When using the wizard to add a bank account (Create it button ;
not Connect button), it should be added to an existing journal
only if the journal has no bank account set and no journal entries.

We remove an unwanted constraint on the bank journals that
prevented the removal of an Account Number (IBAN).

Some UX changes. In the Journal Items list view, specific views
open depending on their move type. This commit also changes
the "View" button of the invoice payment widget on the Journal Entry's
form view in order to align behaviours.

The core open_move method is also moved from the account move line
model to the account move's one for more flexibility.

The "1 Statement" button of the payment's form view now links to the
new reconciliation widget.

The Journal Items lists accessed from the Journal report now show
the partner by default.

The "Unreconciled" filter now filter out partial reconciliations which
have a residual amount != 0.

The Partner column should almost always be shown by default in a
Journal Items list view.

task-2893208

closes odoo/odoo#94923

Related: odoo/enterprise#29092
Signed-off-by: Florian Gilbert (flg) <flg@odoo.com>
2022-07-27 16:33:51 +02:00
+2 bc0a0cead6 [IMP] web,*: enable owl list & form views
The new list and form views were merged recently [1], but they
weren't activated because they weren't 100% ready yet. This is now
the case. This commit adds those views to the view registry. As a
consequence, a lot of qunit tests and tours needed to be adapted,
mostly for selector changes.

We also add legacy list and form views to the view registry, with
keys 'legacy_list' and 'legacy_form'. This allows to force those
legacy views when necessary. For instance, we did it in views
using complex custom legacy x2many field widgets that haven't been
converted yet (we have a compatibility layer but it isn't complete
and doesn't support every advanced usecases).

[1] odoo/odoo#92475

Part-of: odoo/odoo#78221
Co-authored-by: Aaron Bohy <aab@odoo.com>
Co-authored-by: Bruno Boi <boi@odoo.com>
Co-authored-by: Géry Debongnie <ged@odoo.com>
Co-authored-by: Samuel Degueldre <sad@odoo.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: Simon Genin (ges) <ges@odoo.com>
Co-authored-by: Francois (fge) <fge@odoo.com>
Co-authored-by: Michael Mattiello (mcm) <mcm@odoo.com>
Co-authored-by: Julien Mougenot <jum@odoo.com>
Co-authored-by: Lucas Perais (lpe) <lpe@odoo.com>
Co-authored-by: Jorge Pinna Puissant <jpp@odoo.com>
Co-authored-by: luvi <luvi@odoo.com>
2022-07-22 16:21:45 +02:00
Hubert Van de Walle (huvw) c21101c161 [FIX] account: mobile: unable to add lines to misc journal
Steps to reproduce:

  - Load odoo on a small screen / mobile phone
  - Go to accounting > Miscellaneous Operations
  - Click on create
  -> The button to add a line in Journal Items is missing

Cause of the issue:

  On mobile, the kanban view is used for Journal Items
  The kanban view used [0] has an attribute `create="false"`

Solution:

  Override the `create` attribute when the kanban view is a subview

[0]: https://github.com/odoo/odoo/blob/93520cc291ffb76dd1425e413f29653df37b4062/addons/account/views/account_move_views.xml#L94

opw-2870637

closes odoo/odoo#96484

X-original-commit: 31ac34816e61d66479dbd11ebb9c5348c3f12886
Signed-off-by: Christophe Simonis <chs@odoo.com>
Signed-off-by: Hubert Van De Walle <huvw@odoo.com>
2022-07-21 01:53:44 +02:00
aliya 8a455d8519 [IMP] account: make account creation easier
Task 2888204

- Name is automatically split into code and name
- account_type is computed based on the closest parent of the code prefix (and can be changed)
- _onchange_name is needed to split name into code and name when creating from a related model's form

closes odoo/odoo#94171

Signed-off-by: Quentin De Paoli <qdp@odoo.com>
2022-07-14 18:03:47 +02:00
aliya 5d4b5d71c0 [FIX] account: fix the account selection widget
After the change in account_type field in account.account the old selection widget didn't work.
Fixing the selection widget and adding it back on acocunt_type field.

As account types cannot be custom anymore, the account types within the hierarchy can be hardcoded.

closes odoo/odoo#95821

Signed-off-by: Cedric Snauwaert <csn@odoo.com>
2022-07-13 19:55:47 +02:00
Jinjiu Liu d9893e385d [FIX] web: created css class for mt32 and mb32
Reproduction:
1. Create an invoice, then save and confirm it
2. Print the invoice
3. The CSS spacing does not work in the PDF report

Reason: V13 uses Bootstrap 3 but Odoo V14 uses Bootstrap 4. In
Bootstrap 4, the margin class is defined in a different way.

Fix: Instead of re-defining mt32 mb32 in the css file, we use mt-4 and
mb-4 to create a similar effect for the margins.

opw-2654880

closes odoo/odoo#95925

X-original-commit: 510c3f38ad54a09167774bb1e46215b761978024
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Liu Jinjiu (jili) <jili@odoo.com>
2022-07-13 16:23:12 +02:00
aliya 26b2472f49 [IMP] account: refactor account types
Task: 2856281

- Remove user_type_id, account.account.type model, internal_type
- Add account_type that is a simple selection field
- Move internal_group and include_initial_balance to account.account
- Because of these changes, type_control_ids on account.journal is also removed

closes odoo/odoo#93212

Related: odoo/documentation#2223
Related: odoo/upgrade#3595
Related: odoo/enterprise#28205
Signed-off-by: Cedric Snauwaert <csn@odoo.com>
2022-07-08 19:52:15 +02:00
Romeo Fragomeli 1fcd098af5 [REF] *: BS5: migration
Automated change made by a lot of RegEx to change all think that is
possible to automate.

https://getbootstrap.com/docs/5.1/migration

Task ID: 2766483

Part-of: odoo/odoo#95450
2022-07-07 13:30:24 +02:00
Romeo Fragomeli d8c131c894 [FIX] *: wrong use of row and col revealed in BS5
* restore position relative:

> Columns no longer have position: relative applied, so you may have to
> add .position-relative to some elements to restore that behavior.

https://getbootstrap.com/docs/5.1/migration/#grid-updates

Example:
Favorite widget isn't shown on the right location due to change
in Boostrap 5, so we restore the old positioning of the `.col`

PS: another fix is to simply remove the position absolute of
`.o_favorite` but its break the favorite in kanban project.

* remove usage of `width` in kanban image when `col` is also used:

The class `o_kanban_image` is
```css
.o_kanban_image {
    width: 64px;
}
```

In BS4 the col rules are:
```css
.col-4 {
    flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
}
```
and in BS5:
```css
.col-4 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    flex: 0 0 auto;
    width: 33.33333333%;
}
```

So `width` overrides the `col` rules.

To summarize:
In BS4
```css
{
    max-width: 33.33333333%;
    width: 64px;
}
```

In BS5
```css
{
    width: 33.33333333%;
    width: 64px;
}
```

e.g. where there is the case:
Helpdesk > Reporting > Customer Ratings (Kanban card)

Task ID: 2766483

Part-of: odoo/odoo#95450
2022-07-07 13:30:18 +02:00
Valentin Chevalier b5dab9b119 [IMP] account_payment: hide pay button when paid
Hide the 'Pay Now' button for invoices which transactions total amount
equals their total amount.

When the total amount of all transactions related to the invoice is
equal to or greater than the total amount of said invoice, the 'Pay Now'
button should no longer be displayed.

task-2527323

closes odoo/odoo#95262

X-original-commit: de81225d39e7951ea9a63e24bab3a0138a6942e3
Signed-off-by: Achraf <abz@odoo.com>
2022-07-05 12:42:33 +02:00
Achraf (abz) 5d8fcdf492 [FIX] account_payment: Don't display pay now button if the status is paid
Correct "Status" position in the account_portal header

opw-2817794

X-original-commit: acf1003d46360bff23b605ccb77a44d099f1c1a8
Part-of: odoo/odoo#95262
2022-07-05 12:42:33 +02:00
Jairo Llopis 4f5491b347 [FIX] account: extensible subtree views
Both the CE and EE web clients don't support proper responsivity when a subtree view is inside a `<group>`.

By removing them (they were unnecessary anyway) we recover proper responsivity in these views.

@moduon MT-688 OPW-2843895

closes odoo/odoo#90946

Signed-off-by: William André (wan) <wan@odoo.com>
2022-07-05 12:42:25 +02:00
Pierrot (prro) 783a06fee8 [IMP] account: improve account list view UX
In the Chart of Accounts list view, the column "Non Trade"
is hidden by default

closes odoo/odoo#94150

Signed-off-by: Cedric Snauwaert <csn@odoo.com>
2022-06-30 14:14:42 +02:00
Brice bib Bartoletti c340c0ea9d [FIX] account: report_payment_receipt_document.xml
This commit fix the template "report_payment_receipt_document".

The template call the python method "_get_reconciled_invoices_partials" but
which signature was broken by https://github.com/odoo/odoo/commit/785d49f3f0a21720d8c929d597d4041918ab7f41

closes odoo/odoo#94579

Task-id: None
X-original-commit: 3ed9a07a3674d5ce5d4378acf589231a2867acc3
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Brice Bartoletti <bib@odoo.com>
2022-06-24 19:34:25 +02:00
Victor Feyens fba6ea5a47 [IMP] *: do not force admins to be app admins
For bugfix purposes, app administration groups have been given to
(implied by) the "Settings" group because without those rights,
opening/saving the settings crashed.

1) Do not load hidden view content

This commit uses the conditional inheritance of views
(depending on user groups) to avoid loading unnecessary view
& record content client-side.

This improves performance for admins without the specific application
admin rights, but also fixes the main bugfix problem,
caused by the webclient querying name_get for the records in relational
fields content.

Example:

sale_management adds a res.config.settings field to specify
the default sale.order.template for the current company.

If a 'Settings' user without 'sale.group_sale_manager' opens the
settings, he won't see this setting, but if a default template is
specified for the current company, the webclient will still request
the name_get of this template to the server, because the field
was present in the view, only hidden with a groups attribute.

With this commit change in sale, the field won't be in the view unless
you have the Sale manager group, avoiding the error/traceback/bug.

2) Remove implied application administration groups

Do not force the specific application groups on all 'Settings' user,
they globally do not need those rights, and if they need it, they
can add it to their account themselves.

3) Add a test to make sure settings user are able to manage settings.

4) Enforce 'settings' -> 'access rights' -> 'internal user' groups

As the previous test highlighted some 'false positives' because
it considered a settings user unable to read `crm.team`
and `stock.warehouse` records, we also took the opportunity to enforce
the fact that 'Settings' & 'Access rights' users must be internal users.

It makes no sense for a portal/public user to have access to the
settings, and didn't work anyway.

Part-of: odoo/odoo#91909
2022-06-23 23:48:29 +02:00
Pierrot (prro) 9773469bb3 [IMP] account: improve Journal Items list UX
Some more iterations for improving the Journal Items list UX.
- Added a searchpanel on accounts
- Added the column Residual in Currency
- Dropdown list on account edit
- Added the Residual column

closes odoo/odoo#94076

Related: odoo/enterprise#28644
Related: odoo/upgrade#3612
Signed-off-by: Cedric Snauwaert <csn@odoo.com>
2022-06-22 12:14:52 +02:00
Ricardo Gomes Rodrigues (rigr) 17d44d6617 [IMP] account{,fleet,lock}: add quick invoice encoding
This commit:
- adds a fiduciary mode which allows fast encoding of invoices. This is an Accounting setting which must be activated. This fiduciary mode allows one to edit directly the invoice sequence and enter the total amount of the invoice (by creating a single line which contains the base price, the tax amount, and the most frequent account) such that we match this 'quick total amount'.
- adds a new test for this feature
- adds a 'quick edit total amount' in the tax computation which verifies that the 'quick edit total amount' correctly matches sum of the base and the tax (in case of fiduciary mode)
- sorts and filters the accounts suggestions in an invoice line. The most frequent accounts for a particular partner rank higher while filtering on the type of account suggested (this is disabled if the user searches itself for the account)
- selects by default the most frequent account for a particular partner when creating a new invoice line
- adds the option to hide some columns (label & quantity)
- moves the car column after the account column in case the Fleet app is installed

Task-id: 2857253

Community PR: odoo#91938
Enterprise PR: odoo/enterprise#27605

Part-of: odoo/odoo#91938
2022-06-20 18:56:09 +02:00
Louis Baudoux 74bb7b1dc0 [IMP] account: change occurrences of "digitaliz*" to "digitiz*"
The correct word for the extraction of data from a document is
digitization, not digitalization.

See feedback #2862606.

closes odoo/odoo#92569

Related: odoo/enterprise#27912
Signed-off-by: Florian Daloze (fda) <fda@odoo.com>
2022-06-20 17:57:26 +02:00
Pierrot (prro) d2bd3427b6 [IMP] account: improve Journal Items UX
Journal items:
- 2 list views were available for the journal items. As these changes
    make them very similar, the "grouped" view is dropped and only
    the simple/normal list view is used.
- As the usefull information is now available from the list items,
    the more complex name that was previously used on the group by
    lines is not useful anymore.
- Removed duplicated filters.
- Added and modified columns of the list view.
- Removed the button opening the move form from the move line, and
    made the move name clickable (with same behaviour as the button).
- Removed edit button on some group by lines, as it can lead to
    unwanted access errors.
- Removed 2 filters and added 1.
- Added a field to use for the matching widget.
- `move_id` was replaced by `move_name`, because the sorting of the
    Many2One `move_id` is not based on its name and was thus not
    working as intended.

task 2855459

closes odoo/odoo#93586

Related: odoo/enterprise#28361
Related: odoo/upgrade#3598
Signed-off-by: Cedric Snauwaert <csn@odoo.com>
2022-06-17 16:31:00 +02:00
Miquel Raïch b046f8ec91 [IMP] account: add 'Invoice Line' filter in account moves
Searching for the product field of account move lines is something expected to be used frequently.

closes odoo/odoo#86910

Signed-off-by: William André (wan) <wan@odoo.com>
2022-06-09 11:15:53 +02:00
Stanislas Gueniffey 564af98969 [IMP] account_move: recurring entries
Recurring entries are created using the 'auto_post' selection field
- 'no' for regular entries
- 'at_date' for non-recurring auto-posted entries
- 'monthly', 'quarterly', 'yearly' for recurring auto-posted entries

Auto-posted entries can also be posted manually.
For recurring entries, the next one is  created upon posting.

See : odoo/enterprise#27798
See : odoo/upgrade#3543

closes odoo/odoo#92348

Task: 2855545
Signed-off-by: William André (wan) <wan@odoo.com>
2022-06-07 12:11:29 +02:00
Laurent Smet 080d41a341 [REF] account_accountant: Refactor the bank reconciliation widget
- Refactor the bank reconciliation widget to use more standards views and have a side-by-side kanban/widget views instead.
- Make sure the bank reconciliation widget is doing the same thing as the "reconcile" method on account.bank.statement.line. Then, what you see on the view is exactly what you get on the corresponding journal entry.
- Since the "reconcile" method is gone, clean the matching rules since it's now called only for one statement line at a time. Also, move the auto_validate feature into a CRON to avoid performance issues when opening the widget.

closes odoo/odoo#91448

Task: 2555114
Related: odoo/enterprise#27360
Related: odoo/upgrade#3555
Signed-off-by: William André (wan) <wan@odoo.com>
2022-06-07 10:16:14 +02:00
Pierrot (prro) 011d8ad9e3 [IMP] account: Improve Journal Items Tax Audit UX
Small changes to show and hide some fields by default,
and add some in the view.

task-2855459

closes odoo/odoo#92852

Signed-off-by: Quentin De Paoli <qdp@odoo.com>
2022-06-03 16:41:14 +02:00
Pierrot (prro) 65b67d4cbb [IMP] account: improve invoice UX
Improvements to the account move form:
- "Reconciled Entries" button -> "Reconciled Items", and goes now to the
    Journal Items list view grouped by Matching number
- Removed the unwanted margin next to the "Journal Items" table (in the
    "Journal Items" tab)
- the partner can be hidden, in the Journal Items list view

task-2855459

Part-of: odoo/odoo#92852
2022-06-03 16:41:14 +02:00
Pierrot (prro) d7fe7fd8f0 [IMP] account: improve Journal Items UX
Improvements to the Journal Items list view:
- readonly set on multiple fields
- hide/optional show by default on multiple fields
- "Tax Grid" string set on tax_tag_ids for more clarity
- Added multiple fields to the "simple" list view for more consistency
    with the grouped list view
- Added an edit button on some "group by" lines to edit the
    corresponding field
- Removed the Revert and Duplicate button from the "grouped by" view
    (on the group by line)
- Added a button to open the corresponding Journal Entry, and removed
    the Journal Item form access. The Journal Item form should not be
    accessible anymore.
- Show the total sum for Balance
- Added the "Tax Grid" group by

task-2855459

Part-of: odoo/odoo#92852
2022-06-03 16:41:14 +02:00
Nicolas (vin) d83ce882b8 [IMP] account: journal audit report improvement.
Improve the tax report section of the journal audit by adding a
background color to it, as well as reducing the width of the tables.
Ease the navigation from the journal audit report by adding three
new actions:
    - Taxes in the tax applied section can be clicked to audit them
    - The tax applied and the impacted tax grid sections now have an
      audit button to open a group-by view of journal items grouped
      appropriately according to the information we need.

closes odoo/odoo#92846

Related: odoo/enterprise#28025
Signed-off-by: Quentin De Paoli <qdp@odoo.com>
2022-06-03 14:36:39 +02:00
Nicolas (vin) f5541768a6 [IMP] account: new journals audit report
Improvement in two ways:

- Implement a new, accounting report version of the existing journals audit
pdf report, and remove the old journal audit report (PDF only).
- Remove the menu items in "accounting" that opens the group by view of journal
items with different filters. Now, these will be linked to actions on lines in
the different reports available to the user.
Also render the "journal items" menu visible without debug mode.

Task id #2838182

closes odoo/odoo#92438

Related: odoo/upgrade#3560
Related: odoo/enterprise#27840
Signed-off-by: Quentin De Paoli <qdp@odoo.com>
2022-06-02 12:05:07 +02:00
Adrien Minet 92bd5d161d [FIX] account: account_id must be editable in mobile view
How to reproduce ?

- Change dimensions of the browser view to mobile view.
- Install the account app
- Create a new invoice
- Click on Add to add an item to the invoice
- On the ne dialog fram, select a product to add

What is the bug ?

If you use the account app on a large screen where you can add items
directly on the invoice, you can modify the account journal of the item.
However, when you use the mobile version of a small screen where you
have to add products through a dialog frame, the account journal of the
item cannot be modified.

opw-2850587

closes odoo/odoo#92721

X-original-commit: 93520cc291ffb76dd1425e413f29653df37b4062
Signed-off-by: Adrien Minet <admi@odoo.com>
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Minet Adrien (admi) <admi@odoo.com>
2022-06-02 09:52:45 +02:00
Ricardo Gomes Rodrigues (rigr) c56c137f53 [IMP] account: improve tax name search
This commit improves tax name search by ignoring punctuation and spaces.
This allows faster searching for taxes (while editing an invoice line or
while configuring them)

Example:
Searching for `21M` should match `21% M.` , `21% EU M.` and `21% M.Cocont`.
Searching for `0EUT` should match `0% EU T`.

Task id: 2851341

closes odoo/odoo#92683

Signed-off-by: William André (wan) <wan@odoo.com>
2022-06-01 18:34:56 +02:00
william-andre 9e6d585f75 [REF] account{,_edi}: upload bill wizard is for all kind of documents
An enterprise module adds the possibility to upload bank statements.
Since the mechanism is exactly the same, we should use the same
functions.

closes odoo/odoo#83639

Related: odoo/enterprise#25123
Related: odoo/upgrade#3460
Signed-off-by: Cedric Snauwaert <csn@odoo.com>
2022-05-31 16:01:51 +02:00
Shawcker 273c133f70 [IMP] account: improve display of the journals audit report
A few points can be improved in the display of the journals audit report:
1. it only contains the account codes. This can be unclear and lead to hard to read reports, especially for manually created accounts
2. the width of the columns Partner, Account, Label can sometimes be too small which causes a line break to happen too early
3. monetary fields do not align right for right-to-left languages.

This commit addresses these issues by:
1. adding the account name right next to the account code (same column) for more clarity.
2. setting a minimum width to mentioned columns
3. modifying the html classes accordingly to ensure the text aligns right no matter the direction of reading of the language (l2r or r2l).

task id=2824121

closes odoo/odoo#92304

X-original-commit: 0f5d125ee12597b4acb40053f74af8e03a102493
Related: odoo/enterprise#27776
Signed-off-by: Quentin De Paoli <qdp@odoo.com>
2022-05-31 14:59:20 +02:00
Ricardo Gomes Rodrigues (rigr) c13e5907d3 [IMP] account: improve how taxes are displayed
This commit aims at improving the display of taxes at onboarding only.

Many active and inactive taxes are mixed in complicated localizations (e.g. Belgium),
even though most of those inactive taxes are useless for most of the users that are
going through the onboarding.

To achieve this, we should change the default sort on the list view as follows:
1. Active
2. Tax type
3. Tax amount (to group them together by amount, even if the column is hidden by default in the view)

Task id: 2846605

bla

closes odoo/odoo#91486

Signed-off-by: William André (wan) <wan@odoo.com>
2022-05-23 16:27:49 +02:00
Fabrice Henrion f2650a724b [FIX] account: improve terminology
closes odoo/odoo#91729

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2022-05-19 18:06:13 +02:00
Camille Spiritus e8776485b4 [IMP] account: align delivery and recipient adresses on invoices
Since 15.2, when creating an invoice containing both a recipient address and an invoice address, the addresses would both appear on the left, one after the other.

This made reading difficult and the invoice unclear.

Furthermore, the company address wasn't present by default on the invoice : it was only there if a layout had previously been selected.

This PR:
- reverts the behaviour of the company address, i.e. it appears even if no layout is (yet) selected ;
- aligns the delivery and the recipient address on each side of the page when necessary, while not changing the outcome if a single address is given.

Also displays a "title" above the addresses when necessary to make things clearer.

task-2809240

related : https://github.com/odoo/enterprise/pull/27240

closes odoo/odoo#91487

X-original-commit: 1e745256fabbec4d6979180d8f792c99be463509
Related: odoo/enterprise#27383
Signed-off-by: Florian Gilbert <flg@odoo.com>
2022-05-17 16:03:16 +02:00
aliya 954f05367e [IMP] account, l10n_generic: change default fiscal country
Task ID: 2717840

Currently:
- Generic_coa has country_id US, which is not valid for non-supported localizations. This creates a bug as the country on taxes and account_fiscal_country_id becomes different.
- Users who only have Invoicing installed can't change the fiscal country setting as it's only available in Accounting.

Desired:
- Set account_fiscal_country_id the same as country_id
- Remove base.us from l10n_generic_coa
- Adjust the error message to make the issue more clear for users
- Allow changing fiscal country in Invoicing

closes odoo/odoo#91363

Related: odoo/enterprise#27332
Related: odoo/upgrade#3264
Signed-off-by: Laurent Smet <las@odoo.com>
2022-05-17 16:03:13 +02:00
Merlin (megu) 80a4dc912a [FIX] account: edit payment's partner_bank_id
Payment's partner_bank_id cannot be modified because the field is in
readonly

Steps to reproduce:
1. Install Invoicing
2. Go to Invoicing > Vendors > Payments and create a new payment
3. Specify a vendor, edit this vendor and add two bank accounts (in the
Invoicing tab) then save
4. The field 'Vendor Bank Account' is populated with one of the bank
accounts
5. Save the payment then edit it again
6. Change the 'Vendor Bank Account' and save
7. Refresh the page
8. The 'Vendor Bank Account' hasn't changed

Solution:
Add a condition to the readonly so that it only applies when the field
'Company Bank Account' is displayed

opw-2826507

closes odoo/odoo#91406

X-original-commit: 47b69d6cbf1bf9c9512a4b46a223e3b9f3c89e06
Signed-off-by: Olivier Colson <oco@odoo.com>
Signed-off-by: Guillaume Merlin (megu) <megu@odoo.com>
2022-05-16 10:09:56 +02:00
Victor Feyens c3b9c0d8a2 [FIX] *: typos in translated strings
closes odoo/odoo#89718

Related: odoo/enterprise#26630
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2022-05-02 21:36:40 +02:00
mafo-odoo ac04c9dbfd [FIX] account: remove nested html p tag in p tag for invoicing report
Current behavior:
The invoice payment term of the report is a p tag with another p tag inside like:
<p name="payment_term">
	<span>
		<p> This is a payment term note</p>
	</span>
</p>
but because nested p tags are not supported in html de result in the browser is something like:
<p name="payment_term">
        <span></span>
</p>
<p> This is a payment term note</p>
<p></p>

Similar behavior can be observe for the fiscal position note.

Expected behavior:
The code should respect html format rules and not have nested p tags.

Solution: We replace the parent p tags by div tags, and we modify xml file that have xpath relying
on this tag.

opw-2804933

closes odoo/odoo#88660

Related: odoo/enterprise#26372
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2022-04-29 12:05:24 +02:00
Shawcker 37609c7e83 [IMP] account: improve display of invoices/bills in list view
Canceled and draft entries are the same color as posted entries. They should be in a different color (grey/blue) in order to be distinguished from other invoices/bills.

Amount Due, a.k.a. amount_residual(_signed), is not 0 for draft and canceled entries. It should be 0 since they haven't been posted yet.

A few tests have to be adapted to reflect this change in spec.

Task=2801521

closes odoo/odoo#88295

X-original-commit: 498a4a52b5fbc5466d8d0652db10563ccba55032
Related: odoo/upgrade#3435
Signed-off-by: Laurent Smet <las@odoo.com>
2022-04-27 13:26:50 +02:00
aliya 785d49f3f0 [IMP] account: emphasizes exchange diff entries in payment widget
Task ID: 2712093

Currently:
- In the payment widget the exchange difference value is always shown as 0 and is described as "Paid on", which can be confusing for a user

Desired:
- The exchange difference should have the difference amount and be described as "Exchange difference" (text-muted)
- In the payment widget pop-up, show the both the amount in company and foreign currencies

closes odoo/odoo#82206

Signed-off-by: Quentin De Paoli <qdp@odoo.com>
2022-04-07 21:59:47 +02:00
Julien Van Roy e5f7b64258 [IMP] account: improve quicksearch on journal entry/item
Add quicksearch on 'Number' (name) and 'Reference' (ref) for the journal entries
Add quicksearch on 'Label' (name) and 'Reference' (ref) for the journal items

Even though those fields are already searched on in the 'main' quicksearch
of each view (i.e. 'Journal Entry' and 'Journal Item'), users might look to
specifically search on the label and reference, and get frustrated when they
won't find it in the available quicksearches.

task-2753889

closes odoo/odoo#87532

Signed-off-by: Laurent Smet <las@odoo.com>
2022-04-05 15:17:27 +02:00
John Laterre (jol) ff0275be6b [IMP] account: credit limit by partners
The basic idea of this functionality is for users
to be able to put limits on Partners that would
trigger non-blocking warnings when trying to confirm new:

- Sales Orders
- Invoices

when that partner has too many open invoices.

task-2722165

Part-of: odoo/odoo#83205
2022-04-01 18:49:46 +02:00
Nicolas (vin) e2b3ec6d5c [IMP] account_*: some Back2Basics improvements
Improve a few things in accounts modules:
    - Users wants to be able to change the account in the general ledger
    list view
    - Do not group by date by default when auditing a tax line.
    - Make the currency fields only show in debug mode for accounts and assets
    - Disallow to delete taxes linked to a tax repartition line, and
    clarify the error message when trying to delete one linked to a
    fiscal position's account mapping

Task id # 2810379
[IMP] account_*: some Back2Basics improvements

Improve a few things in accounts modules:
    - Users wants to be able to change the account in the general ledger
    list view
    - Do not group by date by default when auditing a tax line.
    - Disallow to delete taxes linked to a tax repartition line, and
    clarify the error message when trying to delete one linked to a
    fiscal position's account mapping

Task id # 2810379

closes odoo/odoo#87659

Related: odoo/enterprise#25770
Signed-off-by: Laurent Smet <las@odoo.com>
2022-04-01 17:56:38 +02:00
william 08ef4e9223 [IMP] account: detect holes in sequences
The resequence feature and the possibility to edit the invoice number in
draft are powerful flexibility tools. Though, misusing them can lead to
holes in a sequence that can be hard to detect.

This task aims at providing alerts on the dashboard (on Sales and
Purchases journals' cards) highlighting the holes in the sections

_____________

Suppose the following sequence on a journal

BILL/2022/01/0001
BILL/2022/01/0002
BILL/2022/01/0004

> BILL/2022/01/0003 is missing.

Then show a link on this journal's card in the kanban view of journals
(accounting dashboard) mentioning.

> Check the sequence

Pressing the button opens the list view of bills on this specific
journal.

BILL/2022/01/0004 appears in red ; since it is after a hole

task-2767272

closes odoo/odoo#84788

Signed-off-by: Laurent Smet <las@odoo.com>
2022-04-01 12:31:03 +02:00
william-andre beb6e17066 [FIX] account: remove dead code complete_tax_set
This field was used in version 9.0 [1] to allow users to select their
tax rate, but it was removed in version 12 [2]

[1] https://github.com/odoo/odoo/commit/c04065abd8f62c9a211c8fa824f5eecf68e61b73
[2] https://github.com/odoo/odoo/commit/87f0d2eefb77bfc6a9a0fa7f7dcd1475c7c34639

closes odoo/odoo#80185

Related: odoo/enterprise#22441
Related: odoo/upgrade#3057
Signed-off-by: Quentin De Paoli <qdp@odoo.com>
2022-03-31 17:24:55 +02:00
Goffin Simon a6031a9905 [FIX] account: Show analytic_tag_ids with widget many2many_tags
Show the optional field analytic_tag_ids with widget many2many_tags in
view account.move.line.tree.grouped

opw:2778260

closes odoo/odoo#86990

X-original-commit: fa4d41bcebde71c5aa7bbf53dd19bdaab748f4c8
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Simon Goffin <sig@odoo.com>
2022-03-25 12:39:57 +01:00