【问题标题】:Odoo 10 how to pass field data from sale.order to stock.pickingOdoo 10 如何将字段数据从 sale.order 传递到 stock.picking
【发布时间】:2024-01-23 23:14:01
【问题描述】:

我在销售订单的标题中有一个字段,需要将这些字段值传递给选股。 我们如何在 odoo 10 中做到这一点 各位大神能帮忙吗

【问题讨论】:

    标签: python odoo-10 erp


    【解决方案1】:

    对于这个问题,你可以创建一个新模块并在按钮中添加这个功能

    def action_create_pq(self, cr, uid, ids, context=None):
        i = 0
        seller_ids = []
        po_id = {}
        for sale in self.browse(cr, uid, ids, context=context):
            l_ids = self.pool.get('sale.order.line').search(cr, uid, [('order_id', '=', sale.id)])
            for line in self.pool.get('sale.order.line').browse(cr, uid, l_ids, context=context):
                if line.product_id.seller_ids.id: 
                    product = line.product_id.id  
                    qty = line.product_id.seller_ids.min_qty
                    price = line.product_id.seller_ids.price
                    partner_id = line.product_id.seller_ids.name.id
                    uom = line.product_uom.id
                    date_order = time.strftime('%Y-%m-%d')
    
                    if partner_id not in seller_ids:
                        seller_ids.extend([partner_id])
                        po_id[partner_id] = self.pool.get('purchase.order').create(cr, uid, { 
                                                                                  'origin': sale.name,
                                                                                  'date_order': date_order,
                                                                                  'partner_id': partner_id,
                                                                                  'pricelist': line.price_unit,
                                                                                  'state': 'draft',
                                                                                  'shipped': 0,
                                                                                  'invoice_method': 'order',
                                                                                  'invoiced': 0,  
                                                                                  'company_id': self.pool.get('res.company')._company_default_get(cr, uid, 'purchase.order', context=None),
                                                                                  })
    
    
                    po_line_id = self.pool.get('purchase.order.line').create(cr, uid, {
                                                                                        'order_id': po_id[partner_id],
                                                                                        'name': line.name,
                                                                                        'product_id': product,
                                                                                        'product_qty': qty,
                                                                                        'state': 'draft',
                                                                                        'invoiced': 0,
                                                                                        'partner_id': partner_id,
                                                                                        'date_order': date_order,
                                                                                        'product_uom': uom,
                                                                                        'price_unit': price,
                                                                                        'date_planned': date_order,
                                                                                        })
    
        return True;
    

    【讨论】:

    • 嗨,developper,我已经找到了解决方案。我们可以在 sale_order 的“_prepare_procurement_group(self):”方法中传递数据
    • 很高兴你找到了解决方案如果你想写出什么解决方案来造福他人
    • Odoo 使用以下函数将值从 sale_order 传递到 delivery_order:“_prepare_procurement_group”用于 Header 值(即 stock_picking)和“_prepare_order_line_procurement”用于行值(即 stock_move)
    最近更新 更多