Я создал функцию поля с этим объявлением:
'purchase_id': fields.function(_get_purchase_id, fnct_inv=_set_purchase_id, method=True, type="many2one", relation="purchase.order", string="Bon de commande"),
Проблема в том, что fnct_inv не запущен, а поле purchase_id остается пустым. Вот определение метода _set_purchase_id:
def _set_purchase_id(self, cr, uid, ids, field_name, field_value, arg, context):
query = """
SELECT picking_id, po.id FROM stock_picking p, stock_move m, purchase_order_line pol, purchase_order po
WHERE p.id in %s and p.id = m.picking_id and m.purchase_line_id = pol.id and pol.order_id = po.id
GROUP BY picking_id, po.id
"""
cr.execute(query, (tuple(ids), ))
picks = cr.fetchall()
_logger.info("============================================ %s " % ids)
for pick_id, po_id in picks:
self.write(cr, uid, [pick_id], {'purchase_id': [(4, po_id)]}, context=context)
Я кому-то могу помочь? Или есть другое решение? Спасибо