#odoo #odoo-14
Вопрос:
Все говорят, что ODOO-это ошибочное решение, я также согласен с тем, что его новая версия 14 действительно плохо закодирована.
Я сталкиваюсь с проблемой ниже.
через RPC для ODOO при попытке изменить налоговые значения каждой строки счета-фактуры он обновляется неправильно… сохраняйте записи в журнале, как это
__moves2 = move2.search_read(
[ ('partner_id.state_id.name', '=', 'Gujarat'), ('company_id', '=', 1),
('state', '=', 'posted'), ('payment_state', '=', 'not_paid'), ('move_type','=', 'out_invoice'),
('has_reconciled_entries', '!=', False), ("date", ">=", "2021-01-01"),("date", "<=", "2021-12-31")],
['name','state', 'move_type', 'journal_id', 'ref','has_reconciled_entries', 'date', 'invoice_date','amount_total'],
order="name asc",
)
for i in __moves2:
inv = move2.browse(i['id'])
flag = False
#print(inv.name, inv.partner_id.state_id.name, inv.id)
for l in inv.invoice_line_ids:
for t in l.tax_ids:
#print(t.name, t.id)
if inv.partner_id.state_id.name == 'Gujarat' and t.name == 'IGST 18%':
flag = True
break
if flag:
break
if flag:
print(inv.name, inv.partner_id.state_id.name, inv.id)
print('$$$$$ fix it')
inv.button_draft()
for l in inv.invoice_line_ids:
if l.tax_ids:
l.tax_ids = [74]
#l.recompute_tax_line = True
for l in inv.line_ids:
if l.tax_ids:
l.tax_ids = [74]
#l.recompute_tax_line = True
#l.write({'tax_ids':[(6, 0,[ 74 ])]})
#inv.onchange('invoice_line_ids','_onchange_invoice_line_ids')
#break
Теперь, после завершения RPC, он не изменяет правильное налоговое обновление и не удаляет старые строки.
Кажется, нужно сделать много кода !
Каким должно быть решение !