account_invoice.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # -*- coding: utf-8 -*-
  2. from openerp.http import request as r
  3. def get_account_invoice():
  4. user_store = r.env.user.store_id.id
  5. company_currency_rate = r.env.user.company_id.currency_id.rate
  6. query = '''
  7. SELECT
  8. invoice.id,
  9. rate.currency_id,
  10. invoice.date_invoice,
  11. invoice.type,
  12. invoice.origin,
  13. invoice.partner_id,
  14. invoice.user_id,
  15. invoice.amount_total * (%s / (array_agg(rate.rate ORDER BY rate.id DESC))[1]) as invoice_rate,
  16. invoice.number,
  17. invoice.is_interest,
  18. customer.name
  19. FROM account_invoice AS invoice
  20. LEFT JOIN res_store_journal_rel AS journal
  21. ON journal.journal_id = invoice.journal_id
  22. LEFT JOIN res_currency_rate AS rate
  23. ON rate.currency_id = invoice.currency_id
  24. LEFT JOIN res_company AS company
  25. ON company.id = invoice.company_id
  26. LEFT JOIN res_partner AS customer
  27. ON customer.id = invoice.partner_id
  28. WHERE invoice.state NOT IN ('draft', 'cancel')
  29. AND invoice.type = 'out_invoice'
  30. AND invoice.id = 8
  31. GROUP BY
  32. invoice.id,
  33. rate.currency_id,
  34. invoice.date_invoice,
  35. invoice.type,
  36. invoice.origin,
  37. invoice.amount_total,
  38. invoice.partner_id,
  39. invoice.user_id,
  40. invoice.amount_total,
  41. invoice.is_interest,
  42. customer.name
  43. '''
  44. r.cr.execute(query,(tuple([company_currency_rate])))
  45. return [
  46. {
  47. 'invoice_id': j[0],
  48. 'currency_id': j[1],
  49. 'date': j[2],
  50. 'type': j[3],
  51. 'origin': j[4],
  52. 'customer_id':j[5],
  53. 'user_id':j[6],
  54. 'amount':j[7],
  55. 'number':j[8],
  56. 'is_interest':j[9],
  57. 'customer_name':j[10],
  58. } for j in r.cr.fetchall()
  59. ]