Я использую Odoo 13, я создал модель под названием my_module.invoice, после использования этой модели мне нужно зарегистрировать некоторые платежи, поэтому я создал другую модель под названием my_module.payment, они имеют отношение "один ко многим", и они работают нормально. После того, как платежи завершат соответствующий счет-фактуру, мне нужно взять значения счета-фактуры и платежей моего модуля и создать тот же сценарий в Odoo, используя account.move и account.payment. Мне удалось преобразовать my_module.invoice в account.move и my_module.payment в account.payment, но не могу связать их.
Это код для преобразования моей модели в Odoo:
# "record" is my_module.invoce model and "ni" is Odoo's account.move model
# Here I convert my invoice model into Odoo's model
new_invoice = record.env['account.move']
ni = new_invoice.create({
'partner_id': record.client,
'invoice_date': record.invoice_date,
'type': 'out_invoice',
'state': 'draft',
'invoice_line_ids': [(0, 0, {'product_id': record.product_id,
'account_id': record.account_id,
'name': record.product_name,
'quantity': 1,
'price_unit': record.total_to_pay
}
)],
})
Затем, если создается account.move, модуль создает account.payment:
# If ni (account.move) is true, it means the invoice has been created, so lets create the account.payment
if ni:
new_payment = self.env['account.payment']
np = new_payment.create({
'payment_type': 'inbound',
'has_invoices': True,
'payment_method_id': 1,
'partner_type': 'customer',
'partner_id': some_client,
'amount': my_module.payment.amount,
'payment_date': my_module.payment.create_date,
'journal_id': my_module.payment.journal_id.id,
'communication': ni,
})
np.post()
На данный момент все работает так, как ожидалось, но я не знаю, как назначить вновь созданную account.payment только что созданной account.move
Кто-нибудь прошел через этот сценарий или знает, как их связать?
Примечание. Причина, по которой я создаю разные модели для преобразования их в модели Odoo, заключается в том, что есть некоторая логика и условия перед использованием обычного потока в Odoo.