Odoo 11 社区 - 使用发票中销售订单字段的信息

Odoo 11 community - Use information from Sales Order field in invoice

我们在 odoo 11 中使用租赁模块。在创建销售订单时,我们有关于 order/quotation 和预估的任期信息。 但是当移动到 account.invoice 时,我无法显示信息,也无法在 QWeb 中从 account.invoice.document 引用它,因为发票和销售订单之间似乎没有联系。

我试图从 report_saleorder_document

复制的代码
<!-- Lines associated -->
 <t t-foreach="layout_category['lines']" t-as="l">
   <tr>
    <td><span t-field="l.name"/>
    <t t-if="l.rental_tenure != 0.0">
    <span t-field="l.rental_tenure"/>
    <span t-field="l.rental_uom_id"/>
    <span> for </span>
    <span t-field="l.price_unit" t-options="{'widget': 'monetary', 'display_currency': doc.pricelist_id.currency_id}"/>
    <span><strong> for rental</strong></span>
   </t>.......

in account.invoice_document 我想在下面的代码下添加上面的字段 rental_tenure 等:

    <tr t-foreach="o.invoice_line_ids" t-as="l">
     <td><span t-field="l.name"/></td>```

Any advice on how to achieve this just in Qwebs?

维萨瑟

Invoice Report 上调用 function,它将 link 转换为 Sale Order
XML:

<t t-set="sale_order" t-value="o.get_sale_order_data()"/>

PY:

@api.multi
def get_sale_order_data(self):
    for rec in self:
        orders = self.env['sale.order'].search([(
            'order_line.invoice_lines.invoice_id', '=', rec.id)], limit=1)
    return orders

在报告中,您可以从 'Sale.Order' 中获取任何 fileds。 例子: <span t-esc="sale_order.partner_id.name"/>

在 odoo 13 中你需要:

  • 继承自 account.move 以创建额外字段(如果它们尚不存在)

  • 覆盖方法_prepare_invoice

     def _prepare_invoice(self):
          values = super(SaleOrder, self)._prepare_invoice()
          values['field_name_in_account_move'] = self.field_source 
          return values