Commit Graph
27 Commits
Author SHA1 Message Date
Christophe Simonis 76027a6e12 [MERGE] forward port branch saas-11.2 up to 6773bdbe32 2018-03-21 19:42:34 +01:00
qdp-odoo 2f4d343587 [FIX] account: fix and enhance multi-currency test on payment 2018-03-21 17:36:00 +01:00
Christophe Simonis b51f2d38c2 [MERGE] forward port branch saas-11.2 up to 500e3f4970 2018-03-21 11:04:48 +01:00
qdp-odoo 8bec4fa015 [FIX] account: reconcilation simplest case
The recent change (e130606602) broke the use case of an invoice/payment in the company currency without any secondary currency involved. Payment was recorded correctly but no full reconciliation was created (and it was not tested).

In order to fix that, we allow to test total_debit and total_credit also when currency has never been set (no secondary currency at all)
2018-03-16 17:23:02 +01:00
qdp-odoo e130606602 [FIX] account: multi-currencies fixes
Along with new tests, 2 things have been changed:

1) amount_currency field is not written anymore when matching an amount paid in company currency against some invoice(s) in secondary currency (see changes in test_reconciliation.py)
This was previously made to help computing the exchange rate difference entry, but we now instead completelly rely on the amount_currency field set on the partial reconciliation. Besides being wrong from a purely functional pont of view (we never received money in secondary currency so why should the ORM act as if it was the case), it was the root cause of the problem related test_partial_reconcile_currencies_02, in test_reconciliation.py.

2) when registering a payment directly from an invoice, containing both an exchange difference and a write-off to force the full reconciliation, we now correctly create the accounting entries.
A weird behavior spotted in #21888 was introduced by 2093546, to deal with impossibility to full reconcile an invoice due to rounding errors. Fortunately, this use case (test_payment_and_writeoff_in_other_currency_3, in test_payment.py) can now be solved in the right way thanks to changes introduced in the previous point.
2018-03-16 15:30:54 +01:00
Christophe Simonis 0f57bdba72 [MERGE] forward port branch saas-11.2 up to 42659dc70c 2018-03-09 16:25:58 +01:00
Hiral Bhavsar ed4cbf57dc [FIX] account: fix account.payment creation from dashboard
From 'Accounting Dashboard', creating a new payment was raising an error 'Record does not exist or has been deleted.'.
That's because since cdca5d4751 the default_get() was expecting to be called directly from the account.invoice model, using 'active_ids' to compute default values. Since it was incorrect, we now also check for the active_model to avoid raising this error.

Was PR #23548
Was task: 1824893
2018-03-09 13:50:15 +01:00
Christophe Simonis 4aa5ec3fa5 [MERGE] forward port branch 11.0 up to d67b410dfc 2018-03-07 18:46:38 +01:00
Christophe Simonis d67b410dfc [MERGE] forward port branch saas-15 up to cb87388d72 2018-03-07 17:42:02 +01:00
Christophe Simonis ac89023155 [MERGE] forward port branch 10.0 up to 5e6bb745e8 2018-03-06 12:28:30 +01:00
Christophe Simonis 2534bd19fb [MERGE] forward port branch 9.0 up to 6deed451ee 2018-03-05 18:50:51 +01:00
qdp-odoo 6deed451ee [FIX] account: fix the runbot after commit 0e881fcd3a
The previous commit forbids to change the currency of a company having accounting entries, but there are some created by demo data and some tests were trying to set a different currency (to set up a fix environment). So in order to allow that in tests, we do it via a SQL query directly
2018-03-05 17:39:10 +01:00
Christophe Simonis 36945a5853 [MERGE] forward port branch 11.0 up to c2e878e34c 2018-03-01 19:43:25 +01:00
Goffin Simon 0da5d63f52 [FIX] account: Register a partial payment as fully paid
Due to this commit: 3267e76520

Steps to reproduce the bug:

When registering a payment for a customer invoice in an other currency than
the company currency and marking it as fully paid, it raised an error:
"Wrong credit or debit value in accounting entry !".

Reason: counterpart_aml['debit'] and counterpart_aml['credit'] were both incremented
and it violated the constraint credit*debit=0

opw:815465
2018-02-22 11:52:52 +01:00
Christophe Monniez b356b19033 [IMP] tests: Add the possibility to tag tests
Purpose: When running tests, all the tests for the installed/updated
files are done. This commit adds a 'tagged' decorator that can be used to
tag tests. Combined with a new 'test-tags' CLI option, it adds the ability
to filter which tests are executed. For example, @tagged('slow') will
add a tag 'slow' to the test. The CLI option 'test-tags="slow"' will
only run tests tagged 'slow'.

One can use prefixes to select cases with tags.
'+' or no prefix means that the tests tagged with this tag are selected
for execution. '-' prefix will exclude the tests tagged with this tag.
Exclusion takes precedence over inclusion.

Also, by default, all Odoo tests cases are tagged 'standard' and with
the technical name of the module.
This means that when selecting tests with the 'test-tags'
parameter, if '-standard' is not specified, all tests tags are
going to be executed.
When tagging tests, one can remove such automatic tag by prefixing the
tag name with '-'. E.g. @tagged('-standard') will remove the standard
tag from the test.

Another example, if one wants to test the 'sale' module alone,
even without adding any 'tagged' decorator thos tests can be selected
like that: --test-tags="sale"

Tests are selected or deselected using a TagsSelector. When instanciated,
 a string is passed with comma separated tests selectors like
'+slow,-standard'. When the 'check' method is called  with a test as argument,
it returns True or False if the test has to be executed or not.
2018-01-18 13:20:37 +01:00
Laurent Smet 35a64532da [IMP] account: allow registering payments with multi payables/receivables accounts
Suppose registering a payment for several invoices for the same partner but each one
    having a different receivable account:
    The UserError 'entries are not of the same account' was raised, this commit removes it.

    -task: https://www.odoo.com/web#id=35202&view_type=form&model=project.task&action=333&active_id=967&menu_id=4720

    Was PR #18568
2017-10-11 15:09:38 +02:00
Laurent Smet 4ffb61db1d [IMP] account: allow to register payments for several partners, from invoices.
This patch allow to select several invoices/refunds or bills/bill refunds and launch the contextual action to register a payment for all of them.
Where, before, the system allowed that only if there was a single partner, it will now create and post a payment for each of them.

Was PR #https://github.com/odoo/odoo/pull/15228
Was task: 24014
2017-06-20 13:34:20 +02:00
qdp-odoo ee2c76a431 [IMP] account: define the m2m relation between bank statement lines and account.move.line instead of account.move
This is needed in order to support use cases where we have several account.move.line on an account_id of internal_type 'bank' inside a single account.move. Indeed, each journal item should be linked to a bank statement line in order to disappear from the bank reconciliation widget and, previously, setting the reference to the second bank statement line was removing the first as both info had to be filled in a single m2o. OPW: 696842
2016-12-20 14:43:03 +01:00
Denis Vermylen (dve) bc8d5dbf2c [REF] account: replace workflow by python code 2016-09-02 10:16:49 +02:00
Yannick Tivisse d6e1d41128 [MIG] account: Migrate remaining old API chuncks of code 2016-08-08 12:24:40 +02:00
qdp-odoo d8137d35b7 [FIX] [tldr] account: multi-currencies fixes.
[FIX] account: fixed behavior in order to create the exchange rate difference entry at the full reconciliation only.

 This is needed in order to support the use case where an invoice in foreign currency is paid on a bank account in company currency,
 with the user encoding manually the difference due to the currency fluctuation (writeoff in the bank statement reconciliation interface): before
 this patch, Odoo was doing automatically the same, what results in a duplicated currency difference booking). ticket ID: 670876.
 A test has also been added in account/tests/test_reconcilication.py (test_statement_euro_invoice_usd_transaction_euro_full) to ensure that use case
 is now fixed.

[FIX] account_full_reconcile: a reconciliation is full as soon as either total_debit = total_credit OR if total_amount_currency is 0
[FIX] account: when registering a payment with a writeoff, always create the writeoff line exactly as entered by the user. Before, it was modified
 by the exchange rate entry, for some reason...
[FIX] account: on invoices, show the payment widget and outstanding payments in the invoice's currency always
[FIX] account: when assigning a payment in company currency on an invoice in foreign currency, save the amount_currency in order to create the correct
 exchange rate.
[FIX] account: show the currency difference entry on the invoice payments widget
[FIX] account: fixed the reconciliation methods in order to work with exchange rate entries that have debit = credit = 0
[FIX] account: fixed reconciled field computation. A line is reconciled only if its amount_residual AND amount_residual_currency are 0
[IMP] display the move name of payments on the invoice payments widget
2016-03-23 09:57:59 +01:00
Yannick Tivisse dfbc51135c [REM] Remove res_partner_13, replace him by res_partner_2 2015-08-25 19:27:21 +02:00
qdp-odoo 6cb6f43c2b [REF] base: simplified res.partner.bank and res.bank objects for a greater usability + [IMP] account: bank journals are now the bank accounts of a company 2015-08-19 15:44:59 +02:00
Mahendra barad 75d7bbb46e [REF]Account: Refactoring the account, Change some fields name according to new api guidelines
code improvement

code improvement

payment_method to payment_method_id

writeoff_account to writeoff_account_id

property_account_receivable to property_account_receivable_id

property_account_payable to property_account_payable_id

property_account_expense_categ to property_account_expense_categ_id

property_account_income_categ to property_account_income_categ_id

property_account_expense to property_account_expense_id

property_account_income to property_account_income_id

property_account_expense_categ fix

sale_tax to sale_tax_id and default_sale_tax to default_sale_tax_id

purchase_tax to purchase_tax_id and default_purchase_tax to default_purchase_tax_id

ref_companies to ref_companies_ids

property_account_position to property_account_position_id

property_payment_term to property_payment_term_id

property_supplier_payment_term to property_supplier_payment_term_id

bank_accounts_id to bank_accounts_ids

payment_method fix after rebase

user_type after rebase

payment_method fix after rebase

after rebase

invoice to invoice_id

fix payment_method_id after rebase

code improvement

[IMP]user_type to user_type_id

[IMP]property_stock_account_input_categ, property_stock_account_output_categ to _id

[IMP]improve after rebase

[IMP]fix type

[IMP]Account: code improvement
2015-06-23 14:00:43 +02:00
Cedric Snauwaert 2c5739de93 [FIX] account: fix payment on multiple invoices 2015-06-22 13:32:37 +02:00
qdp-odoo b8759cc348 [REF] account, base: refactoring/improvements/fixes of bank accounts and payments 2015-05-22 17:35:54 +02:00
qdp-odoo c04065abd8 [IMP] accounting v9. Yeeeeaah 2015-05-05 17:28:04 +02:00