ODOO 12: показать поле модели «purchase.order» в виде формы «account.invoice» - PullRequest
0 голосов
/ 19 сентября 2019

Я добавил поле комиссионных в модель заказа на покупку и хочу показать его в счете на счет, когда нажимаю «Создать счет».ниже мой код, но он не работает, я надеюсь, что кто-нибудь может мне помочь.Большое спасибо заранее.

class ConfirmComm(models.Model):
  _inherit = "purchase.order"
  commission = fields.Float(string='Commission', required='true', default=0)

      @api.multi
      def action_view_invoice(self, cr, uid, order, context=None):
        if context is None:
          context = {}
        journal_id = self.pool['account.invoice'].default_get(cr, uid, ['journal_id'], context=context)['journal_id']
        if not journal_id:
          raise UserError(_('Error!'),
                          _('Please define purchase journal for this company: "%s" (id:%d).') % (
                            order.company_id.name, order.company_id.id))
        invoice_vals = {
          'name': order.partner_ref or '',
          'origin': order.name,
          # 'type': 'in_invoice',
          # Sale order id as source_id
          # 'source_id': order.id,
          'reference': order.partner_ref or order.name,
          'account_id': order.partner_invoice_id.property_account_receivable.id,
          'partner_id': order.partner_invoice_id.id,
          'journal_id': journal_id,
          'commission': order.commission,
          # 'invoice_line': [(6, 0, lines)],
          'currency_id': order.pricelist_id.currency_id.id,
          # 'comment': order.note,
          'payment_term_id': order.payment_term_id or False,
          'fiscal_position_id': order.fiscal_position_id,
          'date_invoice': context.get('date_invoice', False),
          'company_id': order.company_id.id,
          'user_id': order.user_id and order.user_id.id or False,
        }
        _logger.info("KTR this is commissionTest $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ %d", order.commission)
        invoice_vals.update(self._inv_get(cr, uid, order, context=context))
        return invoice_vals

1 Ответ

0 голосов
/ 19 сентября 2019

Вам также необходимо добавить это поле в модель account.invoice, поскольку между purchase.order и account.invoice нет прямой связи для использования связанного поля или чего-то необычного.Чтобы увидеть это поле в виде формы счета-фактуры, вы также должны добавить его туда (как обычно).

Остальная часть кода должна быть в порядке, потому что установка значения с помощью purchase.order.action_view_invoice()быть следующей важной частью, но вы уже сделали это; -)

...