[FIX] account_budget: fix test in case a COA is installed but has no accounts of type revenue/Expense with tag operating activities
This commit is contained in:
@@ -10,164 +10,177 @@ class TestAccountBudgetCommon(AccountingTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestAccountBudgetCommon, self).setUp()
|
||||
# In order to check account budget module in Odoo I created a budget with few budget positions
|
||||
# Checking if the budgetary positions have accounts or not
|
||||
account_ids = self.env['account.account'].search([
|
||||
('user_type_id', '=', self.ref('account.data_account_type_revenue')),
|
||||
('tag_ids.name', 'in', ['Operating Activities'])
|
||||
]).ids
|
||||
if not account_ids:
|
||||
account_ids = self.env['account.account'].create({
|
||||
'name': 'Product Sales - (test)',
|
||||
'code': 'X2020',
|
||||
'user_type_id': self.ref('account.data_account_type_revenue'),
|
||||
'tag_ids': [(6, 0, [self.ref('account.account_tag_operating')])],
|
||||
}).ids
|
||||
self.account_budget_post_sales0 = self.env['account.budget.post'].create({
|
||||
'name': 'Sales',
|
||||
'account_ids': [(6, None, account_ids)],
|
||||
})
|
||||
|
||||
if account_ids:
|
||||
self.account_budget_post_sales0 = self.env['account.budget.post'].create({
|
||||
'name': 'Sales',
|
||||
'account_ids': [(6, None, account_ids)],
|
||||
})
|
||||
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_partners_camp_to_camp'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-01-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-01-31',
|
||||
'planned_amount': 500.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_partners_camp_to_camp'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-02-07',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-02-28',
|
||||
'planned_amount': 900.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_partners_camp_to_camp'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-03-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-03-15',
|
||||
'planned_amount': 300.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_our_super_product'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-03-16',
|
||||
'paid_date': str(time.localtime(time.time())[0] + 1) + '-12-03',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-03-31',
|
||||
'planned_amount': 375.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_our_super_product'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-05-01',
|
||||
'paid_date': str(time.localtime(time.time())[0] + 1) + '-12-03',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-05-31',
|
||||
'planned_amount': 375.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-07-16',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-07-31',
|
||||
'planned_amount': 20000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-02-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-02-28',
|
||||
'planned_amount': 20000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-09-16',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-09-30',
|
||||
'planned_amount': 10000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-10-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-12-31',
|
||||
'planned_amount': 10000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_partners_camp_to_camp'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-01-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-01-31',
|
||||
'planned_amount': 500.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_partners_camp_to_camp'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-02-07',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-02-28',
|
||||
'planned_amount': 900.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_partners_camp_to_camp'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-03-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-03-15',
|
||||
'planned_amount': 300.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_our_super_product'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-03-16',
|
||||
'paid_date': str(time.localtime(time.time())[0] + 1) + '-12-03',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-03-31',
|
||||
'planned_amount': 375.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_our_super_product'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-05-01',
|
||||
'paid_date': str(time.localtime(time.time())[0] + 1) + '-12-03',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-05-31',
|
||||
'planned_amount': 375.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-07-16',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-07-31',
|
||||
'planned_amount': 20000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-02-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-02-28',
|
||||
'planned_amount': 20000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-09-16',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-09-30',
|
||||
'planned_amount': 10000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_sales0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-10-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-12-31',
|
||||
'planned_amount': 10000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
|
||||
account_ids = self.env['account.account'].search([
|
||||
('user_type_id.name', '=', 'Expenses'),
|
||||
('tag_ids.name', 'in', ['Operating Activities'])
|
||||
]).ids
|
||||
|
||||
if account_ids:
|
||||
self.account_budget_post_purchase0 = self.env['account.budget.post'].create({
|
||||
'name': 'Purchases',
|
||||
'account_ids': [(6, None, account_ids)],
|
||||
})
|
||||
if not account_ids:
|
||||
account_ids = self.env['account.account'].create({
|
||||
'name': 'Expense - (test)',
|
||||
'code': 'X2120',
|
||||
'user_type_id': self.ref('account.data_account_type_expenses'),
|
||||
'tag_ids': [(6, 0, [self.ref('account.account_tag_operating')])],
|
||||
}).ids
|
||||
self.account_budget_post_purchase0 = self.env['account.budget.post'].create({
|
||||
'name': 'Purchases',
|
||||
'account_ids': [(6, None, account_ids)],
|
||||
})
|
||||
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_partners_camp_to_camp'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-01-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-01-31',
|
||||
'planned_amount': -500.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_partners_camp_to_camp'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-02-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-02-28',
|
||||
'planned_amount': -250.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_our_super_product'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-04-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-04-30',
|
||||
'planned_amount': -150.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-06-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-06-15',
|
||||
'planned_amount': -7500.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-06-16',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-06-30',
|
||||
'planned_amount': -5000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-07-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-07-15',
|
||||
'planned_amount': -2000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-08-16',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-08-31',
|
||||
'planned_amount': -3000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-09-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-09-15',
|
||||
'planned_amount': -1000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_partners_camp_to_camp'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-01-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-01-31',
|
||||
'planned_amount': -500.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_partners_camp_to_camp'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-02-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-02-28',
|
||||
'planned_amount': -250.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_our_super_product'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-04-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-04-30',
|
||||
'planned_amount': -150.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-06-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-06-15',
|
||||
'planned_amount': -7500.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-06-16',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-06-30',
|
||||
'planned_amount': -5000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-07-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-07-15',
|
||||
'planned_amount': -2000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-08-16',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-08-31',
|
||||
'planned_amount': -3000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetpessimistic0'),
|
||||
})
|
||||
self.env['crossovered.budget.lines'].create({
|
||||
'analytic_account_id': self.ref('analytic.analytic_seagate_p2'),
|
||||
'general_budget_id': self.account_budget_post_purchase0.id,
|
||||
'date_from': str(time.localtime(time.time())[0] + 1) + '-09-01',
|
||||
'date_to': str(time.localtime(time.time())[0] + 1) + '-09-15',
|
||||
'planned_amount': -1000.0,
|
||||
'crossovered_budget_id': self.ref('account_budget.crossovered_budget_budgetoptimistic0'),
|
||||
})
|
||||
|
||||
@@ -12,24 +12,6 @@ import datetime
|
||||
class TestAccountBudget(TestAccountBudgetCommon):
|
||||
|
||||
def test_account_budget(self):
|
||||
# In order to check account budget module in Odoo I created a budget with few budget positions
|
||||
# Checking if the budgetary positions have accounts or not
|
||||
if not self.account_budget_post_sales0.account_ids:
|
||||
a_sale = self.env['account.account'].create({
|
||||
'name': 'Product Sales - (test)',
|
||||
'code': 'X2020',
|
||||
'user_type_id': self.ref('account.data_account_type_revenue'),
|
||||
'tag_ids': [(6, 0, [self.ref('account.account_tag_operating')])],
|
||||
})
|
||||
self.account_budget_post_sales0.write({'account_ids': [(6, 0, [a_sale.id])]})
|
||||
if not self.account_budget_post_purchase0.account_ids:
|
||||
a_expense = self.env['account.account'].create({
|
||||
'name': 'Expense - (test)',
|
||||
'code': 'X2120',
|
||||
'user_type_id': self.ref('account.data_account_type_expenses'),
|
||||
'tag_ids': [(6, 0, [self.ref('account.account_tag_operating')])],
|
||||
})
|
||||
self.account_budget_post_purchase0.write({'account_ids': [(6, 0, [a_expense.id])]})
|
||||
|
||||
# Creating a crossovered.budget record
|
||||
budget = self.env['crossovered.budget'].create({
|
||||
|
||||
@@ -21,7 +21,7 @@ class TestTheoreticalAmount(TestAccountBudgetCommon):
|
||||
user_type_id = self.ref('account.data_account_type_revenue')
|
||||
tag_id = self.ref('account.account_tag_operating')
|
||||
account_rev = self.env['account.account'].create({
|
||||
'code': 'X2020',
|
||||
'code': 'Y2020',
|
||||
'name': 'Budget - Test Revenue Account',
|
||||
'user_type_id': user_type_id,
|
||||
'tag_ids': [(4, tag_id, 0)]
|
||||
|
||||
Reference in New Issue
Block a user