This question has been flagged
1 Reply
3883 Views

When we create a sales invoice the salesperson on the customer doesn’t default to the salesperson on the invoice, it defaults to the user entering the invoice, is there any way to make this happen?

Avatar
Discard
Best Answer

1.) Currently when you create the invoice, system by default takes the current user ans salesmane in the invoice, so first of all remove that behaviour from the invoice.

'user_id': fields.many2one('res.users', 'Salesman', readonly=True, states={'draft':[('readonly',False)]}),
_defaults={'user_id':False}


2.) Now define an onchange_method for 'partner_id' field for fetching the salesperson from 'res.partner' model.

def onchange_partner_id(self,cr,uid,ids,partner_id,context=None):
    
    res={}
    obj_partner = self.pool.get('res.partner')
    if partner_id:
        br_partner = obj_partner.browse(cr,uid,partner_id,context=context)
        return {'value':{'user_id':br_partner.user_id.id}}
    return {'value':{}}

3.) Also if invoice is created from some other code (not from invoice screen), and you want forcefully the salesman to be related to the customer, then you need to override the create method of account.invoice model.

def create(self,cr,uid,vals,context=None):
    if vals:
        partner_id=vals.get('partner_id',False)
        if partner_id:
            obj_partner=self.pool.get('res.partner')
            br_partner = obj_partner.browse(cr,uid,partner_id,context=context)
            vals.update({'user_id':br_partner.user_id.id})

    return supser(<<your class name>>,self).create(cr,uid,vals,context=context)
                

Hope this helps !!

Avatar
Discard
Author

Appreciate your help thank you, please forgive me, where do I make these changes, I'm running on windows, do I make these changes in the application or do I have to change the .py files perhaps? Sorry I'm new to making coding changes.

You need to create a new module, where you will override the model 'account.invoice' and do these changes there. But I think as you are saying you are new to Odoo, so are you aware of overriding the models & fields? If not then you will need someone around you to tell you these things, because otherwise it will be difficult to solve your problem.

Author

Thanks again, do you know of any reference guides I might be able to follow to gain a better understanding?