Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
 
  • How to check access and use superuser in OpenERP(Odoo)?

    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 1.85k
    Comment on it

    Step-1 Install sales module.

    Step-2 After that sales module.

    In below example, I have customized sales module. You can directly use the below sales module in your addons and run in Odoo server.

    
    from openerp.osv import fields, osv
    from openerp.tools.translate import _
    from openerp import SUPERUSER_ID
    from openerp import api
    
    
    class sup_brand(osv.osv):
    	_name = "supplier.brand"
    	_rec_name = "supplier_brand"
    	_columns = {
    				'supplier_brand':fields.char('Supplier Brand'),
    	}
    sup_brand()
    
    class sup_refrence(osv.osv):
    	_name = "supplier.refrence"
    	_rec_name = "item_list"
    	_columns = {
    				'item_list' : fields.char('Supplier reference'),
    	}
    sup_refrence()
    
    class colour_code(osv.osv):
    	_name = "colour.code"
    	_rec_name = "color_code"
    	_columns = {
    				'color_code':fields.char('Color Code'),
    	}
    colour_code()
    
    class colour_name(osv.osv):
    	_name = "colour.name"
    	_rec_name = "color_name"
    	_columns = {
    				'color_name':fields.char('Color Name'),
    	}
    colour_name()
    
    class product_template(osv.osv):
        _name = "product.template"
        _inherit = "product.template"
        _columns = {
                    'l_price': fields.float('Lower Price'),
    				'supp_ref' : fields.char('I Type'),
                    'project_price' : fields.float('Project Price'),
                    'distributor_pirce' : fields.float('Distributor price'),
                    'squ_meter':fields.float('Square Meter', digits=(8,3)),
                    'qty_warehous_onhand': fields.float('Qty Sqm in Warehouse', compute='_compute_qty_warehous_onhand', require = True),
                    'qty_available_onhand': fields.float('Qty Sqm Available', compute='_compute_qty_available_onhand', require = True),
                    'qty_avb':fields.related('qty_available', relation='product.product', string='Quantity on Hand'),
                    'qty_avl':fields.related('virtual_available', relation='product.product', string='Quantity on Hand'),
                    'opening_stock':fields.float('Opening Stock'),
                    'size':fields.char('Size'),
                    'unit_measure':fields.char('Unit Of Measure'),
                    'item_list' : fields.many2one('supplier.refrence','Supplier reference'),
                    'supplier_brand':fields.many2one('supplier.brand','Supplier Brand'),
    				'color_code':fields.many2one('colour.code','Color Code'),
                    'color_name':fields.many2one('colour.name','Color Name'),
                    }
                    
                  
        def button_dummy(self, cr, uid, ids, context=None):
            return True
                    
                    
        @api.depends('qty_avb','squ_meter')
        def _compute_qty_warehous_onhand(self):
            for record in self:
                print "sssssssss", record.qty_avb
                print "sssssssss", record.squ_meter
                print "sssssssss", record._compute_qty_warehous_onhand
                record.qty_warehous_onhand = record.qty_avb * record.squ_meter
        
                        
        @api.depends('qty_avl', 'squ_meter')
        def _compute_qty_available_onhand(self):
            for record in self:
                record.qty_available_onhand = record.qty_avl * record.squ_meter
    #            print "plsssssssssssssssss", record.qty_warehous_onhand       
    
    product_template()
    
    
    class product_product(osv.osv):
        _name = "product.product"
        _inherit = "product.product"
        
        def name_get(self, cr, user, ids, context=None):
            if context is None:
                context = {}
            if isinstance(ids, (int, long)):
                ids = [ids]
            if not len(ids):
                return []
    
            def _name_get(d):
                name = d.get('name','')
                code = context.get('display_default_code', True) and d.get('default_code',False) or False
                item_list = d.get('item_list', '')
                print item_list , 'the following is the supplier refrence code'
    #            if code:
    #                name = '[%s] %s' % (code,name)
    #            return (d['id'], name)
                if item_list:
                    name = '[%s] - [%s] %s' % (code,item_list,name)
                return (d['id'], name)
            partner_id = context.get('partner_id', False)
            if partner_id:
                partner_ids = [partner_id, self.pool['res.partner'].browse(cr, user, partner_id, context=context).commercial_partner_id.id]
            else:
                partner_ids = []
    
            # all user don't have access to seller and partner
            # check access and use superuser
            self.check_access_rights(cr, user, "read")
            self.check_access_rule(cr, user, ids, "read", context=context)
    
            result = []
            for product in self.browse(cr, SUPERUSER_ID, ids, context=context):
                variant = ", ".join([v.name for v in product.attribute_value_ids])
                name = variant and "%s (%s)" % (product.name, variant) or product.name
                sellers = []
                if partner_ids:
                    sellers = filter(lambda x: x.name.id in partner_ids, product.seller_ids)
                if sellers:
                    for s in sellers:
                        seller_variant = s.product_name and (
                            variant and "%s (%s)" % (s.product_name, variant) or s.product_name
                            ) or False
    
                        mydict = {
                                  'id': product.id,
                                  'name': seller_variant or name,
                                  'default_code': s.product_code or product.default_code,
                                  'item_list' : product.item_list,
                                  }
                        result.append(_name_get(mydict))
                else:
                    mydict = {
                              'id': product.id,
                              'name': name,
                              'default_code': product.default_code,
                              'item_list' : product.item_list,
                              }
                    result.append(_name_get(mydict))
            return result
            
    product_product()
    

     

 0 Comment(s)

Sign In
                           OR                           
                           OR                           
Register

Sign up using

                           OR                           
Forgot Password
Fill out the form below and instructions to reset your password will be emailed to you:
Reset Password
Fill out the form below and reset your password: