[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)
expense = expense_sheet.expense_line_ids[0]
self.expense = expense
ctx = {'active_model': 'hr.expense', 'active_ids': expense.ids}
change = self.env['hr.expense.change'].sudo(flag=True).with_context(ctx).create({})
self.assertEqual(change.date, expense.date)
change_date = '2018-01-01'
change_date = '2017-01-31'
change.write({'date': change_date})
change.affect_change()

View File

@@ -1,7 +1,7 @@
{
'name': 'HR Expense Change - Analytic',
'author': 'Hibou Corp. <hello@hibou.io>',
'version': '13.0.1.0.0',
'version': '14.0.1.0.0',
'category': 'Employees',
'sequence': 96,
'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):
super(TestWizard, self).test_expense_values()
# Tests Adding an Analytic Account
self.analytic_account = self.env['account.analytic.account'].create({
'name': 'test account',
})
@@ -10,24 +18,19 @@ class TestWizard(TestAccountEntry):
'name': 'test account2',
})
self.expense.expense_line_ids.write({'analytic_account_id': False})
super(TestWizard, self).test_expense_change_basic()
# 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({})
self.assertNotEqual(self.expense.analytic_account_id, self.analytic_account)
ctx = {'active_model': 'hr.expense', 'active_ids': self.expense.ids}
change = self.env['hr.expense.change'].sudo().with_context(ctx).create({})
change.analytic_account_id = self.analytic_account
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
change.analytic_account_id = self.analytic_account2
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
change.analytic_account_id = False
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):
expenses_to_affect = self._find_expenses_to_write_analytic(old_analytic_id)
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})
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)
lines_to_affect.write({'analytic_account_id': self.analytic_account_id.id})
lines_to_affect.create_analytic_lines()
expenses_to_affect.state = prev_state