from openerp import api, fields, models from datetime import datetime, date, time, timedelta class ResPartner(models.Model): _inherit = 'res.partner' @api.model def get_partners(self): domain = [('customer', '=', True), ('active', '=', True), ('credit', '>', 0)] partners = [] for customer in self.env['res.partner'].search(domain): categories = [] invoices = [] partner_invoice = [] for category in customer.category_id: categories.append({ 'id': category.id, 'name': category.name, 'display_name': category.display_name }) for invoice_ids in customer.invoice_ids: if invoice_ids.state == 'open': partner_invoice.append(invoice_ids.id) if customer.is_company == True: for child in customer.child_ids: for invoice_ids in child.invoice_ids: if invoice_ids.state == 'open': partner_invoice.append(invoice_ids.id) for invoice in self.env['account.invoice'].browse(partner_invoice): movelines = [] moves = [] currency_symbol = "" for move in invoice.move_id: for moveline in move.line_id: if moveline.amount_residual > 0 and moveline.state != "draft" and moveline.credit <= 0: movelines.append({ 'id': moveline.id, 'amount_residual': moveline.amount_residual, 'credit': moveline.credit, 'debit': moveline.debit, 'date_maturity': moveline.date_maturity, 'invoice': invoice.id }) for currency in invoice.currency_id: currency_symbol=currency.symbol if invoice.state == 'open': invoices.append({ 'id': invoice.id, 'number': invoice.number, 'date_invoice': invoice.date_invoice, 'amount_total': invoice.amount_total, 'residual': invoice.residual, 'moveLines': movelines, 'currency_symbol' : currency_symbol }) partners.append({ 'id': customer.id, 'name': customer.name, 'display_name': customer.display_name, 'ruc': customer.ruc, 'image_medium': customer.image_medium, 'phone': customer.phone, 'mobile': customer.mobile, 'email': customer.email, 'credit': customer.credit, 'credit_limit': customer.credit_limit, 'categories': categories, 'invoices': invoices, 'date_server': str(datetime.now().date()) }) return partners