account_journal.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. # -*- codign: utf-8 -*-
  2. from openerp.http import request
  3. from eiru_logging import make_info_log
  4. _MODEL='account.journal'
  5. def get_name_journal(id):
  6. journals = request.env[_MODEL].browse(id)
  7. if (not journals):
  8. return ''
  9. return journals.display_name
  10. def get_currencie_journal(journalId):
  11. journal = request.env[_MODEL].browse(journalId)
  12. if (not journal):
  13. return {}
  14. currency = journal.currency or journal.company_id.currency_id
  15. if (not currency):
  16. return {}
  17. return {
  18. 'id': currency.id,
  19. 'name': currency.display_name,
  20. 'base': currency.base,
  21. 'symbol': currency.symbol,
  22. 'position': currency.position,
  23. 'rateSilent': currency.rate_silent,
  24. 'decimalSeparator': currency.decimal_separator,
  25. 'decimalPlaces': currency.decimal_places,
  26. 'thousandsSeparator': currency.thousands_separator
  27. }
  28. def get_currencies_from_journal():
  29. make_info_log('GET currency the journal active in store')
  30. domain = [('type', 'in', ['bank', 'cash']),('active', '=', True)]
  31. currencies = []
  32. for j in request.env[_MODEL].search(domain):
  33. c = j.currency or j.company_id.currency_id
  34. currencies.append({
  35. 'id': c.id,
  36. 'name': c.display_name,
  37. 'base': c.base,
  38. 'symbol': c.symbol,
  39. 'position': c.position,
  40. 'rateSilent': c.rate_silent,
  41. 'decimalSeparator': c.decimal_separator,
  42. 'decimalPlaces': c.decimal_places,
  43. 'thousandsSeparator': c.thousands_separator
  44. })
  45. return {c['id']:c for c in currencies}.values()
  46. ''' all active journals '''
  47. def get_journals(type=None):
  48. make_info_log('GET Journal active in store')
  49. if ((not type[0]) or (not type)):
  50. type= ['bank', 'cash']
  51. user = request.env.user
  52. journal = []
  53. for store in user.store_ids:
  54. for journalID in store.journal_ids:
  55. if (journalID.type in ['bank', 'cash']):
  56. journal.append(journalID.id)
  57. # domain = [('type', 'in', type), ('default_debit_account_id.currency_id', '=', False), ('active', '=', True)]
  58. domain = [('type', 'in', type),('active', '=', True)]
  59. if (journal):
  60. domain.append(('id', 'in', journal ))
  61. return [{
  62. 'id': journal.id,
  63. 'name': journal.name,
  64. 'displayName': journal.display_name,
  65. 'code': journal.code,
  66. 'cashControl': journal.cash_control,
  67. 'type': journal.type,
  68. 'storeIds': map(lambda x: x.id, journal.store_ids),
  69. 'currency': {
  70. 'id': journal.currency.id,
  71. 'name': journal.currency.name,
  72. 'displayName': journal.currency.display_name
  73. },
  74. 'defaultDebitAccount': {
  75. 'id': journal.default_debit_account_id.id,
  76. 'name': journal.default_debit_account_id.name,
  77. 'displayName': journal.default_debit_account_id.display_name,
  78. 'code': journal.default_debit_account_id.code,
  79. 'exchange_rate': journal.default_credit_account_id.exchange_rate,
  80. 'foreignBalance': journal.default_credit_account_id.foreign_balance,
  81. 'reconcile': journal.default_credit_account_id.reconcile,
  82. 'debit': journal.default_credit_account_id.debit,
  83. 'credit': journal.default_credit_account_id.credit,
  84. 'currencyMode': journal.default_credit_account_id.currency_mode,
  85. 'companyCurrency': {
  86. 'id': journal.default_credit_account_id.company_currency_id.id,
  87. 'name': journal.default_credit_account_id.company_currency_id.name,
  88. 'displayName': journal.default_credit_account_id.company_currency_id.display_name,
  89. },
  90. 'currency': {
  91. 'id': journal.default_credit_account_id.currency_id.id,
  92. 'name': journal.default_credit_account_id.currency_id.name,
  93. 'displayName': journal.default_credit_account_id.currency_id.display_name
  94. }
  95. }
  96. } for journal in request.env[_MODEL].search(domain, order='id')]