| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | # -*- coding: utf-8 -*-from openerp import models, fields, apiclass AccountInvoice(models.Model):	_inherit = 'account.invoice'	@api.model	def getAccountInvoiceQuoteAnalysis(self,idInvoice):		values = []		''' Account Invoice '''		invoice = self.env['account.invoice'].browse(idInvoice)		if (not invoice):			return False		''' Move line'''		moveLines = self.env['account.move.line'].search([('invoice','=',invoice.id),('debit','>',0)], order='date_maturity')		quotaCont = 0		for moveLine in moveLines:			quotaCont += 1			state = 'No pagado'			if(moveLine.reconcile_ref and moveLine.amount_residual == 0):				state = 'Pagado'			elif (moveLine.reconcile_ref and moveLine.amount_residual > 0):				state = 'Amortizado'			interest = self.env['account.interest.line'].browse(moveLine.interest_line_ids.id)			values.append({				'dateMaturity' : moveLine.date_maturity,				'quotaNumber' : "%s/%s" %(quotaCont, len(moveLines)),				'amountQuota' : moveLine.debit,				'amountResidual' : moveLine.amount_residual,				'expiredDays' : interest.expired_days if(interest) else 0,				'amountInterest' : interest.amount_interest if(interest and interest.state == 'open') else 0,				'amountTotal' : (moveLine.amount_residual + interest.amount_interest) if(interest and interest.state == 'open') else moveLine.amount_residual,				'state' : state,				'value': moveLine.debit - moveLine.amount_residual,			})		return values	@api.model	def getInvoiceAccountStatemnete(self, invoiceId):		return [{			'id': invoice.id,			'number': invoice.number,			'partner': {				'id' : invoice.partner_id.id,				'name' : invoice.partner_id.name,				'ruc' : invoice.partner_id.ruc or '',			},			'amountTotal': invoice.amount_total,			'amountResidual': invoice.residual,			'currency': {	            'thousandsSeparator': invoice.currency_id.thousands_separator,	            'decimalPlaces': invoice.currency_id.decimal_places,	            'decimalSeparator': invoice.currency_id.decimal_separator,	            'name': invoice.currency_id.local_name,	            'symbol ':invoice.currency_id.symbol,	        },			'company':{				'id': invoice.company_id.id,				'name': invoice.company_id.name,				'currencyCompany':{					'thousandsSeparator': invoice.company_id.currency_id.thousands_separator, 	            	'decimalPlaces': invoice.company_id.currency_id.decimal_places, 	            	'decimalSeparator': invoice.company_id.currency_id.decimal_separator, 	            	'name': invoice.company_id.currency_id.local_name, 	            	'symbol ':invoice.company_id.currency_id.symbol,				},				'logo': invoice.company_id.logo,			},		} for invoice in self.env['account.invoice'].browse(invoiceId)]class ResCurrrency(models.Model):	_inherit = 'res.currency'	@api.model	def getResCurrencyQuoteAnalysis(self,domain):		AccountInvoice = self.env['account.invoice'].search(domain)		ResCurrency = self.env['res.currency'].search([('id','=',AccountInvoice.currency_id.id)])		values = []		for currency in ResCurrency:			values.append({				'symbol': currency.symbol,				'decimal_separator': currency.decimal_separator,				'decimal_places': currency.decimal_places,				'thousands_separator': currency.thousands_separator,				'symbol_position': currency.symbol_position,			})		return values
 |