Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
1 Rispondi
9335 Visualizzazioni

When we create a sales order, a delivery order is created automatically which reference to the sales order line. However, when we create a delivery order, there is no option to reference it back to the sales order line. How can this be done manually?

Avatar
Abbandona

Hello, Did you manage to solve this issue? I have the same problem - in v7 I could refer to the SO Item, but in v8 this seems to be missing. Somehow I can't find a way to refer from stock.pack.operation to sale.order.line and I need that to generate proper delivery order report... In odoo-8.0/openerp/addons/sale/sale.py -> "def _prepare_order_line_procurement(self, cr, uid, order, line, group_id=False, context=None):" I see "'sale_line_id': line.id ", but there is no such field in the stock.pack.operation model. Why is that? I really don't understand why it worked in v7 and now the field is missing. Looking forward to your feedback! Regards, Pavel

Risposta migliore

Hello, 

After two about 20h struggle I could not find a nice way do to that.Still I have at least a temporary solution, that solves this problem.
I would really love to get feedback from you on this. Especially how to rewrite it, so that I don't use cr and manual trims. I know this is wrong, but I could get the result in other way.

Regards,
Pavel

class stock_pack_operation(osv.osv):
    _inherit = "stock.pack.operation"
    _columns = {
                'x_sale_line_id': fields.many2one('sale.order.line', 'Custom Field: Reference to the  sale.order.line', required=True)
                }   
    def create(self, cr, uid, vals, context=None):
        tmp = [vals['picking_id']]
        cr.execute('SELECT origin FROM stock_picking WHERE stock_picking.id = %s', tmp)
        origin = cr.fetchone()
        origin = origin[0] 
        origin = int(origin[2:])
        cr.execute('SELECT id FROM sale_order_line WHERE order_id = %s AND product_id=%s', (origin, vals['product_id']))                
        zsli = cr.fetchone()    
        zsli = zsli[0]    
        vals['x_sale_line_id'] = zsli 
        res_id = super(stock_pack_operation, self).create(cr, uid, vals, context=context)
        return res_id

Avatar
Abbandona
Post correlati Risposte Visualizzazioni Attività
1
set 16
6538
1
mar 15
9056
4
apr 20
10441
1
nov 24
1571
1
mag 23
5891