Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
2 Odpowiedzi
27098 Widoki

Hi,

probably a novice question but here it is.

I need to create a relation on each invoice line to its corresponding sale order line creating a new field on the invoice line form. (Just the same way that delivery out lines are related to sale orders lines). Is it possible to do this easily?.

Thanks in advance.

Regards.

Awatar
Odrzuć
Najlepsza odpowiedź

hello,

You already have this:

Look on the sale.order.line model.

image description

  • invoice_lines: list of invoice lines linked to this sale.order.line
  • invoiced : if this sale.order.line has been invoiced

You need the reversed one from account.invoice.line ? Add this to your account.invoice.line model (not tested but should works):

'sale_order_lines': fields.many2many('sale.order.line', 'sale_order_line_invoice_rel', 'invoice_id', 'order_line_id', 'Sale Order  Lines', readonly=True)
Awatar
Odrzuć
Autor Najlepsza odpowiedź

Hi Nicolas,

thank you very much for your kind response but this is not exactly what i needed.

I meant one to one relation for each object (invoice_line_id --> sale_order_line_id).

Regards.

EDITED:

This is what i did (works for me but it's not very neat):

On account_invoice.py (account)

Add column in account_invoice_line:

'sale_order_line_id': fields.many2one('sale.order.line', 'Sales Order Line', help='Sale Order Line'),

On sale.py (sale)

Add column on _prepare_order_line_invoice_line function:

‘sale_order_line_id’: line.id,

That's it.

Regards.

Awatar
Odrzuć

That's what Nicolas posted. sale_order_line_invoice_rel is what relate them. Of course it's not a 1:1 relation. It's a N:N relation.

Yes the rel between sale.order.line and account.invoice.line is not 1:1 by default, but you have the same behaviour as you need. If it works for you ok ,but I think it should be a many2many field as it is.

I change a typo error on my response.. if you look on the first record ou sale_order_lines (sale_order_lines[0]) you will find your record.

Autor

OK, thank you very much Nicolas.

No prob. Can you make your question as answered and check the good answer ?

Powiązane posty Odpowiedzi Widoki Czynność
3
kwi 15
8983
2
gru 18
6606
1
maj 16
4207
0
mar 15
3607
0
mar 15
4246