Как установить для журнала по умолчанию для счетов-фактур Odoo значение NULL в счетах?

Я хочу, чтобы клиент был вынужден выбрать журнал в представлении формы счета, а не предварительно выбрать первый.

Какой правильный способ заменить значение по умолчанию, в поле partner_id измените событие выбора журнала по умолчанию - тигр.

редактировать

Если я пытаюсь переопределить функцию onchange_partner_id, я получаю следующую ошибку:

File "/opt/PycharmProjects/gca_odoo/clientes/client_PRINCE/models.py", line 22, in onchange_partner_id
    self.journal_id = False
  File "/opt/PycharmProjects/gca_odoo/3party/server/openerp/fields.py", line 847, in __set__
    record.ensure_one()
  File "/opt/PycharmProjects/gca_odoo/3party/server/openerp/models.py", line 5306, in ensure_one
    raise except_orm("ValueError", "Expected singleton: %s" % self)
except_orm: ('ValueError', 'Expected singleton: account.invoice()')

Я использую следующий код:

class account_invoice(models.Model):
    _inherit = 'account.invoice'

    @api.multi
    def onchange_partner_id(self, type, partner_id, date_invoice=False,payment_term=False, partner_bank_id=False, company_id=False):
        ret = super(account_invoice,self).onchange_partner_id(type=type, partner_id= partner_id,
        date_invoice=date_invoice,payment_term=payment_term, partner_bank_id=partner_bank_id, company_id=company_id)
        self.journal_id = False
        return ret

2 ответа

Вы можете переопределить метод onchange, вызвать super, и после этого установить для поля jopurnal значение False, чтобы очистить его.

РЕДАКТИРОВАТЬ: вы используете мульти декоратор. Вы должны использовать один вместо этого.

Я хотел бы сделать что-то вроде следующего кода, я предполагаю, что вы переопределяете правильный метод:

@api.multi
def onchange_partner_id(self, type, partner_id, date_invoice=False, payment_term=False,
                        partner_bank_id=False, company_id=False):
    res = super(invoice, self).onchange_partner_id(
        type, partner_id, date_invoice,
        payment_term, partner_bank_id, company_id
    )
    if partner_id:
        res['value'].update({
            'journal_id': False,
        })
    return res
Другие вопросы по тегам