This question has been flagged
7 Replies
3198 Views

Hi,


I am trying to deploy a custom module which relates certain fields from order to stock.picking.

I was about to use sale_id relation in stock_picking,and  I just realized that sale_id is not in stock_picking table.

I checked sale_stock installation, it seems to be properly installed but the field is not there.

Is there any known issue with sale_stock in Odoo v8?


Avatar
Discard
Best Answer

Hello E.M.,

You are right. There is a field given named "sale_id" in the module. If you go to stock_picking table in the database, you won't see sale_id field.

The reason is that, the field is a function (auto compute) field and is not stored (store=True/False) into the database picking table. That is why you can't use this field in database query but you can access the function field using browse, read method.

Hope this will help you.

Avatar
Discard
Author

It helps a lot. Now I understand. A side question (which is the one that originated this finding), can I reach a field in account_invoice from sales_order? I am trying to reach payment_method from stock_picking via this sale_id.

There is a m2m field called "invoice_ids" in Sale Order which contains all the Invoices related to the SO. https://github.com/odoo/odoo/blob/8.0/addons/sale/sale.py#L220

Author

Thanks. I tried to extend stock.picking class: @api.depends(''sale_id.invoice_ids','sale_id.invoice_ids.payment_method_id','sale_id.invoice_ids.payment_method_id.name') def _get_payment_terms(self): ... self.payment_method = self.sale_id.invoice_ids and self.sale_id.invoice_ids[0].payment_method_id and self.sale_id.invoice_ids[0].payment_method_id.name or False ... payment_method = fields.Char(compute='_get_payment_terms',string='Payment Method',readonly=True) But when loading the module it says fields = [model._fields[head]] KeyError: 'payment_method_id' Is there anything obvious I could be missing?

Would you please create a new question for this? It will be hard to answer in comment.

Author

You are right, I will do it right now.

Best Answer

Great job ;)

Avatar
Discard