Odoo Help

5 Answers
Dasadiya Chaitanya
10/22/16, 12:37 AM

The following way you can solve your issue.

1. Set custom field on sale.order and stock.pirking in py as well as view side.

2. Inherit the stock.move in your custom module and use the _prepare_picking_assign() over ridding method.

3. Using super and set your custom field value.

4. View that changes After confirming of Sale Order document.

For example :

from openerp import models, fields, api, _

class sale_order(models.Model):

    _inherit='sale.order' customer_field=fields.Char(string='Customer Field')

class stock_picking(models.Model):

    _inherit='stock.picking' customer_field=fields.Char(string='Customer Field')    

class stock_move(models.Model):


def _prepare_picking_assign(self,cr, uid, move, context=None):

    res=super(stock_move,self)._prepare_picking_assign(cr, uid, move, context) if move.procurement_id and move.procurement_id.sale_line_id and move.procurement_id.sale_line_id.order_id:

        sale_obj = move.procurement_id.sale_line_id.order_id if sale_obj.dif_pick_address:

            res.update({ 'customer_field':sale_obj.customer_field, }) return res

Above code is working fine in Odoo 8.0 version

Also, You should set in the view part so that you can check the sale order values come into stock picking after confirming your sale order.

I hope my answer may helpful for you :)

Source :


10/23/16, 10:05 PM

thanks dasadiya, i have try your code but its getting erorr like this line 11, in _prepare_picking_assign

if sale_obj.dif_pick_address:

ValueError: "'sale.order' object has no attribute 'dif_pick_address'" while evaluating


10/23/16, 10:15 PM

sorry dasadiya,, ignore my comment in above. i already succes with your code. but the value only appear in stock.picking but in stock move its still empty. Can you explain how that work? thanks before

Arunagiri K
10/21/16, 5:12 AM

Please write this code in your stock.picking 



 def update_sale_delivery(self):

         for record in self:

             for rec in record.sale_id:

                 if rec.cabang_id:


it will help you i hope 

10/21/16, 5:16 AM

dear arunagiri thanks before but i'am still use os.osv may you translate your code to osv os ? thanks before

Arunagiri K
10/21/16, 5:32 AM

use onchange method for 8

def onchange_field1(self, cr, uid, ids, field1, context=None):

vals = {}

if field1 > 0:

vals['field2'] = field1

return {'value': vals}

<field name="field1" on_change="onchange_field1(field1)"/>

Arunagiri K
10/21/16, 7:02 AM

if field:


Ask a Question
Keep Informed
3 follower(s)
About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now