Commit Graph
93 Commits
Author SHA1 Message Date
Christophe Simonis 8c29df10e0 [MERGE] forward port branch saas-12.1 up to 93d736e905 2019-02-11 17:00:35 +01:00
Christophe Simonis 87924cb5ad [MERGE] forward port branch 12.0 up to a46138cb01 2019-02-07 13:14:02 +01:00
Christophe Simonis 530f364547 [MERGE] forward port branch saas-11.3 up to 0c42a607ec 2019-02-06 11:59:44 +01:00
Christophe Simonis 9c6acbaaa0 [MERGE] forward port branch 11.0 up to e0b14bf9a7 2019-02-05 17:53:35 +01:00
wan 969705fa2a [ADD] account: suspense account management
Task 1930403
Purpose:
A suspense account is an account in the general ledger that temporarily stores any transactions for which there is uncertainty about the account in which they should be recorded. Once the accounting staff investigates and clarifies the purpose of this type of transaction, it shifts the transaction out of the suspense account and into the correct account(s). An entry into a suspense account may be a debit or a credit.

The Chosen Odoo approach (macro) for this case is
1) from bank statement -> reconciliation widget -> reconciliation model
2) create move that have a dedicated checkbox
3) be able to reopen the bank statement line "like if there is no linked account move" and finally reconcile the transaction with the good invoice/bill (we can reprocess account move "to check")
4) when we reprocess, Instead of creating an account move : Check if there is an "to check" existing linked account move and remove all the account move lines then replace  them by the good ones --> we want to keep the sequence

closes odoo/odoo#30486
2019-02-08 10:11:41 +00:00
wan 6dd25994bf [FIX] account: remove useless TOFIX lines
There is nothing preventint to remove this line
The second FIXME is preserved to keep the tests running, as the account functionality of the function may be removed

closes odoo/odoo#30323
2019-02-07 08:50:17 +00:00
Christophe Simonis f927c68ddb [MERGE] forward port branch 12.0 up to cb8fefa899 2019-01-31 16:59:58 +01:00
wan 3eead65f07 [FIX] account: add date field in reconciliation writeoff form
purpose:
    when creating a writeoff from the manual reconciliation widget (invoices & payment matching), there's no way to specify the date of the writeoff journal entry

specs:
    in v12, add a date field in the js and set the date of the writeoff entry accordingly

Was PR #29794
Was OPW 1896593

closes odoo/odoo#30676
2019-01-30 09:28:40 +00:00
wan 6a8ab26688 [FIX] account: allow to reconcile companies with parent
OPW 1929160
A filter prevented from selecting a partner in the reconciliation widget if it had a parent company but a company with a parent company should be selectable

closes odoo/odoo#30270
2019-01-22 08:34:43 +00:00
Christophe Simonis a23e8c081a [FIX] account: adapt forward-ported test 2019-01-02 17:11:36 +01:00
Christophe Simonis 79f1ecd756 [MERGE] forward port branch 11.0 up to d82c0d133e 2019-01-02 15:37:01 +01:00
Christophe Simonis ec9400821e [MERGE] forward port branch saas-11.3 up to 27a084eb81 2019-01-04 14:54:08 +01:00
qdp-odoo 4fde773938 [FIX] account: don't propose partial reconciliation on blue lines
Create a vendor payment of 100€
Create a bank statement line with an amount lower than the payment
Open bank reconciliation view
Reconcile the bank statement line with the blue line of 100€, the triangle for partial reconcile appear.
Current behavior:
If you click the triangle, you can reconcile this payment with the statement line but it becomes unbalanced.

Expected behavior:
The triangle should not appear.

Fixes odoo#29654

closes odoo/odoo#29718
2018-12-21 15:53:21 +00:00
b1ef0001f6 [REF] *: adapt all client actions
to ControlPanel/Search view refactoring.

The ControlPanel being now inside the DOM of client actions, those
existing widgets needed to be adapted (in the way they define if
and how they want a ControlPanel, and in the way the manipulate
their DOM as it slightly changed). Tests needed to be adapted as
well.

Part of task 1893568

Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: Martin Geubelle <mge@odoo.com>
2018-12-07 13:16:07 +00:00
Christophe Simonis d4c65a7ede [MERGE] forward port branch 11.0 up to 2156af480f 2018-12-04 17:11:57 +01:00
Nicolas Martinelli cba55c12e4 [FIX] account: 'Load More' on Manual Reconciliation
In case there is a large amount of data to display, the 'Manual
Reconciliation' widget suffers from high CPU consumption, and therefore
slowness.

This is mainly due to the line rendering (function `_renderLines`).
Indeed, unlike the 'Bank Statement Reconciliation' widget which
retrieves the data partially, the 'Manual Reconciliation' widget
retrieves and renders all the data. No offset is implemented in this
case, neither for data retrieval nor rendering.

With this commit, we implement a partial rendering of the data
retrieved. This means that all data are fetched when loading the widget,
but only a part of it is rendered. We make use of the existing 'Load
More' mechanism to display more data. By default, 30 accounts or
partners are loaded.

By combining this with PR #28958, we aim to make the widget more usable
for large data volumes.

opw-1903575

closes odoo/odoo#28959
2018-12-03 09:57:07 +00:00
Christophe Simonis 937d870ffc [FIX] account: correct reconcialtion widget tests
The widget expect a list of accounts to be defined.
2018-12-05 16:19:16 +01:00
Christophe Simonis caf1837216 [MERGE] forward port branch saas-11.3 up to d4c65a7ede 2018-12-05 12:27:57 +01:00
Christophe Simonis e1f9499d26 [MERGE] forward port branch 12.0 up to 053bb45706 2018-12-05 18:46:15 +01:00
Cedric Snauwaert 7d6a9924e5 [IMP] account: possibility to edit amount in reconciliation widget
Before we could only make a partial payment that was equal to the value of the statement line if the payment was greater than the statement line.
Now we can modify the value of any line (black line) used in the statement reconciliation widget. This allow to have the following:

Statement line of 500
Payment 1 of 500
Payment 2 of 500

We can reconcile the statement line with 250 from payment 1 and 250 from payment 2.

Task: 1870895

closes odoo/odoo#27805
2018-12-04 14:37:54 +00:00
Christophe Simonis 7a0243ec15 [MERGE] forward port branch 12.0 up to b3052b690f 2018-11-23 12:11:32 +01:00
Julien (juc) Castiaux ccd1552b83 [FIX] account: missing tax computation in reconciliation
Install the accounting module, create a new payment for a customer
go to payment matching, reconcile the payment for the account
'Account recievable' and select a tax. There is a traceback
because of a incomplete implementation of the tax computation.

This commit complete the implementation and add the missing tests.

opw-1903172

closes odoo/odoo#28591
2018-11-19 08:55:56 +00:00
Géry Debongnie abf32b8b21 [REF] *: update js test suite to use helpers
This rev. introduces robust helpers to use in the JS tests suite to
interact with DOM and components, and starts using them (almost)
everywhere.

All the helpers are exposed though testUtils.js.

There are 2 kinds of helpers:

1. Assertions
-------------
 * assert.containsNone, containsN, containsOnce check that the DOM
   (or a specific part of the DOM) contains a `selector`. It
   generates a correct error message automatically.
    ex: assert.strictEqual(form.$('.o_form_editable'), 1, "msg");
        -> assert.containsOnce(form, '.o_form_editable');
 * assert.isVisible, isNotVisible check that the DOM has an element
   visible or not. They also check that the element is actually in
   the DOM (before most tests didn't verify this).
 * assert.hasClass, doesNotHaveClass, hasAttrVAlue, check specific
   properties of a DOM element, and also validate that it is
   applied on a single existing DOM element (before most tests
   didn't verify this).
    ex: assert.notOk(form.$('button').hasClass('btn-primary'));
       -> assert.doesNotHaveClass(form.$('button'), 'btn-primary');

2. Utilities
------------
The goal of the utilities is to centralize the definition of many
standard components and interactions, ensuring that when we
refactor the JS framework, we do not need to change all the tests.

Existing mock utilities (addMockEnvironment, intercept, path,
patchDate, unpatch and fieldsViewGet) are moved to
'testUtils.mock.*'.
Existing DOM utilities are moved to 'testUtils.dom.*'.
New dom utilities are created for opendDatePicker, click,
clickFirst and clickLast. Helper `click` verifies that there is
exactly 1 element visible in the DOM you click on, `clickFirst`
and `clickLast` verify that there are more than one element on the
DOM.
 ex: form.$('button').click();
     -> testUtils.dom.click(form.$('button'));

New Form utilities: (testUtils.form.*)
 clickEdit, clickSave, clickCreate, clickDiscard, all clicks on
 the control panel buttons of the form.
 `reload` reloads the form data.

New modal, graph, kanban and pivot utils (testUtils.pivot.*,
testUtils.kanban.*, etc.).

New fields utils: (testUtils.fields.*)
 * editInput, editSelect: allow to change the value of a field,
   using a selector to identify it. They validate that the input
   exists and trigger the change event automatically.
 * editAndTrigger: allow to modify a field and trigger specific
   events after the value change
 * many2one (testUtils.fields.many2one.*)
   clickOpenDropdown, clickHighlightedItem, clickItem,
   searchAndClickItem: use a field name instead of a selector and
   do all the complex mechanism to open, filter and highlight
   many2one fields.

Joint work with aab, dam, ged, mge, svs and vsc.
2018-11-19 11:24:28 +00:00
Laurent Smet 7053ae7828 [IMP] account: management of reconciliation rules
Bank statement lines need to be matched with entries; We have to automate this operation as much as possible.
At the same time, create an algorithm that fit everyone needs is quite impossible.
For that reason we will let users choose the rules they want with the improvement of reconciliation models.

Note that we did it only for bank statement reconliation, not for manual reconciliations.

Was task: 1877375
Was PR #26669
2018-09-20 17:11:52 +02:00
Christophe Simonis 9c77066f34 [MERGE] forward port branch saas-11.4 up to 6c103589c1 2018-09-14 16:00:17 +02:00
Christophe Matthieu dabe5bfbae [FIX] web: ajax must return a promise with abort method
Remove part in service_mixins who hide this error. Queries must be able
to be canceled for better performance. Also in the case of longpolling,
if the request is not canceled, wait for a server message or the maximum
time (30 sec) to add or delete channels.
2018-09-10 16:36:43 +02:00
Sébastien Theys 38cf16d304 [FIX] account: make section and note field widget stronger
The widget was made of duplicate code that was impossible to maintain.

Now we instantiate the correct widget directly.

PR: #26566
Task: 1869469
2018-08-28 09:54:12 +02:00
Laurent Smet b0a29c9bad [IMP] account, bank statement reconciliation widget: improve suggestions
Suggestions made to reconcile bank statement lines are now more accurate (based on communication and amount)
There's no automatic mode anymore (button + <CTRL+ENTER> shortcut removed)
Partners are set automatically when selecting a line in the widget (that will help the creation of a res.partner.bank for him, for a better partner detection next time)

Was task: 1847703
Was PR #25438
2018-08-17 17:35:39 +02:00
eco-odoo bbf405eaf8 [IMP] account: reconciliation widget: replace the pager with a load more button
Replace the pager and set default visible items to 15.
2018-08-13 12:58:33 +02:00
eco-odoo 89e358caa8 [FIX] onboarding: Fix/Update onboarding to v2.0
Specification
=============

- Fix lots of bug due to the BS4 migration
- Improve steps
- Validate some steps (Like the company configuration) in all the
  onboarding bars if done in one onboarding bar.
- Only animate the confetti one time if a step is done, instead of
  on each view loading

For more information, see: https://www.odoo.com/web#id=1869513&action=333&active_id=965&model=project.task&view_type=form&menu_id=4720
2018-08-10 16:08:47 +02:00
Laurent Smet e0bc158655 [FIX] account: fix missing 'amount_type' field on testing data
Since https://github.com/odoo/odoo/commit/10b9d06689c55e5273d2fdff560403cac59278be,
the reconciliation widget tests failed because the code is using the 'amount_type' field on
'account_tax'. However, this field is not specified on testing data.
2018-08-09 12:28:02 +02:00
Christophe Simonis 4797627259 [MERGE] forward port branch saas-11.4 up to 8d9366197e 2018-08-01 18:02:29 +02:00
Christophe Simonis 691dd65e0e [FIX] account: adapt new test to actual api
Oversight of previous forward-port
2018-08-01 16:29:57 +02:00
Christophe Simonis a9bb3249c6 [MERGE] forward port branch saas-11.2 up to 22b31152ca 2018-08-01 15:17:21 +02:00
Christophe Simonis 22b31152ca [MERGE] forward port branch 11.0 up to f9e0f6663f 2018-08-01 14:20:39 +02:00
Lucas Perais (lpe) 93e71d181e [FIX] account: reconciliation widget: Don't loose pager on adding last line
Have a statement line with multiple pages of propositions
Go to the last page
Add everything

Before this commit, after clicking on the last item of the list,
a write-off creation was displayed, without any means to come back to the other
propositions

After this commit, we display the page before
2018-07-31 09:18:31 +02:00
Lucas Perais (lpe) aa7bc410f0 [FIX] account: reconciliation widget: empty line should open write off
In manual reconciliation, have an accound with no direct proposal.
An empty line should be present

Click on it

Before this commit, there was a traceback

After this commit, a write-off creation appears
2018-07-31 09:18:31 +02:00
Lucas Perais (lpe) ebca7c3d37 [FIX] account: reconciliation widget: remove prop to attain balance
In manual reconciliation (but probably automatic too)

Have 3 lines for one account
2 of them are balanced
the third is of an amount X

Add the three lines to the reconciliation
A write-off proposal of -X should appear

Now, remove the third line by clicking on it
Click on Reconcile

Before this commit, the values sent to the server were wrong, as the write-off
was still included

After this commit, we make sure we don't send lines that are not displayed
2018-07-31 09:18:31 +02:00
qsm-odoo c59380bac5 [REF] *: BS4, rename btn-default to btn-secondary
BS4 "btn-default" class was replaced with "btn-secondary", which makes
more sense.
2018-07-27 12:36:54 +02:00
Christophe Simonis 49f634e472 [MERGE] forward port branch saas-11.4 up to 1f7a39964b 2018-07-19 16:36:03 +02:00
Christophe Simonis 37f40d516a [FIX] account: adapt new tests to new reconciliation widget API 2018-07-19 12:14:01 +02:00
qsm-odoo ca9aa5f286 [FIX] account: typo in reconciliation tests
A <button/> is always not a <hidden/>... and asserts were not testing
the correct behavior (checked with chm).
2018-07-19 10:32:12 +02:00
Christophe Simonis e5fab318d9 [MERGE] forward port branch saas-11.2 up to 02f38beffb 2018-07-18 17:59:23 +02:00
Christophe Simonis 02f38beffb [FIX] account: adapt new reconciliation tests 2018-07-18 17:00:00 +02:00
Christophe Simonis 8d1475ff57 [MERGE] forward port branch 11.0 up to 27c017ad98 2018-07-18 16:03:56 +02:00
Lucas Perais (lpe) 92fed4a51e [FIX] account: reconciliation widget: partial reconcile 2 inv 1 pay
Have two invoices
Make a bank statement with one line, which amount is:
Amount[Bank] < Amount[Inv1] + Amount[Inv2]
AND
Amount[Bank] > Amount[Inv1]

Click on on the reconcile button on the form view of the bank statement

On the reconciliation widget:
Click on the first invoice to fully reconcile it with the payment
Click on the second to partially reconcile it with the payment

Before this commit, there was no way to let the second invoice open
and partially reconciled.
The only possibility was to make a write-off

V10.0 allowed to to do such a flow

After this commit, this use case is dealt with again

OPW 1864689
closes #25721
2018-07-18 09:31:26 +02:00
qsm-odoo 2c966909e2 [FIX] *: fix some side-effects of https://github.com/odoo/odoo/commit/9de1bc0eef6f5bfaa2a8d745431caa361ae91548
- JS Modals were not correctly built anymore, their .modal-body element
  was duplicated and many without-effect JS lines were introduced (as a
  side effect, the form view design was broken when inside modals)

- Tests were changed to make bugs go unnoticed. For example, the media
  dialog functionnality was entirely broken because the .modal-dialog
  element was not receiving the correct class anymore.

- The JS translation function is _t, not _

- Do not use the <title/> tag as a regular DOM element, it is meant to
  be unique, in the <head/> section

- CSS rules were added to the utils.scss file, which is meant to contain
  functions and mixins, otherwise, the rule is duplicated in every asset

- Some icons were still broken, as missed by https://github.com/odoo/odoo/commit/f90cf060a3cfeb37a67bec83264c0aaab8892b56

- Tests were changed to use [role="dialog"]/footer/header in their
  selectors without any reason, this commit restores some of that to
  avoid rebase conflicts with the BS4 work.

- ...

Note: other elements should still be discussed, like the direct use of
the 'o_form_label' class in views definition... but those do not cause
direct problems.
2018-07-09 11:59:30 +02:00
Christophe Simonis 8a1dad3da4 [MERGE] forward port branch saas-11.4 up to 8db9865c2d 2018-07-05 20:11:59 +02:00
Christophe Simonis 2214bffefb [MERGE] forward port branch saas-11.2 up to 45329c0cf2 2018-07-05 18:53:17 +02:00
Christophe Simonis 45329c0cf2 [MERGE] forward port branch 11.0 up to 84210074e5 2018-07-05 17:21:01 +02:00