代码之家  ›  专栏  ›  技术社区  ›  Dhouha

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

  •  0
  • Dhouha  · 技术社区  · 6 年前

    这是打印的功能。我试过这个代码,但什么都没有发生

          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')
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   arryph    6 年前

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