[MIG] hr_expense_change_analytic: for Odoo 14.0

This commit is contained in:
Connor Christian
2020-11-11 15:35:07 -05:00
parent eab74444d7
commit 1c71fabdb6
4 changed files with 22 additions and 16 deletions

View File

@@ -141,12 +141,12 @@ class TestAccountEntry(test_expenses.TestExpenses):
self.assertEqual(expense_sheet.accounting_date, expense_sheet.account_move_id.date) self.assertEqual(expense_sheet.accounting_date, expense_sheet.account_move_id.date)
expense = expense_sheet.expense_line_ids[0] expense = expense_sheet.expense_line_ids[0]
self.expense = expense
ctx = {'active_model': 'hr.expense', 'active_ids': expense.ids} ctx = {'active_model': 'hr.expense', 'active_ids': expense.ids}
change = self.env['hr.expense.change'].sudo(flag=True).with_context(ctx).create({}) change = self.env['hr.expense.change'].sudo(flag=True).with_context(ctx).create({})
self.assertEqual(change.date, expense.date) self.assertEqual(change.date, expense.date)
change_date = '2018-01-01' change_date = '2017-01-31'
change.write({'date': change_date}) change.write({'date': change_date})
change.affect_change() change.affect_change()

View File

@@ -1,7 +1,7 @@
{ {
'name': 'HR Expense Change - Analytic', 'name': 'HR Expense Change - Analytic',
'author': 'Hibou Corp. <hello@hibou.io>', 'author': 'Hibou Corp. <hello@hibou.io>',
'version': '13.0.1.0.0', 'version': '14.0.1.0.0',
'category': 'Employees', 'category': 'Employees',
'sequence': 96, 'sequence': 96,
'summary': 'Change Analytic Account on Expense.', 'summary': 'Change Analytic Account on Expense.',

View File

@@ -1,8 +1,16 @@
from odoo.addons.hr_expense_change.tests.test_expense_change import TestAccountEntry from odoo.addons.hr_expense_change.tests import test_expense_change
from odoo.tests import tagged
from odoo import fields
class TestWizard(TestAccountEntry): @tagged('-at_install', 'post_install')
class TestWizard(test_expense_change.TestAccountEntry):
def test_expense_change_basic(self): def test_expense_change_basic(self):
super(TestWizard, self).test_expense_values()
# Tests Adding an Analytic Account
self.analytic_account = self.env['account.analytic.account'].create({ self.analytic_account = self.env['account.analytic.account'].create({
'name': 'test account', 'name': 'test account',
}) })
@@ -10,24 +18,19 @@ class TestWizard(TestAccountEntry):
'name': 'test account2', 'name': 'test account2',
}) })
self.expense.expense_line_ids.write({'analytic_account_id': False}) self.assertNotEqual(self.expense.analytic_account_id, self.analytic_account)
ctx = {'active_model': 'hr.expense', 'active_ids': self.expense.ids}
super(TestWizard, self).test_expense_change_basic() change = self.env['hr.expense.change'].sudo().with_context(ctx).create({})
# Tests Adding an Analytic Account
self.assertFalse(self.expense.expense_line_ids.analytic_account_id)
ctx = {'active_model': 'hr.expense', 'active_ids': self.expense.expense_line_ids.ids}
change = self.env['hr.expense.change'].with_context(ctx).create({})
change.analytic_account_id = self.analytic_account change.analytic_account_id = self.analytic_account
change.affect_change() change.affect_change()
self.assertEqual(self.expense.expense_line_ids.analytic_account_id, self.analytic_account) self.assertEqual(self.expense.analytic_account_id, self.analytic_account)
# Tests Changing # Tests Changing
change.analytic_account_id = self.analytic_account2 change.analytic_account_id = self.analytic_account2
change.affect_change() change.affect_change()
self.assertEqual(self.expense.expense_line_ids.analytic_account_id, self.analytic_account2) self.assertEqual(self.expense.analytic_account_id, self.analytic_account2)
# Tests Removing # Tests Removing
change.analytic_account_id = False change.analytic_account_id = False
change.affect_change() change.affect_change()
self.assertFalse(self.expense.expense_line_ids.analytic_account_id) self.assertFalse(self.expense.analytic_account_id)

View File

@@ -47,9 +47,12 @@ class ExpenseChangeWizard(models.TransientModel):
def _affect_analytic_change(self, old_analytic_id): def _affect_analytic_change(self, old_analytic_id):
expenses_to_affect = self._find_expenses_to_write_analytic(old_analytic_id) expenses_to_affect = self._find_expenses_to_write_analytic(old_analytic_id)
if expenses_to_affect: if expenses_to_affect:
prev_state = expenses_to_affect.state
expenses_to_affect.state = "draft"
expenses_to_affect.write({'analytic_account_id': self.analytic_account_id.id}) expenses_to_affect.write({'analytic_account_id': self.analytic_account_id.id})
lines_to_affect = self.expense_id.sheet_id.account_move_id \ lines_to_affect = self.expense_id.sheet_id.account_move_id \
.line_ids.filtered(lambda l: l.analytic_account_id.id == old_analytic_id and l.debit) .line_ids.filtered(lambda l: l.analytic_account_id.id == old_analytic_id and l.debit)
lines_to_affect.write({'analytic_account_id': self.analytic_account_id.id}) lines_to_affect.write({'analytic_account_id': self.analytic_account_id.id})
lines_to_affect.create_analytic_lines() lines_to_affect.create_analytic_lines()
expenses_to_affect.state = prev_state