Просмотр исходного кода

[ADD] date and salesman config

robert 6 лет назад
Родитель
Сommit
1c1a8bbf15
7 измененных файлов с 118 добавлено и 11 удалено
  1. 2 2
      controllers/main.py
  2. 4 4
      controllers/res_config.py
  3. 34 2
      controllers/res_users.py
  4. 6 1
      models/res_config.py
  5. 4 2
      src/store/index.js
  6. 66 0
      src/store/modules/users.js
  7. 2 0
      templates.xml

+ 2 - 2
controllers/main.py

@@ -32,7 +32,7 @@ class PosSales(http.Controller):
         from server_datetime import get_datetime
         from res_currency import check_base_currency
         from res_config import get_pos_config
-        from res_users import get_current_user
+        from res_users import get_users
         from account_journal import get_journals, get_currencies_from_journals
         from res_partner import get_customers
         from product_template import get_products
@@ -67,7 +67,7 @@ class PosSales(http.Controller):
             data = {
                 'settings': config,
                 'date': get_datetime(),
-                'user': get_current_user(),
+                'users': get_users(),
                 'currencies': currencies,
                 'journals': get_journals(),
                 'customers': get_customers(image_type),

+ 4 - 4
controllers/res_config.py

@@ -3,8 +3,7 @@ from openerp.http import request
 
 _MODEL = 'res.config.settings'
 
-'''
-'''
+
 def get_pos_config():
     config = request.env[_MODEL].search([], limit=1, order='id desc')
 
@@ -12,6 +11,8 @@ def get_pos_config():
         'imageType': config.image_type,
         'allowCurrencyExchange': config.allow_currency_exchange,
         'viewCurrencyExchanges': config.view_currency_exchanges,
+        'allowChangeUser': config.allow_change_user,
+        'allowChangeDate': config.allow_change_date,
         'currencies': [
             {
                 'id': currency.id,
@@ -26,8 +27,7 @@ def get_pos_config():
         ]
     }
 
-'''
-'''
+
 def save_pos_config(kw):
     values = {}
     

+ 34 - 2
controllers/res_users.py

@@ -1,8 +1,40 @@
 # -*- coding: utf-8 -*-
-from openerp.http import request
+from openerp.http import request as r
+
+
+def get_users():
+    domain = [('active', '=', True)]
+
+    current_user = r.env.user
+    manager_id = None
+
+    if 'Gerente' not in current_user.groups_id.filtered(lambda g: g.category_id.name == 'Eiru POS').mapped(lambda g: g.name):
+        domain += [('store_id', '=', current_user.store_id.id)]
+    else:
+        manager_id = current_user.id
+
+    return [
+        {
+            'id': u.id,
+            'name': u.display_name,
+            'company': {
+                'id': u.company_id.id,
+                'name': u.company_id.display_name,
+                'phone': u.company_id.phone or None,
+                'city': u.company_id.city or None,
+                'street': u.company_id.street or None,
+                'city': u.company_id.city or None,
+                'country': (u.company_id.country_id and u.company_id.country_id.name) or None,
+                'currencyId': u.company_id.currency_id.id or None
+            },
+            'isManager': u.id == manager_id,
+            'currentUser': u.id == current_user.id
+        } for u in r.env['res.users'].search(domain)
+    ]
+
 
 def get_current_user():
-    user = request.env.user
+    user = r.env.user
 
     return {
         'id': user.id,

+ 6 - 1
models/res_config.py

@@ -9,6 +9,8 @@ class ResConfig(models.TransientModel):
     image_type = fields.Selection(selection=[('small', 'Pequeña'), ('big', 'Grande')], default='small', string='Imagen', required=True)
     allow_currency_exchange = fields.Boolean(default=False, string='Permitir cambiar moneda')
     view_currency_exchanges = fields.Boolean(default=False, string='Permitir ver cambio de monedas')
+    allow_change_user = fields.Boolean(default=False, string='Permitir cambiar el usuario')
+    allow_change_date = fields.Boolean(default=False, string='Permitir cambiar la fecha')
     currency_ids = fields.Many2many('res.currency', string='Monedas')
 
     '''
@@ -20,16 +22,19 @@ class ResConfig(models.TransientModel):
         ir_config.set_param('eiru_pos.image_type', str(self.image_type))
         ir_config.set_param('eiru_pos.allow_currency_exchange', repr(self.allow_currency_exchange))
         ir_config.set_param('eiru_pos.view_currency_exchanges', repr(self.view_currency_exchanges))
+        ir_config.set_param('eiru_pos.allow_change_user', repr(self.allow_change_user))
+        ir_config.set_param('eiru_pos.allow_change_date', repr(self.allow_change_date))
         ir_config.set_param('eiru_pos.currency_ids', repr(self.currency_ids.mapped(lambda x: x.id)))
 
     @api.model
     def get_default_settings(self, fields):
         ir_config = self.env['ir.config_parameter']
-        res_currency = self.env['res.currency']
 
         return {
             'image_type': ir_config.get_param('eiru_pos.image_type', 'small'),
             'allow_currency_exchange': safe_eval(ir_config.get_param('eiru_pos.allow_currency_exchange', 'False')),
             'view_currency_exchanges': safe_eval(ir_config.get_param('eiru_pos.view_currency_exchanges', 'False')),
+            'allow_change_user': safe_eval(ir_config.get_param('eiru_pos.allow_change_user', 'False')),
+            'allow_change_date': safe_eval(ir_config.get_param('eiru_pos.allow_change_date', 'False')),
             'currency_ids': safe_eval(ir_config.get_param('eiru_pos.currency_ids', '[]'))
         }

+ 4 - 2
src/store/index.js

@@ -14,7 +14,8 @@ import dateModule from '@/store/modules/date'
 import journalModule from '@/store/modules/journal'
 import paymentModule from '@/store/modules/payment'
 import productModule from '@/store/modules/product'
-import userModule from '@/store/modules/user'
+// import userModule from '@/store/modules/user'
+import usersModule from '@/store/modules/users'
 import bankModule from '@/store/modules/bank'
 import bankPaymentTypeModule from '@/store/modules/bankPaymentType'
 import chequeTypeModule from './modules/chequeType'
@@ -38,7 +39,8 @@ const store = new Vuex.Store({
         journalModule,
         paymentModule,
         productModule,
-        userModule,
+        // userModule,
+        usersModule,
         bankModule,
         bankPaymentTypeModule,
         chequeTypeModule,

+ 66 - 0
src/store/modules/users.js

@@ -0,0 +1,66 @@
+const state = {
+    loadingUsers: false,
+    users: [],
+    selectedUser: null
+}
+
+const getters = {
+    loadingUsers(state) {
+        return state.loadingUsers
+    },
+    users(state) {
+        return state.users
+    },
+    selectedUser(state) {
+        return state.selectedUser
+    },
+    companyName(state) {
+        const currentUser = state.users.find(u => u.currentUser)
+        return currentUser && currentUser.company.name
+    },
+    isManager(state) {
+        const currentUser = state.users.find(u => u.isManager)
+        return currentUser && currentUser.company.name
+    }
+}
+
+const mutations = {
+    setLoadingUsers(state, loading) {
+        state.loading = !!loading
+    },
+    setUsers(state, users) {
+        state.users = users
+    },
+    setSelectedUser(state, userId) {
+        if (!userId) {
+            state.selectedUser = null
+        }
+
+        state.selectedUser = state.users.find(u => u.id === userId)
+    }
+}
+
+const actions = {
+    initUsers({ commit }, users) {
+        commit('setUsers', users)
+        commit('setLoadingUsers')
+    },
+    selectUser({ commit }, userId) {
+        commit('setSelectedUser', userId)
+    },
+    resetUsers({ commit }) {
+        commit('setUsers', [])
+        commit('setSelectedUser')
+        commit('setLoadingUsers')
+    },
+    resetUser({ commit }) {
+        // Ignore this
+    }
+}
+
+export default {
+    state,
+    getters,
+    actions,
+    mutations
+}

+ 2 - 0
templates.xml

@@ -61,6 +61,8 @@
                             </group>
                             <group>
                                 <field name="currency_ids" widget="many2many_tags" options="{'no_create_edit': True}" />
+                                <field name="allow_change_user" />
+                                <field name="allow_change_date" />
                             </group>
                         </group>
                     </div>