for _expense in self:
expense = _expense.with_company(_expense.company_id)
account = False
if expense.existing_bill_id:
payable_line = expense.existing_bill_id.line_ids.filtered(lambda l: l.account_type == 'liability_payable')
account = payable_line[:1].account_id
elif expense.has_existing_bill:
account = expense.vendor_id.commercial_partner_id.property_account_payable_id or expense.company_id.payable_account_id
elif expense.product_id:
account = expense.product_id.product_tmpl_id._get_product_accounts()['expense']
expense.account_id = account or expense.company_id.expense_account_id
|