跳至內容
選單
此問題已被標幟
3 回覆
13844 瀏覽次數

I have add field in sales_order and stock_picking 'cabang_id' :many2one

and i want get value cabang from sales order to stock.picking (delivery order )when confirm sale. i have try with method action_button confirm but its doesnt work. anyone can help me how should i do with my code ? thanks before


i'm using odoo v8

頭像
捨棄
最佳答案

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):

    _inherit='stock.move'

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 :

http://stackoverflow.com/questions/39953729/add-shipping-address-field-in-stock-picking-in-odoo/39956194#39956194


頭像
捨棄
作者

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

u'action_ship_create()'

作者

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

最佳答案

i am use v14 than function nat call

頭像
捨棄
最佳答案

Please write this code in your stock.picking 

@api.multi

 @api.depends('sale_id')

 def update_sale_delivery(self):

         for record in self:

             for rec in record.sale_id:

                 if rec.cabang_id:

                        record.cabang_id=rec.cabang_id.id

it will help you i hope 

頭像
捨棄
作者

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

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)"/>

if field:

only

相關帖文 回覆 瀏覽次數 活動
0
1月 17
3272
2
2月 24
2947
3
12月 22
5244
0
9月 19
71
2
1月 24
14153