Add number of mandates in partner form (similar to number of bank accounts)

This commit is contained in:
Alexis de Lattre
2016-05-10 23:47:01 +02:00
committed by Enric Tobella
parent 9f1347a517
commit e561b49fcd
5 changed files with 52 additions and 0 deletions

View File

@@ -24,6 +24,7 @@
'views/account_invoice_view.xml',
'views/account_payment_line.xml',
'views/res_partner_bank_view.xml',
'views/res_partner.xml',
'views/bank_payment_line_view.xml',
'views/account_move_line.xml',
'data/mandate_reference_sequence.xml',

View File

@@ -5,6 +5,7 @@ from . import account_payment_method
from . import account_payment_order
from . import account_invoice
from . import res_partner_bank
from . import res_partner
from . import account_payment_line
from . import bank_payment_line
from . import account_move_line

View File

@@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
# © 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api
class ResPartner(models.Model):
_inherit = 'res.partner'
mandate_count = fields.Integer(
compute='_compute_mandate_count', string="Number of Mandates",
readonly=True)
@api.multi
def _compute_mandate_count(self):
mandate_data = self.env['account.banking.mandate'].read_group(
[('partner_id', 'in', self.ids)], ['partner_id'], ['partner_id'])
mapped_data = dict([
(mandate['partner_id'][0], mandate['partner_id_count'])
for mandate in mandate_data])
for partner in self:
partner.mandate_count = mapped_data.get(partner.id, 0)

View File

@@ -81,6 +81,7 @@
<filter name="cancel" string="Cancelled" domain="[('state', '=', 'cancel')]" />
<filter name="expired" string="Expired" domain="[('state', '=', 'expired')]" />
<group string="Group By" name="groupby">
<filter name="state_groupby" string="State" context="{'group_by': 'state'}"/>
<filter name="signature_date_groupby" string="Signature Date" context="{'group_by': 'signature_date'}"/>
</group>
</search>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2016 Akretion (http://www.akretion.com)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="partner_view_buttons" model="ir.ui.view">
<field name="name">mandate.res.partner.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="account.partner_view_buttons"/>
<field name="arch" type="xml">
<xpath expr="//button[@name='%(base.action_res_partner_bank_account_form)d']" position="after">
<button type="action" class="btn-link"
name="%(account_banking_mandate.mandate_action)d"
context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}">
<field string="Mandate(s)" name="mandate_count" widget="statinfo"/>
</button>
</xpath>
</field>
</record>
</data>
</openerp>