Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
5 ตอบกลับ
8110 มุมมอง

to pass the fields value of sale.order.line to account.invoice.line

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

there is function _prepare_invoice_line in sale.py. You can do inherit that function and pass your values.

อวตาร
ละทิ้ง
ผู้เขียน

i'm working with odoo8 , i can't find this method !

คำตอบที่ดีที่สุด

for those who have odoo 16, you can inherit from sale_order_line and override the function _prepare_invoice_line like this:

def _prepare_invoice_line(self, **optional_values):
return super(SaleOrderLine, self)._prepare_invoice_line(
your_field=self.your_field,
,
**optional_values
)

(don't forget to add your_field into your inherited model from  sale.order.line )

add your_field to the inherited model from account_move_line and use them in your views 

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

You want to pass the field's value of sale.order.line to account.invoice.line object. You need to override `_prepare_invoice_line` method of sale.order.line object.

Like this:

class SaleOrderLine(models.Model):
    _inherit = 'sale.order.line'

   
    def _prepare_invoice_line(self,**optional_values):
        res = super(SaleOrderLine, self)._prepare_invoice_line()
        res.update({'account_move_line_field_name': self.sale_order_line_fieldName, })
        return res

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

_prepare_invoice is the name of the method in Odoo 8 and can be used with _make_invoice to create the invoice from the order selected

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

You can override _prepare_order_line_invoice_line method of sale.order.line object which are in sale.py file.

อวตาร
ละทิ้ง
Related Posts ตอบกลับ มุมมอง กิจกรรม
2
ธ.ค. 22
22265
0
มิ.ย. 16
2967
0
ต.ค. 19
2993
2
พ.ค. 25
10498
0
ก.พ. 21
3978