python - Odoo 通过 api 计算税费

标签 python odoo

如何通过 ERPPEEK 触发 odoo 中的税费计算。 我想在不计算税费的情况下触发税费计算。 erppeek有没有可能

我手动创建发票抬头和行,获取所有产品和税务详细信息,然后我需要触发器。

我的代码如下。

import erppeek
from datetime import datetime,date
api = erppeek.Client('http://127.0.0.1:8080','bitnami_openerp','**@gmail.com','******')
api.common.version()


#now create an invoice for the user
#Prepare data
#Get Currency
m_currency = api.model('res.currency')
r_currency = m_currency.read(['name=INR'],['id','name'])

#Get Company
m_company = api.model('res.company')
r_company = m_company.read(['name=Your Company'],['id','name'])

#Get Journal
m_journal = api.model('account.journal')
r_journal = m_journal.read(['name=Sales Journal'],['id','name'])

#Get Account
m_account = api.model('account.account')
r_account = m_account.read(['name=Sundry Debtors'],['id','name'])

#Get Partner
m_partner = api.model('res.partner')
r_partner = m_partner.read(['<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="77121a161e1b4a1d160e1619031f5915161016051237101a161e1b5914181a" rel="noreferrer noopener nofollow">[email protected]</a>'],['id','name'])


#Get Account
m_account = api.model('account.account')
r_account = m_account.read(['id=190'],['id','name'])

#Get Product
m_product = api.model('product.product')
r_product = m_product.read(['id=2'],['id','lst_price','name'])

#Get Tax
m_tax = api.model('account.tax')
r_tax = m_tax.read(['id=49'],['id'])

#Consolidate Invoice Header
data = {"partner_id":r_partner[0]["id"],
        "account_id":r_account[0]["id"],
        "journal_id":r_journal[0]["id"],
        "company_id":r_company[0]["id"],
        "currency_id":r_currency[0]["id"],
        "amount_untaxed":r_product[0]["lst_price"],
        "reference_type":"none",
        "amount_tax":"12.36",
        "type":"out_invoice",
        "date_invoice":date.today().strftime("%Y-%m-%d"),
        "amount_total":r_product[0]["lst_price"] + 12.36
         }

print data
#Create the invoice header
m_invoice = api.model('account.invoice')
invoice_id = m_invoice.create(data)

#Create Invoice Lines

#Consolidate Invoice Lines


product_id = r_product[0]["id"]
price_unit = r_product[0]["lst_price"]
quantity = "1"
ln_invoice_id = invoice_id.id
account_id = r_account[0]["id"]

print 'Tax is ',r_tax[0]["id"]

data_line = {"product_id":r_product[0]["id"],
             "price_unit":r_product[0]["lst_price"],
             "quantity":quantity,
             "invoice_id":invoice_id.id,
             "account_id":r_account[0]["id"],
             "company_id":r_company[0]["id"],
             "partner_id":r_partner[0]["id"],
             "uos_id":1,
             "name":r_product[0]["name"],
             "invoice_line_tax_id":[(6,0,[r_tax[0]["id"]])]
             }

m_invoice_line = api.model('account.invoice.line')
invoice_line_id = m_invoice_line.create(data_line)

print invoice_line_id.id

最佳答案

正如我所看到的,您已经将税收与发票行链接起来,这样应该可以处理它,但如果这不起作用,那么您可以触发方法 button_reset_taxes模型 account.invoice 的这将采用整个发票的税收计算。

可能的代码:

m_invoice = api.model('account.invoice')
m_invoice.button_reset_taxes(invoice_id)

或者类似的东西我可能会在 erppeek 语法上出错。但底线是在创建发票和发票行结束时调用 button_reset_taxes

最好的

关于python - Odoo 通过 api 计算税费,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31768708/

相关文章:

Python:如何沿新轴将多个数组堆叠在一起

arrays - 如何从 XML 文件在 Odoo 14 中添加数组

python - 仅选择两个类别之间具有其值的第一个字段

python-3.x - 字典中的产品不能重复odoo

python - 如何修复随机选择生成器?

Python 字典更新和细化循环

python - 如何将二进制文件转换为 Long 整数?

angular - 如何从与 Angular 4 集成的 odooRPC 响应中捕获错误代码

python - Odoo 字段访问权限/规则

python - 带有 OMP : can't import module, undefined symbol GOMP_* 的 f2py