[REV] account: default taxes on default sale/expense accounts

This reverts commit c539311. The default taxes will now be found in the invoice's onchange() which makes more sense and will work on all income/expense accounts without having to set the taxes on all these accounts.
This commit is contained in:
qdp-odoo
2018-09-14 17:29:49 +02:00
parent 1656dc5a01
commit 5fd19cc80e
2 changed files with 8 additions and 20 deletions
+7 -4
View File
@@ -1640,11 +1640,12 @@ class AccountInvoiceLine(models.Model):
self.price_unit = self.price_unit * currency.with_context(dict(self._context or {}, date=self.invoice_id.date_invoice)).rate
def _set_taxes(self):
""" Used in on_change to set taxes and price."""
""" Used in on_change to set taxes and price"""
self.ensure_one()
if self.invoice_id.type in ('out_invoice', 'out_refund'):
taxes = self.product_id.taxes_id or self.account_id.tax_ids
taxes = self.product_id.taxes_id or self.account_id.tax_ids or self.invoice_id.company_id.account_sale_tax_id
else:
taxes = self.product_id.supplier_taxes_id or self.account_id.tax_ids
taxes = self.product_id.supplier_taxes_id or self.account_id.tax_ids or self.invoice_id.company_id.account_purchase_tax_id
# Keep only taxes of the company
company_id = self.company_id or self.env.user.company_id
@@ -1734,10 +1735,12 @@ class AccountInvoiceLine(models.Model):
return
if not self.product_id:
fpos = self.invoice_id.fiscal_position_id
self.invoice_line_tax_ids = fpos.map_tax(self.account_id.tax_ids, partner=self.partner_id).ids
default_tax = self.invoice_id.type in ('out_invoice', 'out_refund') and self.invoice_id.company_id.account_sale_tax_id or self.invoice_id.company_id.account_purchase_tax_id
self.invoice_line_tax_ids = fpos.map_tax(self.account_id.tax_ids or default_tax, partner=self.partner_id).ids
elif not self.price_unit:
self._set_taxes()
@api.onchange('uom_id')
def _onchange_uom_id(self):
warning = {}
+1 -16
View File
@@ -242,24 +242,9 @@ class AccountChartTemplate(models.Model):
# Create the current year earning account if it wasn't present in the CoA
company.get_unaffected_earnings_account()
# set the default taxes on the company and on the sale/purchase properties
# set the default taxes on the company
company.account_sale_tax_id = self.env['account.tax'].search([('type_tax_use', 'in', ('sale', 'all')), ('company_id', '=', company.id)], limit=1).id
company.account_purchase_tax_id = self.env['account.tax'].search([('type_tax_use', 'in', ('purchase', 'all')), ('company_id', '=', company.id)], limit=1).id
todo_list = [
('property_account_expense_categ_id', 'account_purchase_tax_id'),
('property_account_expense_id', 'account_purchase_tax_id'),
('property_account_income_categ_id', 'account_sale_tax_id'),
('property_account_income_id', 'account_sale_tax_id'),
]
last_acc = False
for record in todo_list:
account_template = getattr(self, record[0])
if account_template and account_template.id != last_acc:
account_id = acc_template_ref[account_template.id]
self.env['account.account'].browse(account_id).write({
'tax_ids': [(4, getattr(company, record[1]).id)],
})
last_acc = account_id
return {}
@api.model