Se rendre au contenu
Menu
Cette question a été signalée
1 Répondre
9329 Vues

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
Ignorer

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

Meilleure réponse

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
Ignorer
Publications associées Réponses Vues Activité
1
sept. 16
6534
1
mars 15
9047
4
avr. 20
10437
1
nov. 24
1566
1
mai 23
5887