From c6309d2bf0ebaa8a87b31b52205de6ec60998239 Mon Sep 17 00:00:00 2001 From: Freni Patel Date: Wed, 17 Nov 2021 18:01:37 +0530 Subject: [PATCH] [14.0][ADD] hr_expense_journal --- hr_expense_journal/__init__.py | 4 +++ hr_expense_journal/__manifest__.py | 19 +++++++++++ hr_expense_journal/models/__init__.py | 4 +++ hr_expense_journal/models/hr_expense.py | 16 +++++++++ hr_expense_journal/readme/CONTRIBUTORS.rst | 4 +++ hr_expense_journal/readme/DESCRIPTION.rst | 7 ++++ hr_expense_journal/readme/USAGE.rst | 5 +++ hr_expense_journal/views/hr_expense_views.xml | 33 +++++++++++++++++++ .../odoo/addons/hr_expense_journal | 1 + setup/hr_expense_journal/setup.py | 6 ++++ 10 files changed, 99 insertions(+) create mode 100644 hr_expense_journal/__init__.py create mode 100644 hr_expense_journal/__manifest__.py create mode 100644 hr_expense_journal/models/__init__.py create mode 100644 hr_expense_journal/models/hr_expense.py create mode 100644 hr_expense_journal/readme/CONTRIBUTORS.rst create mode 100644 hr_expense_journal/readme/DESCRIPTION.rst create mode 100644 hr_expense_journal/readme/USAGE.rst create mode 100644 hr_expense_journal/views/hr_expense_views.xml create mode 120000 setup/hr_expense_journal/odoo/addons/hr_expense_journal create mode 100644 setup/hr_expense_journal/setup.py diff --git a/hr_expense_journal/__init__.py b/hr_expense_journal/__init__.py new file mode 100644 index 000000000..bb83730e9 --- /dev/null +++ b/hr_expense_journal/__init__.py @@ -0,0 +1,4 @@ +# Copyright (C) 2021 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import models diff --git a/hr_expense_journal/__manifest__.py b/hr_expense_journal/__manifest__.py new file mode 100644 index 000000000..463bad65c --- /dev/null +++ b/hr_expense_journal/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright (C) 2021 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Select Expense Journal", + "version": "14.0.1.0.0", + "author": "Open Source Integrators, Odoo Community Association (OCA)", + "summary": "Set the Journal for the payment type used to pay the expense", + "website": "https://github.com/OCA/hr-expense", + "license": "AGPL-3", + "depends": ["hr_expense"], + "category": "Human Resources/Expenses", + "data": [ + "views/hr_expense_views.xml", + ], + "installable": True, + "maintainers": ["dreispt"], + "development_status": "Beta", +} diff --git a/hr_expense_journal/models/__init__.py b/hr_expense_journal/models/__init__.py new file mode 100644 index 000000000..354d90831 --- /dev/null +++ b/hr_expense_journal/models/__init__.py @@ -0,0 +1,4 @@ +# Copyright (C) 2021 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import hr_expense diff --git a/hr_expense_journal/models/hr_expense.py b/hr_expense_journal/models/hr_expense.py new file mode 100644 index 000000000..2c7d65b74 --- /dev/null +++ b/hr_expense_journal/models/hr_expense.py @@ -0,0 +1,16 @@ +# Copyright (C) 2021 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class HrExpense(models.Model): + _inherit = "hr.expense" + + payment_type_id = fields.Many2one("account.journal", string="Payment Journal") + + def _create_sheet_from_expenses(self): + res = super()._create_sheet_from_expenses() + if self.payment_type_id: + res.update({"bank_journal_id": self.payment_type_id.id}) + return res diff --git a/hr_expense_journal/readme/CONTRIBUTORS.rst b/hr_expense_journal/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..b8596f6b5 --- /dev/null +++ b/hr_expense_journal/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* `Open Source Integrators `_: + + * Daniel Reis + * Freni Patel diff --git a/hr_expense_journal/readme/DESCRIPTION.rst b/hr_expense_journal/readme/DESCRIPTION.rst new file mode 100644 index 000000000..e9ef6c95a --- /dev/null +++ b/hr_expense_journal/readme/DESCRIPTION.rst @@ -0,0 +1,7 @@ +Employees can pay for expenses using company Credit Cards. + +In this case, there is the need for the Expense to identify +what Credit Card was used for that payment. + +This allows the Expense report to use the correct journal, +and have the payment accounting enty to be posted in the correct place. diff --git a/hr_expense_journal/readme/USAGE.rst b/hr_expense_journal/readme/USAGE.rst new file mode 100644 index 000000000..4dac56f64 --- /dev/null +++ b/hr_expense_journal/readme/USAGE.rst @@ -0,0 +1,5 @@ +- Create an Expense and select "Paid By Company". +- A "Payment Type" field will be available, to select the + journal corresponding to teh credit card or payment method used. +- When creating the Expense Report, the selected Payment Type + is used to populate the "Bank Journal" field, in the "Other Setting" tab. diff --git a/hr_expense_journal/views/hr_expense_views.xml b/hr_expense_journal/views/hr_expense_views.xml new file mode 100644 index 000000000..a75597768 --- /dev/null +++ b/hr_expense_journal/views/hr_expense_views.xml @@ -0,0 +1,33 @@ + + + hr.expense + + + + + + + + + + + hr.expense.sheet + + + + + + + [('state', '=', 'draft'), ('employee_id', '=', employee_id), ('company_id', '=', company_id), + ('payment_mode', '=', payment_mode), + '|', ('payment_type_id', '=', bank_journal_id), ('payment_type_id', '=', False)] + + + + + + diff --git a/setup/hr_expense_journal/odoo/addons/hr_expense_journal b/setup/hr_expense_journal/odoo/addons/hr_expense_journal new file mode 120000 index 000000000..efc31639d --- /dev/null +++ b/setup/hr_expense_journal/odoo/addons/hr_expense_journal @@ -0,0 +1 @@ +../../../../hr_expense_journal \ No newline at end of file diff --git a/setup/hr_expense_journal/setup.py b/setup/hr_expense_journal/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/hr_expense_journal/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)