# -*- coding: utf-8 -*- from openerp.http import request as r def get_account_invoice(): company_currency_rate = r.env.user.company_id.currency_id.rate query = ''' SELECT invoice.id, rate.currency_id, invoice.date_invoice, invoice.type, invoice.origin, invoice.partner_id, invoice.user_id, invoice.amount_total * (%s / (array_agg(rate.rate ORDER BY rate.id DESC))[1]) as invoice_rate, invoice.number, invoice.is_interest, customer.name, invoice.state, invoice.journal_id, invoice.company_id, journal.store_id FROM account_invoice AS invoice LEFT JOIN res_store_journal_rel AS journal ON journal.journal_id = invoice.journal_id LEFT JOIN res_currency_rate AS rate ON rate.currency_id = invoice.currency_id LEFT JOIN res_company AS company ON company.id = invoice.company_id LEFT JOIN res_partner AS customer ON customer.id = invoice.partner_id WHERE invoice.state NOT IN ('draft', 'cancel') AND invoice.type = 'out_invoice' --AND invoice.number='A0632' GROUP BY invoice.id, rate.currency_id, invoice.date_invoice, invoice.type, invoice.origin, invoice.amount_total, invoice.partner_id, invoice.user_id, invoice.amount_total, invoice.is_interest, customer.name, invoice.state, invoice.journal_id, invoice.company_id, journal.store_id ''' r.cr.execute(query,(tuple([company_currency_rate]))) return [ { 'invoice_id': j[0], 'currency_id': j[1], 'date': j[2], 'type': j[3], 'origin': j[4], 'customer_id':j[5], 'user_id':j[6], 'amount':j[7], 'number':j[8], 'is_interest':j[9], 'customer_name':j[10], 'state':j[11], 'journal_id':j[12], 'company_id':j[13], 'store_id':j[14], } for j in r.cr.fetchall() ]