【问题标题】:How to copy purchase order value to account.invoice in odoo11如何在odoo11中将采购订单值复制到account.invoice
【发布时间】:2021-05-03 08:54:21
【问题描述】:

我在采购订单中创建了一个自定义字段,并在 account.invoice 中创建了另一个同名的budget_id,当我创建采购订单并从此订单创建账单时,我想在采购中复制budget_id 的值order 到帐单中的 budget_id。

我已经覆盖了 purchase.order 中的智能按钮方法“action_view_invoice”并添加了我的代码,但没有任何反应。还有其他方法吗?

提前致谢!

我的代码 @api.multi def action_view_invoice(self):

        action = self.env.ref('account.action_invoice_tree2')
        result = action.read()[0]

        result['context'] = {'type': 'in_invoice', 'default_purchase_id': self.id}

        if not self.invoice_ids:
            # Choose a default account journal in the same currency in case a new invoice is created
            journal_domain = [
                ('type', '=', 'purchase'),
                ('company_id', '=', self.company_id.id),
                ('currency_id', '=', self.currency_id.id),
            ]
            default_journal_id = self.env['account.journal'].search(journal_domain, limit=1)
            if default_journal_id:
                result['context']['default_journal_id'] = default_journal_id.id
        else:
            # Use the same account journal than a previous invoice
            result['context']['default_journal_id'] = self.invoice_ids[0].journal_id.id

        # choose the view_mode accordingly
        if len(self.invoice_ids) != 1:
            result['domain'] = "[('id', 'in', " + str(self.invoice_ids.ids) + ")]"
        elif len(self.invoice_ids) == 1:
            res = self.env.ref('account.invoice_supplier_form', False)
            result['views'] = [(res and res.id or False, 'form')]
            result['res_id'] = self.invoice_ids.id
        result['context']['default_origin'] = self.name
        result['context']['default_reference'] = self.partner_ref
        result['context']['default_budget_id'] = self.budget_id.id # my code here

        return result

【问题讨论】:

    标签: python odoo odoo-11


    【解决方案1】:

    account.invoice 对象具有字段purchase_id,它是与purchase.order 的链接。 因此,在 account.invoice 中,您可以通过任何方式(如在供应商账单创建最佳方法中)将 purchase order budget_id 字段值放入 account.invoice @ 987654326@字段。

    代码链接-Purchase link In Invoice

    【讨论】:

    • 所以我必须将 purchase_id 添加到 account.invoice 因为它没有在我的插件模型中定义
    • 我其实不喜欢这个答案,因为这里的答案在哪里? account.invoice.purchase_id 什么时候设置?试一试,尝试在默认 Odoo 中找到一张供应商发票,并设置为 purchase_id。你不会找到一个,这就引出了一个问题,purchase_id 帮助别人的提示如何,谁会阅读这个答案?我实际上知道那个领域的背后是什么,也许提问者现在也知道了。但这不是制作 StackOverflow 的原因。请在您的回答中详细说明。谢谢。
    • 哦,如果我正确理解了提问的人(他/她的两个 cmets),那么您的回答对您可能希望的方式没有帮助:-O
    猜你喜欢
    • 2017-06-01
    • 2020-09-08
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多