# -*- coding: utf-8 -*- from openerp import models, fields, api class AccountInvoice(models.Model): _inherit = 'account.invoice' @api.model def getAccountInvoicePagare(self,domain): AccountInvoice = self.env['account.invoice'].search(domain) values = [] for invoice in AccountInvoice: values.append({ # ID 'id': invoice.id, 'number': invoice.number, 'origin': invoice.origin, 'date_invoice': invoice.date_invoice, 'user_name': invoice.user_id.name, 'amount_untaxed': invoice.amount_untaxed, 'amount_tax': invoice.amount_untaxed, 'amount_total': invoice.amount_total, 'comment': invoice.comment, # PARTNER INFO 'partner_id':[{ 'id': invoice.partner_id.id, 'name': invoice.partner_id.name, 'ruc': invoice.partner_id.ruc, 'address': invoice.partner_id.street, 'city': invoice.partner_id.city, 'barrio': invoice.partner_id.street2, 'email': invoice.partner_id.email, 'estado_civil': invoice.partner_id.estado_civil, 'phone': invoice.partner_id.phone, 'mobile': invoice.partner_id.mobile, 'trab_empresa': invoice.partner_id.trab_empresa, 'trab_telefono': invoice.partner_id.trab_telefono, 'trab_street': invoice.partner_id.trab_street, 'trab_city': invoice.partner_id.trab_city, 'trab_cargo': invoice.partner_id.trab_cargo, 'trab_antiguedad_a': invoice.partner_id.trab_antiguedad_a, 'trab_antiguedad_m': invoice.partner_id.trab_antiguedad_m, 'casa_propia': invoice.partner_id.casa_propia, 'casa_alquiler': invoice.partner_id.casa_alquiler, 'trab_salario': invoice.partner_id.trab_salario, 'conyuge_id':[{ 'cony_id': invoice.partner_id.conyuge_id.id, 'cony_name': invoice.partner_id.conyuge_id.name, 'cony_ruc': invoice.partner_id.conyuge_id.ruc, 'cony_phone': invoice.partner_id.conyuge_id.phone, 'cony_mobile': invoice.partner_id.conyuge_id.mobile, 'cony_city': invoice.partner_id.conyuge_id.city, 'cony_street': invoice.partner_id.conyuge_id.street, 'cony_trab_empresa': invoice.partner_id.conyuge_id.trab_empresa, 'cony_trab_telefono': invoice.partner_id.conyuge_id.trab_telefono, }], 'ref_personal_ids': [{ 'id': refPartner.id, 'name': refPartner.name, 'phone': refPartner.phone, 'email': refPartner.email, } for refPartner in invoice.partner_id.ref_personal_ids], 'ref_comercial_ids': [{ 'id': comPartner.id, 'name': comPartner.name, 'phone': comPartner.phone, } for comPartner in invoice.partner_id.ref_comercial_ids], }], # COMPANY INFO 'company_id': [{ 'id':invoice.user_id.company_id.id, 'name': invoice.user_id.company_id.name, 'logo': invoice.user_id.company_id.logo, 'phone': invoice.user_id.company_id.phone, }], # CURRENCY INFO 'currency_id':[{ 'id': invoice.currency_id.id, 'name': invoice.currency_id.name, 'symbol': invoice.currency_id.symbol, 'thousands_separator': invoice.currency_id.thousands_separator, 'decimal_separator': invoice.currency_id.decimal_separator, 'decimal_places': invoice.currency_id.decimal_places, 'symbol_position': invoice.currency_id.symbol, }], }) return values @api.model def getAccountInvoicePagareQuota(self,domain): AccountInvoice = self.env['account.invoice'].search(domain) AccountMoveLine = self.env['account.move.line'].search([('move_id','=',AccountInvoice.number),('debit','>',0)],order='date_maturity') i = 1 x = len(AccountMoveLine) values = [] for line in AccountMoveLine: amount = 0 value = 0 state = 'No pagado' if(line.reconcile_ref != False): if(line.amount_residual == 0): state = 'Pagado' if(line.amount_residual > 0): value = line.debit - line.amount_residual state = 'Amortizado' values.append({ 'date': line.date_maturity, 'name': 'Cuota ' + str(i) + ' / ' + str(x), 'state': state, 'value': value, 'amount': line.debit, 'residual': line.amount_residual, 'tot_cuota': str(x), }) i = i + 1 return values class AccountInvoiceLine(models.Model): _inherit = 'account.invoice.line' @api.model def getAccountInvoiceLinePagare(self,domain): AccountInvoiceLine = self.env['account.invoice.line'].search(domain) values = [] for line in AccountInvoiceLine: values.append({ 'id': line.id, 'name': line.name, 'quantity': line.quantity, 'price_unit': line.price_unit, 'price_subtotal': line.price_subtotal, }) return values