我在销售订单中创建了两个自定义字段,但这些字段未显示在发票表单中。我还添加了发票表单视图和列并更新了服务器,但是此值未显示在发票中。 如何在发票表单中显示这些值。这里是我的视图文件:如何从OpenERP获得发票中的销售订单字段值
<record id="view_invoice_line_form" model="ir.ui.view">
<field name="name">account.invoice.line.form</field>
<field name="model">account.invoice.line</field>
<field name="arch" type="xml">
<form string="Invoice Line" version="7.0">
<group>
<group>
<field name="product_id" on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
<label for="quantity"/>
<div>
<field name="quantity" class="oe_inline"/>
<field name="uos_id" class="oe_inline" groups="product.group_uom"
on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
</div>
<field name="purchase_order"/>
<field name="amt_total"/>
<field name="price_unit"/>
<field name="discount" groups="sale.group_discount_per_so_line"/>
</group>
<group>
<field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '<>', 'view')]" name="account_id" on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)" groups="account.group_account_user"/>
<field name="invoice_line_tax_id" context="{'type':parent.type}" domain="[('parent_id','=',False),('company_id', '=', parent.company_id)]" widget="many2many_tags"/>
<field domain="[('type','<>','view'), ('company_id', '=', parent.company_id)]" name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
</group>
</group>
<label for="name"/>
<field name="name"/>
</form>
</field>
</record>
和两个字段.py文件添加它们是:
'purchase_order':fields.many2one('purchase.order', 'Old Gold', ondelete="cascade"),
'amt_total':fields.related('purchase_order', 'amount_total', type='float', relation='purchase.order', string="Amount", readonly=True),
,我创建了功能
def _amount_all(self, cr, uid, ids, field_name, arg, context=None):
cur_obj = self.pool.get('res.currency')
res = {}
for order in self.browse(cr, uid, ids, context=context):
res[order.id] = {
'amount_untaxed': 0.0,
'amount_tax': 0.0,
'amount_total': 0.0,
'amt_total':0.0
}
val = val1 = 0.0
cur = order.pricelist_id.currency_id
for line in order.order_line:
val1 += line.price_subtotal
val += self._amount_line_tax(cr, uid, line, context=context)
res[order.id]['amount_tax'] = cur_obj.round(cr, uid, cur, val)
res[order.id]['amount_untaxed'] = cur_obj.round(cr, uid, cur, val1)
res[order.id]['amount_untaxed'] -= order.amt_total
res[order.id]['amount_total'] = res[order.id]['amount_untaxed'] + res[order.id]['amount_tax']
return res
在这里,我能减去amt_total
从total_amount
,但在发票中,我不能从total_amount
减去amt_total
。
当我在开票形式执行相同的操作它给了我一个错误:
ProgrammingError: column account_invoice_line.amt_total does not exist
LINE 1: ...ne."partner_id",account_invoice_line."product_id",account_in...
你可以请出示您的视图文件中的字段? –
Geez ...我觉得我在阅读这个问题时会跑掉我的屁股...... [Interpuntion,任何人?](http://en.wikipedia。org/wiki /标点符号) – Kraay89