Commit Graph

1611 Commits

Author SHA1 Message Date
Lucas Perais (lpe) 0e1b8e5e81 [FIX] account: aged receivable partner balance
We need to ensure the account move lines we search for in case of partial reconciliation are within the period boundaries

Before this commit, when a partial reconciliation has been made long after others, the date used would have been this former move's
because of the MAX() function introduced by commit 3128e84243
Hence for one period, if that date were to be outside the period boundaries, the entire reconciliation would have been discarded, leaving the period due amount to 0, but a non-null total

This commit still uses the MAX() function, but specifies the aml date must be within the period boundaries

OPW 740793
OPW 725890

Closes #17098
2017-06-01 08:35:49 +02:00
Nicolas Martinelli 3128e84243 [FIX] account: aged receivable
- Create an invoice of 10000 at date 2016-11-30, due 2017-02-28
- Make a partial payment of 1500 at date 2016-11-09
- Make a partial payment of 1000 at date 2016-11-30
- Make a partial payment of 2000 at date 2017-01-30

At current date (e.g. 2017-04-04), run the Aged Partner Balance. 5500 is
still due, but set to the +120 days period instead of 30-60.

opw-725890
2017-04-05 11:50:03 +02:00
Goffin Simon a3ee4d1914 [FIX] account: Printing Account Tax
Steps to reproduce:

-open Accounting / Configuration / Taxes / Tax Codes
-open any Tax Code
-press Print / Account Tax

Bug: QWebException: "chart_tax_id" while evaluating
"get_lines(data['form']['based_on'], data['form']['company_id'], data['form']['chart_tax_id'])"

Closes: #8923

opw:697423
2016-12-21 10:05:12 +01:00
Nicolas Martinelli 6742d1fafe [FIX] account: wrong initial balance in GL
When the General Ledger is printed, the initial balance is zero if the
filtering is done by period.

It appears that in this case, the method `_query_get` selects all the
periods before the selected period range thanks to:
`build_ctx_periods(cr, uid, first_period, context['period_from'])`
On the other hand, `_query_get` builds the query as:
`date_start <= %(date_start)s AND id NOT IN %(period_ids)s`

That doesn't make sense since we first choose the periods before the
selected period range, then we exclude them. What the method
`_query_get` is doing seems wrong, but since this method is used in many
reports, it is safer to only fix the GL report directly.

Another solution could be
https://gist.github.com/nim-odoo/453176d9ae820615e69f9a809a3780cc

opw-681601
2016-07-26 18:12:14 +02:00
Kinner Vachhani deef119d72
[FIX] account: substitution in aged partner report
'foo %s bar' % 'alice' if False else 'bob' returns 'bob', not 'foo bob bar'

The previous strings returns '>=' when the direction is future while it should
be 'COALESCE(l.date_maturity,l.date) >= %s'

Fixes #10654
Closes #10695
2016-05-27 15:00:59 +02:00
Goffin Simon 47208550a2 [FIX] account: periods in general ledger report
When "Filter by Periods" is choosen in the wizard, the right periods
must be set in ctx to filter the account moves according to the right periods

opw:674593
2016-05-11 09:44:27 +02:00
Olivier Dony 2ae6481233 [FIX] account, crm, l10n_fr: avoid exceptions when processing parameters 2015-11-03 21:38:53 +01:00
Pedro M. Baeza 675d09c005 [FIX] fields_view_get super arguments
The context argument needs to be passed as positional argument to avoid issues
when surcharging fields_view_get

Closes #7933
2015-08-27 11:07:11 +02:00
Goffin Simon 2835381c7e [FIX] acount: aged partner balance
In the aged balance report, the reconcile entries are excluded
except if the reconciliation date is greater than the date for which the aged balance report is requested.
But this exception should never include opening entries.

opw:643172
2015-07-09 12:54:16 +02:00
Denis Ledoux 3aae56582a [FIX] account: general ledger & trial balance report from accounts list
When printing these reports from the accounts list
Accounting > Configuration > Accounts > Print menu > General Ledger
the ID of the wizard was considered as the ID of an account,
leading to obvious issues when this ID wasn't available
in the account_account table, or when the user
do not had the access rights to see the accounts with this
ID.

The override was completely useless: The wizard is
launched whether you print these reports from
Accounting > Reporting > Legal reports > Accounting Reports
or from the accounts list, and the super _get_account can
be called correctly for these two use cases.

opw-643589
2015-07-01 11:06:21 +02:00
vrenaville 529af0c95d [FIX] VAT Report: Fiscalyear and period selection
In the Account Tax Decalaration wizard,
Accounting > Reporting > Generic Reporting > Taxes > Taxes Report,
When not choosing the start/end period, but choosing
a fiscal year, the fiscal year was simply ignored,
the report took a fiscal year randomly.

In addition, if no fiscal year was chosen,
the fiscal year randomly chosen could even
not be a fiscal year of the right company,
in a multi-company environment.

closes #7219
opw-643194
2015-06-23 17:06:25 +02:00
Denis Ledoux 272e085df4 [MERGE] forward port of branch saas-3 up to da93981 2015-05-07 11:34:48 +02:00
Denis Ledoux da93981cb0 [MERGE] forward port of branch 7.0 up to f300d64 2015-05-07 11:33:59 +02:00
Denis Ledoux 8aa6aa0c78 [FIX] account: entries analysis with null values in debit/credit
In SQL, the addition/subtraction between NULL and an integer/numeric
returns NULL.

Therefore, if either debit or credit was set to null instead
of 0.0, debit-credit returned null, instead of the actual subtraction

opw-634044
2015-05-06 18:22:16 +02:00
Denis Ledoux 41f4b11ef4 [MERGE] forward port of branch saas-3 up to e552e09 2015-04-30 15:45:03 +02:00
Denis Ledoux 2c3c2b57db [MERGE] forward port of branch 7.0 up to f2f4391 2015-04-30 10:50:51 +02:00
Olivier Dony caf333eb59 [FIX] account.invoice.report: performance problem in currency rate computation
The SQL view implementing the "Invoice Analysis" report
JOINs the res.currency.rate table in order to obtain the
correct currency rate to convert each invoice line amount
in the same currency.

The matching of the rate needs to be done on the date
of that rate (`name` column) - the last rate preceding
the invoice date is presumed to be the right one.
However there is no simple way to make a direct JOIN between
account.invoice.line and res.currency.rate with a single
match, without using an ORDER BY clause and LIMIT 1.
This requires a costly SUBSELECT query for each invoice
line, quickly becoming prohibitive.

Through the use of PostgreSQL's Common Table Expressions
(CTE) it is possible to construct a temporary table
with the rates' start and end date of application.
This temporary table can then be used in a direct
JOIN with account.invoice.line, delivering much better
performance (no SUBSELECT needed for each invoice line)

On a database with 50k invoice lines this makes invoice
analysis return results in less than 800 ms instead of
10+ seconds.
2015-04-30 00:20:12 +02:00
Goffin Simon 3c055a769f [FIX] account: Taxes report
The Tax Report printed with details should not include draft accounting entries.
Technicaly, the account move lines include in a draft account move do not have to be
printed

opw:633642
2015-04-27 16:25:43 +02:00
Christophe Simonis 8ad11055bb [MERGE] forward port of branch saas-3 up to 12f600c 2015-04-01 19:13:25 +02:00
Christophe Simonis 12f600cec9 [MERGE] forward port of branch 7.0 up to 35077af 2015-04-01 19:07:59 +02:00
Denis Ledoux 433feb5a38 [FIX] account: partner ledger with currency.
In the partner ledger wizard, you can check
a boolean to display the amount within the
currency the amount has been invoiced.

This feature was simply no more working
in Odoo 8.0.

opw-630268
2015-04-01 15:36:40 +02:00
Goffin Simon 680e6889b1 [FIX] account: Partner Ledger wizard didn't consider all filters and type of entries:
The report generated by this wizard considered all the partners without taking into account
the filters and target entries set.
To show the right partner the function _set_context
must consider the "self.query" which sets the period, the dates, the states, the accounts and
the journals of the sql query used to give the demanded partner.

opw:631649
2015-04-01 08:53:55 +02:00
Denis Ledoux 31e10ec0a0 [FIX] account: multi-company partner ledger.
If a customer changed of company while having
account.move.line records in the former company he was in
It wasn't possible for someone else than the admin
to print the partner ledger report including this partner.

opw-631800
2015-03-31 11:04:40 +02:00
Christophe Simonis 33a8989d77 [MERGE] forward port of branch saas-3 up to d73eeab 2015-02-11 16:40:01 +01:00
Christophe Simonis d73eeab5ba [MERGE] forward port of branch 7.0 up to 9fe040e 2015-02-11 16:39:11 +01:00
Denis Ledoux 9fe040e592 [FIX] account: invoice analysis residual amount
When having an invoice with multiple lines having the same
product_id and account_id, the residual amount was wrong.

This is due to the fact the residual amount of each line
was computed on the residual amount of the invoice divided
by the number of lines of the invoice, and the fact the main
select of the sql view was grouped by product_id, account_id.

So, for an invoice defined as
Product Account Total
A       1       10
A       1       10
B       1       10

The invoice analysis, grouped by product, account, computed
Product Account Total   Residual
A       1       20      10
B       1       10      10

The residual amount '10' of the first line being
30 (the residual amount of the invoice)
divided by 3 (the number of lines in the invoice)

The residual amount of the invoice should actually be divided by
the number of lines in the invoice * the count
of occurences in the group by clause
So, in this case, (30 / 3) * 2 = 20

Replacing the big jointure by
SELECT count(*) FROM account_invoice_line l where invoice_id = ai.id
to get the number of lines in the invoice
is just an optimization for performances

opw-621672
2015-02-11 13:10:54 +01:00
Martin Trigaux 3c3f54549a [FIX] account: typo in 45485fe
My bad, blame the heat
2015-02-10 14:11:08 +05:30
Alexis de Lattre 45485fe1d6 [FIX] account: multicompany with currency rates
A record rule exists on currencies but not on rates.
If creates multiple currencies with rate = 1, we could fetch the wrong one in
the search and get a security exception while trying to convert rates.
Fixes #3323, opw 626353
2015-02-10 14:06:29 +05:30
Denis Ledoux c331e963cd [FIX] account: invoice analysis product quantity
This rev. is related to 6641c61ce6

During the above revision, a new jointure has been added
with product_uom, on product template uom_id
The join link was wrong, it was:
 - LEFT JOIN product_uom u2 ON u.id = pt.uom_id
and it must be:
 - LEFT JOIN product_uom u2 ON u2.id = pt.uom_id

 as the alias 'u' is the previous jointure, not this new one.

Besides, the uom_name is now the name
of the product uom of this second jointure
As the uom is now the product default uom
instead of the category reference uom

The groupby clause has been adapted, as the selection was slightly altered
Besides, grouping by u.uom_type, u.category_id was pointless
2015-02-04 20:28:48 +01:00
Goffin Simon 6641c61ce6 [FIX]report:wrong uom for "product_qty in invoices analysis
opw:626411
2015-02-03 08:52:42 +01:00
Denis Ledoux f043c41ac9 [FIX] account: report_vat with several periods
When fetching the VAT reports for several periods, only the last period was took into account
This is due to the fact that a browse record assignation no longer works in Odoo 8.0 API
at least not the same way.

code.sum_period = sum_tax_add just do nothing in Odoo 8.0.
Besides, using the variable "code" outside its loop is kinda crappy.
2015-01-29 16:26:58 +01:00
Denis Ledoux 0ec3c75c2d [FIX] account: default value for report_vat report
If the report was printed from the tax codes list
Accounting > Configuration > Taxes > Tax codes
There is no information concerning what should be displayed (periods, details, etc.)
as the user did not printed the report from the wizard
(from Accounting > Reporting > Generic Reporting > Taxes > Taxes report)
We therefore set default values, in order the report to not crash

Nevertheless, the user has obviously to go through the wizard
if he wants to set a configuration different than the default one
2015-01-23 14:13:13 +01:00
Denis Ledoux 8d9473553a [MERGE] forward port of branch saas-3 up to 36bf774 2014-12-17 14:08:23 +01:00
Denis Ledoux 36bf774d20 [MERGE] forward port of branch 7.0 up to 43cf6d5 2014-12-17 14:05:44 +01:00
Denis Ledoux 43cf6d51d2 [FIX] account: aged partner balance, advance partial payment
Partners totals were not correct if the partner paid partially an invoice in advance
For an invoice of 20.000 in the future, with a payment made in advance of 5000
The column not due must contains 20.000, as the amount is not yet due
One of the column 1-30, 30-60, ... (accordingly on when the payment was made). must contains -5000
The total should be 15.000
2014-12-17 13:57:34 +01:00
Denis Ledoux 4e617069a3 [MERGE] forward port of branch saas-3 up to 82109d9 2014-12-12 19:29:45 +01:00
Denis Ledoux 82109d9ba8 [MERGE] forward port of branch 7.0 up to 5aa128c 2014-12-12 19:29:16 +01:00
Denis Ledoux 5aa128c13a [FIX] account: accurate amount total due with partial reconcile
This is related to rev. db98434e85

rev. abe5c803a0 forgot some partial reconciliations when the date domain was other than BETWEEN (for instance, <= stop date or >= start date, alone, not between)
Besides, the rev. abe5c803a0 did not care about account move being posted or not.

rev. db98434e85 took several times the same partially reconciled moves lines
2014-12-12 19:28:19 +01:00
Paulius Sladkevičius 2e083e88d8 [FIX] account: open Monthly Turnover partner in graph mode
Tree view gives no information
Fixes #4195
2014-12-12 12:16:56 +01:00
Denis Ledoux a6212d2d20 [MERGE] forward port of branch saas-3 up to e11d1c2 2014-12-11 14:11:33 +01:00
Denis Ledoux e11d1c2b7a [MERGE] forward port of branch 7.0 up to db98434 2014-12-11 12:15:09 +01:00
Denis Ledoux db98434e85 [FIX] account_aged_partner_balance: accurate total
In some cases when the move was partially reconciled, the amount of the move wasn't added to the total
This is related to rev. abe5c803a0
2014-12-11 11:44:52 +01:00
celm1990 d039249dd2 [FIX] fix wrong filter in search view (account/sale)
the field section_id is created in addon sale, but used in the account
reporting views.  This commit moves the search view definition
in the correct file.
2014-11-06 14:15:19 +01:00
Christophe Simonis 8e637bac92 [MERGE] forward port of branch saas-3 up to 21b1203 2014-10-29 19:33:02 +01:00
Denis Ledoux a6024a6376 [MERGE] forward port of branch 7.0 up to 00ec786 2014-10-28 13:40:17 +01:00
Denis Ledoux 00ec786e48 [FIX] account: partner balance general totals
General totals were not computed at all, due to the condition "if not self.ids" which was always true as self.ids wasn't set.

Besides, a parameter allows to display only partner with balance greater than 0, which was completely ignored by the totals computation methods: The totals always included all partners, even those having balance equals to 0
2014-10-28 13:18:22 +01:00
Simon Lejeune 6bd36a8613 [FIX] account: tax report: translate account.tax.code according to context
As get_lines is called from the template, use a partial to embed the original context.
2014-10-23 15:43:52 +02:00
Christophe Simonis e883193246 [FIX] account: recordsets are not sortable in-place 2014-10-01 17:51:01 +02:00
Christophe Simonis 388f1a1d7e [MERGE] forward port of branch saas-3 up to 3d4b82c 2014-10-01 16:46:03 +02:00
Denis Ledoux b235c9d1fb [MERGE] forward port of branch 7.0 up to 419c439 2014-09-30 15:46:11 +02:00