Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 客户地址字段为空时如何禁止打印发票_Python 2.7_Odoo 9 - Fatal编程技术网

Python 2.7 客户地址字段为空时如何禁止打印发票

Python 2.7 客户地址字段为空时如何禁止打印发票,python-2.7,odoo-9,Python 2.7,Odoo 9,我使用的是odoo,我想禁止在客户地址为空时打印发票。有什么需要帮助的吗?如何验证此字段或任何其他字段是否为空 这是打印的功能。我试过这个代码,但什么都没有发生 def invoice_print(self,cr,uid,values): """ Print the invoice and mark it as sent, so that we can see more easily the next step of the workflow """

我使用的是odoo,我想禁止在客户地址为空时打印发票。有什么需要帮助的吗?如何验证此字段或任何其他字段是否为空 这是打印的功能。我试过这个代码,但什么都没有发生

      def invoice_print(self,cr,uid,values):
    """ Print the invoice and mark it as sent, so that we can see more
        easily the next step of the workflow
    """
    res_partner = self.pool.get('res.partner')
    adresse_partner = res_partner.browse(cr, uid, values.get('partner_id')).street
    code_tva_partner = res_partner.browse(cr, uid, values.get('partner_id')).CodeTVA
    if (code_tva_partner==False)or (adresse_partner==False) :
        raise UserError(_(
            "you cannot print invoice unless you enter partner adress and code TVA "))
    elif (code_tva_partner==True) and (adresse_partner==True):
      self.ensure_one()
      self.sent = True
    return self.env['report'].get_action(self, 'account.report_invoice')

在此函数中,self是您正在尝试的发票模型的记录
partner\u id
,这是此发票的客户记录。你所要做的就是在self.partner\u id.street上添加一个
if
条件,如果该字段为False,表示未设置,则返回一种警告。如果客户没有相关地址,这将阻止打印发票。

我开始使用Odoo11,但从未有机会使用版本9,因此字段名称可能不同。这真的有必要吗<代码>合作伙伴id在
self
中,这是
帐户的记录集。发票
已经是一个相关字段,您应该能够通过使用
操作符获得相关的合作伙伴,如
self.partner\u id
。或者至少Odoo11版本是这样工作的。