diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 06e59232ac9..5a0e1411fe8 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -1801,7 +1801,7 @@ class res_partner(osv.osv): """ Inherits partner and adds invoice information in the partner form """ _inherit = 'res.partner' _columns = { - 'invoice_ids': fields.one2many('account.invoice.line', 'partner_id', 'Invoices', readonly=True), + 'invoice_ids': fields.one2many('account.invoice', 'partner_id', 'Invoices', readonly=True), } def _find_accounting_partner(self, partner): diff --git a/addons/account/partner.py b/addons/account/partner.py index f24ffcf55b4..d3777683f6f 100644 --- a/addons/account/partner.py +++ b/addons/account/partner.py @@ -162,6 +162,24 @@ class res_partner(osv.osv): def _debit_search(self, cr, uid, obj, name, args, context=None): return self._asset_difference_search(cr, uid, obj, name, 'payable', args, context=context) + def _invoices_stat_button(self, cr, uid, ids, field_name, arg, context=None): + res = {} + obj = self.pool.get('account.invoice') + for partner in self.browse(cr, uid, ids, context): + domain = [('id', 'in', map(int, partner.invoice_ids))] + group_obj = obj.read_group(cr, uid, domain, ['amount_total'], [''], context=context) + total = group_obj[0]['amount_total'] + res[partner.id] = """ +
%s invoices
+
Total: %s
+ """ % (len(partner.invoice_ids), total) + return res + + def _journal_items_stat_button(self, cr, uid, ids, field_name, arg, context=None): + html = "
%s Journal Items
" + return {partner.id: html % len(partner.journal_items_ids) for partner in self.browse(cr, uid, ids, context)} + res = {} + def has_something_to_reconcile(self, cr, uid, partner_id, context=None): ''' at least a debit, a credit and a line older than the last reconciliation date of the partner @@ -190,6 +208,9 @@ class res_partner(osv.osv): fnct_search=_credit_search, string='Total Receivable', multi='dc', help="Total amount this customer owes you."), 'debit': fields.function(_credit_debit_get, fnct_search=_debit_search, string='Total Payable', multi='dc', help="Total amount you have to pay to this supplier."), 'debit_limit': fields.float('Payable Limit'), + 'invoices_stat_button': fields.function(_invoices_stat_button, string="Invoices", type='html'), + 'journal_items_ids': fields.one2many('account.move.line', 'partner_id', 'Journal Items'), + 'journal_items_stat_button': fields.function(_journal_items_stat_button, string='Journal Items', type='html'), 'property_account_payable': fields.property( type='many2one', relation='account.account', diff --git a/addons/account/partner_view.xml b/addons/account/partner_view.xml index 6a58bc7f77e..448a093570f 100644 --- a/addons/account/partner_view.xml +++ b/addons/account/partner_view.xml @@ -64,10 +64,15 @@ -