From a6da31054808422b72fc8a070e28a2bdd3ce561c Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Wed, 16 May 2018 10:08:45 -0700 Subject: [PATCH] Initial commit of `hr_expense_lead` for 11.0 --- hr_expense_lead/__init__.py | 1 + hr_expense_lead/__manifest__.py | 21 +++++++++++++++++++ hr_expense_lead/models/__init__.py | 2 ++ hr_expense_lead/models/crm_lead.py | 14 +++++++++++++ hr_expense_lead/models/hr_expense_lead.py | 7 +++++++ hr_expense_lead/tests/__init__.py | 1 + hr_expense_lead/tests/test_expenses.py | 16 +++++++++++++++ hr_expense_lead/views/crm_views.xml | 18 ++++++++++++++++ hr_expense_lead/views/hr_expense_views.xml | 24 ++++++++++++++++++++++ 9 files changed, 104 insertions(+) create mode 100644 hr_expense_lead/__init__.py create mode 100644 hr_expense_lead/__manifest__.py create mode 100644 hr_expense_lead/models/__init__.py create mode 100644 hr_expense_lead/models/crm_lead.py create mode 100644 hr_expense_lead/models/hr_expense_lead.py create mode 100644 hr_expense_lead/tests/__init__.py create mode 100644 hr_expense_lead/tests/test_expenses.py create mode 100644 hr_expense_lead/views/crm_views.xml create mode 100644 hr_expense_lead/views/hr_expense_views.xml diff --git a/hr_expense_lead/__init__.py b/hr_expense_lead/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/hr_expense_lead/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/hr_expense_lead/__manifest__.py b/hr_expense_lead/__manifest__.py new file mode 100644 index 00000000..8dd9de9f --- /dev/null +++ b/hr_expense_lead/__manifest__.py @@ -0,0 +1,21 @@ +{ + 'name': 'HR Expense Lead', + 'version': '11.0.1.0.0', + 'author': 'Hibou Corp. ', + 'category': 'Human Resources', + 'summary': 'Assign Opportunity/Lead to expenses for reporting.', + 'description': """ +Assign Opportunity/Lead to expenses for reporting. +""", + 'website': 'https://hibou.io/', + 'depends': [ + 'hr_expense', + 'crm', + ], + 'data': [ + 'views/hr_expense_views.xml', + 'views/crm_views.xml' + ], + 'installable': True, + 'auto_install': False, +} diff --git a/hr_expense_lead/models/__init__.py b/hr_expense_lead/models/__init__.py new file mode 100644 index 00000000..0192f659 --- /dev/null +++ b/hr_expense_lead/models/__init__.py @@ -0,0 +1,2 @@ +from . import crm_lead +from . import hr_expense_lead diff --git a/hr_expense_lead/models/crm_lead.py b/hr_expense_lead/models/crm_lead.py new file mode 100644 index 00000000..b71bc060 --- /dev/null +++ b/hr_expense_lead/models/crm_lead.py @@ -0,0 +1,14 @@ +from odoo import api, fields, models + + +class CRMLead(models.Model): + _inherit = 'crm.lead' + + expense_total_amount = fields.Float(string='Expenses Total', compute='_compute_expense_total_amount') + expense_ids = fields.One2many('hr.expense', 'lead_id', string='Expenses') + + @api.multi + @api.depends('expense_ids.unit_amount') + def _compute_expense_total_amount(self): + for lead in self.sudo(): + lead.expense_total_amount = sum(lead.expense_ids.mapped('total_amount')) diff --git a/hr_expense_lead/models/hr_expense_lead.py b/hr_expense_lead/models/hr_expense_lead.py new file mode 100644 index 00000000..71656ea5 --- /dev/null +++ b/hr_expense_lead/models/hr_expense_lead.py @@ -0,0 +1,7 @@ +from odoo import api, fields, models + + +class HRExpenseLead(models.Model): + _inherit = 'hr.expense' + + lead_id = fields.Many2one('crm.lead', string='Lead') diff --git a/hr_expense_lead/tests/__init__.py b/hr_expense_lead/tests/__init__.py new file mode 100644 index 00000000..bf77393e --- /dev/null +++ b/hr_expense_lead/tests/__init__.py @@ -0,0 +1 @@ +from . import test_expenses diff --git a/hr_expense_lead/tests/test_expenses.py b/hr_expense_lead/tests/test_expenses.py new file mode 100644 index 00000000..61972079 --- /dev/null +++ b/hr_expense_lead/tests/test_expenses.py @@ -0,0 +1,16 @@ +from odoo.tests import common + + +class TestCheckVendor(common.TransactionCase): + def test_fields(self): + lead = self.env['crm.lead'].create({'name': 'Test Lead'}) + expense = self.env['hr.expense'].create({ + 'name': 'Test Expense', + 'product_id': self.env['product.product'].search([('can_be_expensed', '=', True)], limit=1).id, + 'unit_amount': 34.0, + }) + self.assertFalse(lead.expense_ids) + self.assertEqual(lead.expense_total_amount, 0.0) + expense.lead_id = lead + self.assertTrue(lead.expense_ids) + self.assertEqual(lead.expense_total_amount, 34.0) diff --git a/hr_expense_lead/views/crm_views.xml b/hr_expense_lead/views/crm_views.xml new file mode 100644 index 00000000..aa6878b4 --- /dev/null +++ b/hr_expense_lead/views/crm_views.xml @@ -0,0 +1,18 @@ + + + + crm.lead.form.opportunity.inherit + crm.lead + + + + + + + + \ No newline at end of file diff --git a/hr_expense_lead/views/hr_expense_views.xml b/hr_expense_lead/views/hr_expense_views.xml new file mode 100644 index 00000000..7bb69189 --- /dev/null +++ b/hr_expense_lead/views/hr_expense_views.xml @@ -0,0 +1,24 @@ + + + + hr.expense.form.inherit + hr.expense + + + + + + + + + + hr.expense.filter.inherit + hr.expense + + + + + + + + \ No newline at end of file