[MIG] customer_outstanding_statement: Migration to 11.0
parent
6ab0038ae2
commit
60b26ca0dc
|
@ -1,5 +1,5 @@
|
|||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
|
||||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
|
||||
:target: https://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||
:alt: License: AGPL-3
|
||||
|
||||
====================================
|
||||
|
@ -19,21 +19,28 @@ Configuration
|
|||
Users willing to access to this report should have proper Accounting & Finance rights:
|
||||
|
||||
#. Go to *Settings / Users* and edit your user to add the corresponding access rights as follows.
|
||||
#. In *Application / Accounting & Finance*, select *Accountant* or *Adviser* options.
|
||||
#. In *Application / Accounting & Finance*, select *Billing* or *Billing Manager*
|
||||
#. In *Technical Setting* mark *Show Full Accounting Features* options.
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
To use this module, you need to:
|
||||
|
||||
#. Go to Customers and select one or more
|
||||
#. Go to Invoicing > Sales > Master Data > Customers and select one or more
|
||||
#. Press 'Action > Customer Outstanding Statement'
|
||||
#. Indicate if you want to display aging buckets
|
||||
|
||||
|
||||
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
|
||||
:alt: Try me on Runbot
|
||||
:target: https://runbot.odoo-community.org/runbot/91/10.0
|
||||
:target: https://runbot.odoo-community.org/runbot/91/11.0
|
||||
|
||||
Roadmap
|
||||
=======
|
||||
|
||||
Have an action that prints specific report for all partners that have due amounts,
|
||||
at a specific date.
|
||||
|
||||
Bug Tracker
|
||||
===========
|
||||
|
@ -49,7 +56,7 @@ Credits
|
|||
Images
|
||||
------
|
||||
|
||||
* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_.
|
||||
* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.png>`_.
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from . import report
|
||||
from . import wizard
|
||||
from . import tests
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# Copyright 2018 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
{
|
||||
'name': 'Customer Outstanding Statement',
|
||||
'version': '10.0.1.0.0',
|
||||
'version': '11.0.1.0.0',
|
||||
'category': 'Accounting & Finance',
|
||||
'summary': 'OCA Financial Reports',
|
||||
'author': "Eficent, Odoo Community Association (OCA)",
|
||||
'website': 'https://github.com/OCA/account-financial-reporting',
|
||||
'license': 'AGPL-3',
|
||||
'depends': [
|
||||
'account',
|
||||
'account_invoicing',
|
||||
],
|
||||
'data': [
|
||||
'views/statement.xml',
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from . import customer_outstanding_statement
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# Copyright 2018 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
|
@ -91,6 +90,7 @@ class CustomerOutstandingStatement(models.AbstractModel):
|
|||
partners = ', '.join([str(i) for i in partner_ids])
|
||||
date_end = datetime.strptime(
|
||||
date_end, DEFAULT_SERVER_DATE_FORMAT).date()
|
||||
# pylint: disable=E8103
|
||||
self.env.cr.execute("""WITH Q1 AS (%s), Q2 AS (%s), Q3 AS (%s)
|
||||
SELECT partner_id, currency_id, move_id, date, date_maturity, debit,
|
||||
credit, amount, open_amount, name, ref, blocked
|
||||
|
@ -142,6 +142,7 @@ class CustomerOutstandingStatement(models.AbstractModel):
|
|||
|
||||
def _show_buckets_sql_q2(self, today, minus_30, minus_60, minus_90,
|
||||
minus_120):
|
||||
# pylint: disable=E8103
|
||||
return """
|
||||
SELECT partner_id, currency_id, date_maturity, open_due,
|
||||
open_due_currency, move_id, company_id,
|
||||
|
@ -234,6 +235,7 @@ class CustomerOutstandingStatement(models.AbstractModel):
|
|||
partners = ', '.join([str(i) for i in partner_ids])
|
||||
date_end = datetime.strptime(
|
||||
date_end, DEFAULT_SERVER_DATE_FORMAT).date()
|
||||
# pylint: disable=E8103
|
||||
self.env.cr.execute("""WITH Q1 AS (%s), Q2 AS (%s),
|
||||
Q3 AS (%s), Q4 AS (%s)
|
||||
SELECT partner_id, currency_id, current, b_1_30, b_30_60, b_60_90,
|
||||
|
@ -257,7 +259,7 @@ class CustomerOutstandingStatement(models.AbstractModel):
|
|||
return res
|
||||
|
||||
@api.multi
|
||||
def render_html(self, docids, data):
|
||||
def get_report_values(self, docids, data):
|
||||
company_id = data['company_id']
|
||||
partner_ids = data['partner_ids']
|
||||
date_end = data['date_end']
|
||||
|
@ -305,7 +307,7 @@ class CustomerOutstandingStatement(models.AbstractModel):
|
|||
buckets_to_display[partner_id][currency] = []
|
||||
buckets_to_display[partner_id][currency] = line
|
||||
|
||||
docargs = {
|
||||
return {
|
||||
'doc_ids': partner_ids,
|
||||
'doc_model': 'res.partner',
|
||||
'docs': self.env['res.partner'].browse(partner_ids),
|
||||
|
@ -318,5 +320,3 @@ class CustomerOutstandingStatement(models.AbstractModel):
|
|||
'Date_end': date_end_display,
|
||||
'Date': today_display,
|
||||
}
|
||||
return self.env['report'].render(
|
||||
'customer_outstanding_statement.statement', values=docargs)
|
||||
|
|
|
@ -27,7 +27,8 @@ due, ...), so the customer can review how much is open, due or overdue.</div></p
|
|||
<p class="oe_mt32">To configure this module, you need to:
|
||||
<ul>
|
||||
<li>Go to <code>Settings / Users</code> and edit your user to add the corresponding access rights as follows.</li>
|
||||
<li>In <code>Application / Accounting & Finance</code>, select <code>Accountant</code> or <code>Adviser</code> options.</li>
|
||||
<li>In <code>Application / Accounting & Finance</code>, select <code>Billing</code> or <code>Billing Manager</code> options.</li>
|
||||
<li>In <code>Technical Setting</code> mark <code>Show Full Accounting Features</code> options.</li>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
|
@ -42,7 +43,7 @@ due, ...), so the customer can review how much is open, due or overdue.</div></p
|
|||
<div class="oe_span12">
|
||||
<p class="oe_mt32">To use this module, you need to:
|
||||
<ul>
|
||||
<li>Go to <code>Customers</code> and select one or more</li>
|
||||
<li>Go to <code>Invoicing > Sales > Master Data > Customers</code> and select one or more</li>
|
||||
<li>Press '<code>Action > Customer Outstanding Statement</code>'</li>
|
||||
<li>Indicate if you want to display aging buckets</li>
|
||||
</ul>
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from . import test_customer_outstanding_statement
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# Copyright 2018 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
|
@ -15,8 +14,8 @@ class TestCustomerOutstandingStatement(TransactionCase):
|
|||
|
||||
self.res_users_model = self.env['res.users']
|
||||
self.company = self.env.ref('base.main_company')
|
||||
self.partner1 = self.env.ref('base.res_partner_1')
|
||||
self.partner2 = self.env.ref('base.res_partner_2')
|
||||
self.partner1 = self.env.ref('base.res_partner_2')
|
||||
self.partner2 = self.env.ref('base.res_partner_3')
|
||||
self.g_account_user = self.env.ref('account.group_account_user')
|
||||
|
||||
self.user = self._create_user('user_1', [self.g_account_user],
|
||||
|
@ -51,7 +50,7 @@ class TestCustomerOutstandingStatement(TransactionCase):
|
|||
|
||||
self.assertDictContainsSubset(
|
||||
{
|
||||
'type': 'ir.actions.report.xml',
|
||||
'type': 'ir.actions.report',
|
||||
'report_name': self.report_name,
|
||||
'report_type': 'qweb-pdf',
|
||||
},
|
||||
|
@ -61,8 +60,9 @@ class TestCustomerOutstandingStatement(TransactionCase):
|
|||
|
||||
data = wiz_id._prepare_outstanding_statement()
|
||||
docids = data['partner_ids']
|
||||
report = self.statement_model.render_html(docids, data)
|
||||
self.assertIsInstance(report, str,
|
||||
report = self.statement_model.get_report_values(docids, data)
|
||||
self.assertIsInstance(report,
|
||||
dict,
|
||||
"There was an error while compiling the report.")
|
||||
self.assertIn("<!DOCTYPE html>", report,
|
||||
self.assertIn("Show_Buckets", report,
|
||||
"There was an error while compiling the report.")
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2018 Eficent Business and IT Consulting Services S.L.
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
<odoo>
|
||||
<template id="customer_outstanding_statement.statement_document">
|
||||
<t t-call="report.external_layout">
|
||||
<t t-call="web.external_layout">
|
||||
<div class="page">
|
||||
<div class="row">
|
||||
<div class="col-xs-5 col-xs-offset-7">
|
||||
|
@ -99,16 +101,16 @@
|
|||
</t>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border-right: 1px solid black;"></td>
|
||||
<td style="border-right: 1px solid black;"/>
|
||||
<td style="border-right: 1px solid black;">
|
||||
<span t-esc="Date_end[o.id]"/>
|
||||
</td>
|
||||
<td style="border-right: 1px solid black;"></td>
|
||||
<td style="border-right: 1px solid black;"/>
|
||||
<td style="border-right: 1px solid black;">
|
||||
Ending Balance
|
||||
</td>
|
||||
<td style="border-right: 1px solid black;"></td>
|
||||
<td style="border-right: 1px solid black;"></td>
|
||||
<td style="border-right: 1px solid black;"/>
|
||||
<td style="border-right: 1px solid black;"/>
|
||||
<td class="text-right" style="border-right: 1px solid black;">
|
||||
<span t-esc="Amount_Due[o.id][currency]" t-esc-options='{"widget": "monetary", "display_currency": "currency"}'/>
|
||||
</td>
|
||||
|
@ -184,7 +186,7 @@
|
|||
</template>
|
||||
|
||||
<template id="statement">
|
||||
<t t-call="report.html_container">
|
||||
<t t-call="web.html_container">
|
||||
<t t-foreach="docs" t-as="o">
|
||||
<t t-if="not (Filter_non_due_partners and (not Lines[o.id]) and (len(doc_ids) > 1))">
|
||||
<t t-call="customer_outstanding_statement.statement_document" t-lang="o.lang"/>
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from . import customer_outstanding_statement_wizard
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# Copyright 2018 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
|
@ -47,5 +46,7 @@ class CustomerOutstandingStatementWizard(models.TransientModel):
|
|||
def _export(self):
|
||||
"""Export to PDF."""
|
||||
data = self._prepare_outstanding_statement()
|
||||
return self.env['report'].with_context(landscape=True).get_action(
|
||||
self, 'customer_outstanding_statement.statement', data=data)
|
||||
return self.env.ref(
|
||||
'customer_outstanding_statement'
|
||||
'.action_print_customer_outstanding_statement').report_action(
|
||||
self, data=data)
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2018 Eficent Business and IT Consulting Services S.L.
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
<odoo>
|
||||
<!-- wizard action on res.partner -->
|
||||
<act_window id="customer_outstanding_statement_wizard_action"
|
||||
|
|
Loading…
Reference in New Issue