Browse Source

[FIX] get currencies

robert 6 years ago
parent
commit
cfe047fc2e
3 changed files with 29 additions and 10 deletions
  1. 4 7
      controllers/account_journal.py
  2. 8 3
      controllers/main.py
  3. 17 0
      controllers/res_currency.py

+ 4 - 7
controllers/account_journal.py

@@ -6,8 +6,7 @@ from res_bank_payment_type import get_bank_payment_types
 
 _MODEL = 'account.journal'
 
-'''
-'''
+
 def get_journals():
     domain = [
         ('type', 'in', ['bank', 'cash']),
@@ -32,8 +31,7 @@ def get_journals():
         } for journal in request.env[_MODEL].search(domain, order='id')
     ]
 
-'''
-'''
+
 def get_currencies_from_journals():
     domain = [
         ('type', 'in', ['bank', 'cash']),
@@ -58,8 +56,7 @@ def get_currencies_from_journals():
             
     return {c['id']:c for c in currencies}.values()
 
-'''
-'''
+
 def get_currency(journal_id):
     journal = request.env['account.journal'].browse(journal_id)
-    return journal.default_credit_account_id.currency_id.id or journal.default_credit_account_id.company_currency_id.id
+    return journal.default_credit_account_id.currency_id.id or journal.default_credit_account_id.company_currency_id.id

+ 8 - 3
controllers/main.py

@@ -40,6 +40,7 @@ class PosSales(http.Controller):
         from res_bank_payment_type import get_bank_payment_types
         from res_bank_cheque_type import get_cheque_types
         from res_store import get_stores
+        from res_currency import get_base_currency
         from sale_order import get_sale_orders
         from stock_picking import get_pickings
         from stock_warehouse import get_warehouses
@@ -55,6 +56,10 @@ class PosSales(http.Controller):
         data = {}
 
         warehouses = get_warehouses()
+        currencies = get_currencies_from_journals()
+
+        if len(currencies) == 0:
+            currencies = [get_base_currency()]
 
         # Take all data
         if mode == 'sale':
@@ -62,7 +67,7 @@ class PosSales(http.Controller):
                 'settings': config,
                 'date': get_datetime(),
                 'user': get_current_user(),
-                'currencies': get_currencies_from_journals(),
+                'currencies': currencies,
                 'journals': get_journals(),
                 'customers': get_customers(image_type),
                 'products': get_products(image_type, map(lambda x: x.get('locationStock').get('id'), warehouses)),
@@ -79,7 +84,7 @@ class PosSales(http.Controller):
                 'settings': config,
                 'date': get_datetime(),
                 'user': get_current_user(),
-                'currencies': get_currencies_from_journals(),
+                'currencies': currencies,
                 'customers': get_customers(image_type=image_type),
                 'products': get_products(image_type=image_type)
             }
@@ -88,7 +93,7 @@ class PosSales(http.Controller):
         if mode == 'payment':
             data = {
                 'saleOrders': get_sale_orders(),
-                'currencies': get_currencies_from_journals(),
+                'currencies': currencies,
                 'customers': get_customers(image_type=image_type),
                 'journals': get_journals(),
                 'paymentTerms': get_payment_terms(),

+ 17 - 0
controllers/res_currency.py

@@ -3,6 +3,7 @@ from openerp.http import request
 
 _MODEL = 'res.currency'
 
+
 def check_base_currency():
     base_currency = request.env[_MODEL].search([('base', '=', True)])
 
@@ -10,3 +11,19 @@ def check_base_currency():
         request.env.user.company_id.currency_id.write({
             'base': True
         })
+
+
+def get_base_currency():
+    currency = request.env.user.company_id.currency_id
+
+    return {
+        'id': currency.id,
+        'name': currency.display_name,
+        'base': currency.base,
+        'symbol': currency.symbol,
+        'position': currency.position,
+        'rateSilent': currency.rate_silent,
+        'decimalSeparator': currency.decimal_separator,
+        'decimalPlaces': currency.decimal_places,
+        'thousandsSeparator': currency.thousands_separator
+    }