如何在发票中自动添加固定税
How to add fixed tax automatically in invoice
我正在使用 odoo 9,我创建了一个自定义模块来自动在发票中添加印花税。我创建了一个新页面,用于在 res.company 中输入邮票价值和帐户。我的问题是印花税不会自动添加到发票中。有什么帮助吗??
account_invoice.py
from openerp import tools
from openerp.osv import fields,osv
class res_partner(osv.osv):
_name="res.company"
_inherit="res.company"
_columns={
"default_stamp_tax_account":fields.many2one('account.account',"stamp tax account"),
"default_stamp_tax_value":fields.float('stamp tax value'),
}
class account_invoice(osv.osv):
_name="account.invoice"
_inherit="account.invoice"
def create(self,cr,uid,values,context=None):
stamp_account=self.pool.get('res.company').browse(cr,uid,values.get('company_id')).default_stamp_tax_account.id
tax_value=self.pool.get('res.company').browse(cr,uid,values.get('company_id')).default_stamp_tax_value
#pos_account=self.pool.get('pos.order').browse(cr, uid, values.get('company_id')).partner_id.property_account_receivable.id
print stamp_account
print tax_value
#print pos_account
if stamp_account:
tax_line=[]
tax_line.append([0, False, {'base_amount': 0, 'amount': tax_value, 'tax_amount': tax_value, 'name': 'Timbre', 'account_id': stamp_account}])
values.update({
'tax_line':tax_line,
})
print values
return super(account_invoice,self).create(cr,uid,values,context)
您会在日志中找到类似于以下内容的一行:
WARNING odoo9-demo openerp.models: account.invoice.create() includes unknown fields: tax_line
这告诉您 tax_line
字段未在 account.invoice
模型中定义。
如果你没有在那个模型中定义它,不是根据上面提供的代码,你应该使用tax_line_ids
将税戳添加到发票上,并注意调用时添加的发票税:
super(account_invoice,self).create(cr,uid,values,context)
调用invoice.compute_taxes()
.
后create method调用super
后可以看到taxes
添加到发票中
因此您可以使用相同的逻辑 (compute_taxes) 添加您的税款。
- 编辑
打电话给super后给你加税。
我正在使用 odoo 9,我创建了一个自定义模块来自动在发票中添加印花税。我创建了一个新页面,用于在 res.company 中输入邮票价值和帐户。我的问题是印花税不会自动添加到发票中。有什么帮助吗??
account_invoice.py
from openerp import tools
from openerp.osv import fields,osv
class res_partner(osv.osv):
_name="res.company"
_inherit="res.company"
_columns={
"default_stamp_tax_account":fields.many2one('account.account',"stamp tax account"),
"default_stamp_tax_value":fields.float('stamp tax value'),
}
class account_invoice(osv.osv):
_name="account.invoice"
_inherit="account.invoice"
def create(self,cr,uid,values,context=None):
stamp_account=self.pool.get('res.company').browse(cr,uid,values.get('company_id')).default_stamp_tax_account.id
tax_value=self.pool.get('res.company').browse(cr,uid,values.get('company_id')).default_stamp_tax_value
#pos_account=self.pool.get('pos.order').browse(cr, uid, values.get('company_id')).partner_id.property_account_receivable.id
print stamp_account
print tax_value
#print pos_account
if stamp_account:
tax_line=[]
tax_line.append([0, False, {'base_amount': 0, 'amount': tax_value, 'tax_amount': tax_value, 'name': 'Timbre', 'account_id': stamp_account}])
values.update({
'tax_line':tax_line,
})
print values
return super(account_invoice,self).create(cr,uid,values,context)
您会在日志中找到类似于以下内容的一行:
WARNING odoo9-demo openerp.models: account.invoice.create() includes unknown fields: tax_line
这告诉您 tax_line
字段未在 account.invoice
模型中定义。
如果你没有在那个模型中定义它,不是根据上面提供的代码,你应该使用tax_line_ids
将税戳添加到发票上,并注意调用时添加的发票税:
super(account_invoice,self).create(cr,uid,values,context)
调用invoice.compute_taxes()
.
super
后可以看到taxes
添加到发票中
因此您可以使用相同的逻辑 (compute_taxes) 添加您的税款。
- 编辑
打电话给super后给你加税。