diff --git a/ent_loan_accounting/README.rst b/ent_loan_accounting/README.rst new file mode 100644 index 000000000..704802bf1 --- /dev/null +++ b/ent_loan_accounting/README.rst @@ -0,0 +1,53 @@ +.. image:: https://img.shields.io/badge/license-OPL--1-red.svg + :target: https://www.odoo.com/documentation/18.0/legal/licenses.html#odoo-apps + :alt: License: OPL-1 + +Enterprise OpenHRMS Loan Accounting +==================================== +Create accounting entries for loan requests + +Configuration +============= + * sudo pip3 install pandas + or + * sudo apt-get install pandas + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +======= +Odoo Proprietary License, Version 1.0 (OPL-1) +(https://www.odoo.com/documentation/18.0/legal/licenses.html#odoo-apps) + +Credits +------- +* Developers: + (V18) Arjun S, + (V17) Sruthi Pavithran, + (V16) Shijilal S, + (V14) Naveen V +* Contact: odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/ent_loan_accounting/__init__.py b/ent_loan_accounting/__init__.py new file mode 100644 index 000000000..f1ea7bba0 --- /dev/null +++ b/ent_loan_accounting/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# A part of OpenHRMS Project +# +# Copyright (C) 2025-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions (odoo@cybrosys.com) +# +# This program is under the terms of the Odoo Proprietary License v1.0 +# (OPL-1) +# It is forbidden to publish, distribute, sublicense, or sell copies of the +# Software or modified copies of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +# USE OR OTHER DEALINGS IN THE SOFTWARE. +# +################################################################################ +from . import models diff --git a/ent_loan_accounting/__manifest__.py b/ent_loan_accounting/__manifest__.py new file mode 100644 index 000000000..6883ea3f1 --- /dev/null +++ b/ent_loan_accounting/__manifest__.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# A part of OpenHRMS Project +# +# Copyright (C) 2025-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions (odoo@cybrosys.com) +# +# This program is under the terms of the Odoo Proprietary License v1.0 +# (OPL-1) +# It is forbidden to publish, distribute, sublicense, or sell copies of the +# Software or modified copies of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +# USE OR OTHER DEALINGS IN THE SOFTWARE. +# +################################################################################ +{ + 'name': 'Enterprise OpenHRMS Loan Accounting', + 'version': '18.0.1.0.0', + 'category': 'Generic Modules/Human Resources', + 'summary': 'Open HRMS Loan Accounting', + 'description': """Manage Loan Request of Employees.Double Layer Approval + of Hr Department and Accounting.Create accounting entries for loan + requests.""", + 'author': "Cybrosys Techno Solutions,Open HRMS", + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'live_test_url': 'https://youtu.be/NFZfiHyn0-0', + 'website': "https://www.openhrms.com", + 'depends': [ + 'hr_payroll', + 'hr', + 'account', + 'account_accountant', + 'ent_ohrms_loan' + ], + 'data': [ + 'views/hr_loan_views.xml', + 'views/res_config_settings_views.xml', + ], + 'images': ['static/description/banner.jpg'], + 'license': 'OPL-1', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/ent_loan_accounting/doc/RELEASE_NOTES.md b/ent_loan_accounting/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..653f0b4c7 --- /dev/null +++ b/ent_loan_accounting/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 26.03.2025 +#### Version 18.0.1.0.0 +##### ADD + +- Initial commit for Enterprise OpenHRMS Loan Accounting diff --git a/ent_loan_accounting/models/__init__.py b/ent_loan_accounting/models/__init__.py new file mode 100644 index 000000000..e7f17e76a --- /dev/null +++ b/ent_loan_accounting/models/__init__.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# A part of OpenHRMS Project +# +# Copyright (C) 2025-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions (odoo@cybrosys.com) +# +# This program is under the terms of the Odoo Proprietary License v1.0 +# (OPL-1) +# It is forbidden to publish, distribute, sublicense, or sell copies of the +# Software or modified copies of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +# USE OR OTHER DEALINGS IN THE SOFTWARE. +# +################################################################################ +from . import account_move_line +from . import hr_loan +from . import hr_loan_line +from . import hr_payslip +from . import res_config_settings diff --git a/ent_loan_accounting/models/account_move_line.py b/ent_loan_accounting/models/account_move_line.py new file mode 100644 index 000000000..2c47d62cc --- /dev/null +++ b/ent_loan_accounting/models/account_move_line.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# A part of OpenHRMS Project +# +# Copyright (C) 2025-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions (odoo@cybrosys.com) +# +# This program is under the terms of the Odoo Proprietary License v1.0 +# (OPL-1) +# It is forbidden to publish, distribute, sublicense, or sell copies of the +# Software or modified copies of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +# USE OR OTHER DEALINGS IN THE SOFTWARE. +# +################################################################################ +from odoo import fields, models + + +class AccountMoveLine(models.Model): + """ Inheriting account move line for adding field. """ + _inherit = "account.move.line" + + loan_id = fields.Many2one(comodel_name='hr.loan', string='Loan Id', + help="Select loan details for employees") diff --git a/ent_loan_accounting/models/hr_loan.py b/ent_loan_accounting/models/hr_loan.py new file mode 100644 index 000000000..fdb4ed35e --- /dev/null +++ b/ent_loan_accounting/models/hr_loan.py @@ -0,0 +1,150 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# A part of OpenHRMS Project +# +# Copyright (C) 2025-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions (odoo@cybrosys.com) +# +# This program is under the terms of the Odoo Proprietary License v1.0 +# (OPL-1) +# It is forbidden to publish, distribute, sublicense, or sell copies of the +# Software or modified copies of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +# USE OR OTHER DEALINGS IN THE SOFTWARE. +# +################################################################################ +from datetime import date +from odoo import fields, models +from odoo.exceptions import UserError + + +class HrLoan(models.Model): + """ Inheriting hr.loan for adding fields into the model. """ + _inherit = 'hr.loan' + + employee_account_id = fields.Many2one(comodel_name='account.account', + string="Loan Account", + help="Select employee chart of " + "accounts") + treasury_account_id = fields.Many2one(comodel_name='account.account', + string="Treasury Account", + help="Select employee treasury " + "account details") + journal_id = fields.Many2one(comodel_name='account.journal', + string="Journal", + help="Select journal for employee") + state = fields.Selection([ + ('draft', 'Draft'), + ('waiting_approval_1', 'Submitted'), + ('waiting_approval_2', 'Waiting Approval'), + ('approve', 'Approved'), + ('refuse', 'Refused'), + ('cancel', 'Canceled'), + ], string="State", default='draft', track_visibility='onchange', + copy=False) + + def action_approve(self): + """ This creates an invoice in account.move with loan request details. + """ + loan_approve = self.env['ir.config_parameter'].sudo().get_param( + 'ent_loan_accounting.loan_approve') + contract_obj = self.env['hr.contract'].search( + [('employee_id', '=', self.employee_id.id)]) + if not contract_obj: + raise UserError('You must Define a contract for employee') + if not self.loan_line_ids: + raise UserError('You must compute installment before Approved') + if loan_approve: + self.write({'state': 'waiting_approval_2'}) + else: + if (not self.employee_account_id or not self.treasury_account_id or + not self.journal_id): + raise UserError( + "You must enter employee account & Treasury account and" + " journal to approve ") + if not self.loan_line_ids: + raise UserError( + 'You must compute Loan Request before Approved') + for loan in self: + debit_vals = { + 'name': loan.employee_id.name, + 'account_id': loan.treasury_account_id.id, + 'journal_id': loan.journal_id.id, + 'date': date.today(), + 'debit': loan.loan_amount > 0.0 and loan.loan_amount or 0.0, + 'credit': loan.loan_amount < 0.0 and -loan.loan_amount + or 0.0, + 'loan_id': loan.id, + } + credit_vals = { + 'name': loan.employee_id.name, + 'account_id': loan.employee_account_id.id, + 'journal_id': loan.journal_id.id, + 'date': date.today(), + 'debit': loan.loan_amount < 0.0 and + -loan.loan_amount or 0.0, + 'credit': loan.loan_amount > 0.0 and + loan.loan_amount or 0.0, + 'loan_id': loan.id, + } + vals = { + 'name': 'Loan For' + ' ' + loan.employee_id.name, + 'narration': loan.employee_id.name, + 'ref': loan.name, + 'journal_id': loan.journal_id.id, + 'date': date.today(), + 'line_ids': [(0, 0, debit_vals), (0, 0, credit_vals)] + } + move = self.env['account.move'].create(vals) + move.action_post() + self.write({'state': 'approve'}) + return True + + def action_double_approve(self): + """ This creates account move for request in case of double approval. + """ + if (not self.employee_account_id or not self.treasury_account_id or not + self.journal_id): + raise UserError( + "You must enter employee account & Treasury account and " + "journal to approve ") + if not self.loan_line_ids: + raise UserError('You must compute Loan Request before Approved') + for loan in self: + debit_vals = { + 'name': loan.employee_id.name, + 'account_id': loan.treasury_account_id.id, + 'journal_id': loan.journal_id.id, + 'date': date.today(), + 'debit': loan.loan_amount > 0.0 and loan.loan_amount or 0.0, + 'credit': loan.loan_amount < 0.0 and -loan.loan_amount or 0.0, + 'loan_id': loan.id, + } + credit_vals = { + 'name': loan.employee_id.name, + 'account_id': loan.employee_account_id.id, + 'journal_id': loan.journal_id.id, + 'date': date.today(), + 'debit': loan.loan_amount < 0.0 and -loan.loan_amount or 0.0, + 'credit': loan.loan_amount > 0.0 and loan.loan_amount or 0.0, + 'loan_id': loan.id, + } + vals = { + 'name': 'Loan For' + ' ' + loan.employee_id.name, + 'narration': loan.employee_id.name, + 'ref': loan.name, + 'journal_id': loan.journal_id.id, + 'date': date.today(), + 'line_ids': [(0, 0, debit_vals), (0, 0, credit_vals)] + } + move = self.env['account.move'].create(vals) + move.action_post() + self.write({'state': 'approve'}) + return True diff --git a/ent_loan_accounting/models/hr_loan_line.py b/ent_loan_accounting/models/hr_loan_line.py new file mode 100644 index 000000000..cdd3b151f --- /dev/null +++ b/ent_loan_accounting/models/hr_loan_line.py @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# A part of OpenHRMS Project +# +# Copyright (C) 2025-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions (odoo@cybrosys.com) +# +# This program is under the terms of the Odoo Proprietary License v1.0 +# (OPL-1) +# It is forbidden to publish, distribute, sublicense, or sell copies of the +# Software or modified copies of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +# USE OR OTHER DEALINGS IN THE SOFTWARE. +# +################################################################################ +from datetime import date +from odoo import models +from odoo.exceptions import UserError + + +class HrLoanLine(models.Model): + """ Creates an invoice for loans. """ + _inherit = "hr.loan.line" + + def action_paid_amount(self, month): + """ + This creates the account move line for payment of each installment. + """ + for line in self: + if line.loan_id.state != 'approve': + raise UserError("Loan Request must be approved") + debit_vals = { + 'name': line.employee_id.name, + 'account_id': line.loan_id.employee_account_id.id, + 'journal_id': line.loan_id.journal_id.id, + 'date': date.today(), + 'debit': line.amount > 0.0 and line.amount or 0.0, + 'credit': line.amount < 0.0 and -line.amount or 0.0, + } + credit_vals = { + 'name': line.employee_id.name, + 'account_id': line.loan_id.treasury_account_id.id, + 'journal_id': line.loan_id.journal_id.id, + 'date': date.today(), + 'debit': line.amount < 0.0 and -line.amount or 0.0, + 'credit': line.amount > 0.0 and line.amount or 0.0, + } + vals = { + 'name': 'LOAN/' + ' ' + line.employee_id.name + '/' + month, + 'narration': line.employee_id.name, + 'ref': line.loan_id.name, + 'journal_id': line.loan_id.journal_id.id, + 'date': date.today(), + 'line_ids': [(0, 0, debit_vals), (0, 0, credit_vals)] + } + move = self.env['account.move'].create(vals) + move.action_post() + return True diff --git a/ent_loan_accounting/models/hr_payslip.py b/ent_loan_accounting/models/hr_payslip.py new file mode 100644 index 000000000..cc2e785a7 --- /dev/null +++ b/ent_loan_accounting/models/hr_payslip.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# A part of OpenHRMS Project +# +# Copyright (C) 2025-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions (odoo@cybrosys.com) +# +# This program is under the terms of the Odoo Proprietary License v1.0 +# (OPL-1) +# It is forbidden to publish, distribute, sublicense, or sell copies of the +# Software or modified copies of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +# USE OR OTHER DEALINGS IN THE SOFTWARE. +# +################################################################################ +import babel +from datetime import datetime, time +from odoo import fields, models, tools + + +class HrPayslip(models.Model): + """ Class for inheriting hr payslip. """ + _inherit = 'hr.payslip' + + def action_payslip_done(self): + """ + The function mark the loan as paid and call the action paid amount + function for creating an invoice. + """ + for line in self.input_line_ids: + date_from = self.date_from + tym = datetime.combine(fields.Date.from_string(date_from), + time.min) + locale = self.env.context.get('lang') or 'en_US' + month = tools.ustr( + babel.dates.format_date(date=tym, format='MMMM-y', + locale=locale)) + if line.loan_line_id: + line.loan_line_id.action_paid_amount(month) + return super(HrPayslip, self).action_payslip_done() diff --git a/ent_loan_accounting/models/res_config_settings.py b/ent_loan_accounting/models/res_config_settings.py new file mode 100644 index 000000000..91337b43f --- /dev/null +++ b/ent_loan_accounting/models/res_config_settings.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# A part of OpenHRMS Project +# +# Copyright (C) 2025-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions (odoo@cybrosys.com) +# +# This program is under the terms of the Odoo Proprietary License v1.0 +# (OPL-1) +# It is forbidden to publish, distribute, sublicense, or sell copies of the +# Software or modified copies of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +# USE OR OTHER DEALINGS IN THE SOFTWARE. +# +################################################################################ +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + """ Inheriting res config settings for adding fields. """ + _inherit = 'res.config.settings' + + loan_approve = fields.Boolean(config_parameter="ent_loan_accounting.loan_approve", + string="Approval from Accounting Department", + help="Loan Approval from account manager") diff --git a/ent_loan_accounting/security/hr_loan_security.xml b/ent_loan_accounting/security/hr_loan_security.xml new file mode 100644 index 000000000..66de83ebb --- /dev/null +++ b/ent_loan_accounting/security/hr_loan_security.xml @@ -0,0 +1,16 @@ + + + + + + Loan Forms Modification Accounts + + + + + + + + + diff --git a/ent_loan_accounting/security/ir.model.access.csv b/ent_loan_accounting/security/ir.model.access.csv new file mode 100644 index 000000000..40f5cb9d7 --- /dev/null +++ b/ent_loan_accounting/security/ir.model.access.csv @@ -0,0 +1,13 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_account_move_officer,access.account.move.officer,account.model_account_move,hr.group_hr_user,1,1,1,1 +access_account_journal_officer,access.account.journal.officer,account.model_account_journal,hr.group_hr_user,1,1,1,1 +access_account_move_line_officer,access.account.move.line.officer,account.model_account_move_line,hr.group_hr_user,1,1,1,1 +access_account_account_type_officer, access.account.account.type.officer,account.model_account_account_type,hr.group_hr_user,1,1,1,1 +access_hr_loan_manager,access.hr.loan.manager,model_hr_loan,hr.group_hr_manager,1,1,1,1 +access_hr_loan_line_manager,access.hr.loan.line.manager,model_hr_loan_line,hr.group_hr_manager,1,1,1,1 +access_account_move_manager,access.account.move.manager,account.model_account_move,hr.group_hr_manager,1,1,1,1 +access_account_journal_manager,access.account.journal.manager,account.model_account_journal,hr.group_hr_manager,1,1,1,1 +access_account_move_line_manager,access.account.move.line.manager,account.model_account_move_line,hr.group_hr_manager,1,1,1,1 +access_account_account_type_manager, access.account.account.type.manager,account.model_account_account_type,hr.group_hr_manager,1,1,1,1 +access_hr_loan_accountant,access.hr.loan.accountant,model_hr_loan,account.group_account_user,1,1,1,0 +access_hr_loan_line_accountant,access.hr.loan.line.accountant,model_hr_loan_line,account.group_account_user,1,1,1,0 diff --git a/ent_loan_accounting/static/description/assets/icons/arrows-repeat.svg b/ent_loan_accounting/static/description/assets/icons/arrows-repeat.svg new file mode 100644 index 000000000..1d7efabc5 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/banner-bg.png b/ent_loan_accounting/static/description/assets/icons/banner-bg.png new file mode 100644 index 000000000..a8238d3c0 Binary files /dev/null and b/ent_loan_accounting/static/description/assets/icons/banner-bg.png differ diff --git a/ent_loan_accounting/static/description/assets/icons/banner-bg.svg b/ent_loan_accounting/static/description/assets/icons/banner-bg.svg new file mode 100644 index 000000000..b1378103e --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/banner-call.svg b/ent_loan_accounting/static/description/assets/icons/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/banner-logo-pattern.svg b/ent_loan_accounting/static/description/assets/icons/banner-logo-pattern.svg new file mode 100644 index 000000000..2ba63930a --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/banner-logo-pattern.svg @@ -0,0 +1,557 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/banner-mail.svg b/ent_loan_accounting/static/description/assets/icons/banner-mail.svg new file mode 100644 index 000000000..cbf0d158d --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/banner-promo.svg b/ent_loan_accounting/static/description/assets/icons/banner-promo.svg new file mode 100644 index 000000000..d52791b11 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/banner-promo.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/blue-abstract-gradient-wave-wallpaper.jpg b/ent_loan_accounting/static/description/assets/icons/blue-abstract-gradient-wave-wallpaper.jpg new file mode 100644 index 000000000..1df614b00 Binary files /dev/null and b/ent_loan_accounting/static/description/assets/icons/blue-abstract-gradient-wave-wallpaper.jpg differ diff --git a/ent_loan_accounting/static/description/assets/icons/close-icon.svg b/ent_loan_accounting/static/description/assets/icons/close-icon.svg new file mode 100644 index 000000000..df8cce37a --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/close-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/collabarate-icon.svg b/ent_loan_accounting/static/description/assets/icons/collabarate-icon.svg new file mode 100644 index 000000000..dd4e10518 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/collabarate-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/ent_loan_accounting/static/description/assets/icons/cybro-logo.png b/ent_loan_accounting/static/description/assets/icons/cybro-logo.png new file mode 100644 index 000000000..ff4b78220 Binary files /dev/null and b/ent_loan_accounting/static/description/assets/icons/cybro-logo.png differ diff --git a/ent_loan_accounting/static/description/assets/icons/down (1).svg b/ent_loan_accounting/static/description/assets/icons/down (1).svg new file mode 100644 index 000000000..ecc984f88 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/down (1).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ent_loan_accounting/static/description/assets/icons/email (2).svg b/ent_loan_accounting/static/description/assets/icons/email (2).svg new file mode 100644 index 000000000..ea2d8b15d --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/email (2).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ent_loan_accounting/static/description/assets/icons/feature-icon.svg b/ent_loan_accounting/static/description/assets/icons/feature-icon.svg new file mode 100644 index 000000000..fa0ea6850 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/gear.svg b/ent_loan_accounting/static/description/assets/icons/gear.svg new file mode 100644 index 000000000..0cc66b6ea --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/hire-odoo.svg b/ent_loan_accounting/static/description/assets/icons/hire-odoo.svg new file mode 100644 index 000000000..e1ac089b0 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/key-benefits-pattern.svg b/ent_loan_accounting/static/description/assets/icons/key-benefits-pattern.svg new file mode 100644 index 000000000..29cf22ed8 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/key-benefits-pattern.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/key-benefits.svg b/ent_loan_accounting/static/description/assets/icons/key-benefits.svg new file mode 100644 index 000000000..5b14887dc --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/key-benefits.svg @@ -0,0 +1,3 @@ + + + diff --git a/ent_loan_accounting/static/description/assets/icons/life-ring-icon.svg b/ent_loan_accounting/static/description/assets/icons/life-ring-icon.svg new file mode 100644 index 000000000..3ae6e1d89 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/logo-openhrms.png b/ent_loan_accounting/static/description/assets/icons/logo-openhrms.png new file mode 100644 index 000000000..e64152348 Binary files /dev/null and b/ent_loan_accounting/static/description/assets/icons/logo-openhrms.png differ diff --git a/ent_loan_accounting/static/description/assets/icons/mail.svg b/ent_loan_accounting/static/description/assets/icons/mail.svg new file mode 100644 index 000000000..1eedde695 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/ent_loan_accounting/static/description/assets/icons/notification icon.svg b/ent_loan_accounting/static/description/assets/icons/notification icon.svg new file mode 100644 index 000000000..053189973 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/notification icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/odoo-consultancy.svg b/ent_loan_accounting/static/description/assets/icons/odoo-consultancy.svg new file mode 100644 index 000000000..e05f65bde --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/odoo-licencing.svg b/ent_loan_accounting/static/description/assets/icons/odoo-licencing.svg new file mode 100644 index 000000000..2606c88b0 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/ent_loan_accounting/static/description/assets/icons/odoo-logo.png b/ent_loan_accounting/static/description/assets/icons/odoo-logo.png new file mode 100644 index 000000000..0e4d0eb5a Binary files /dev/null and b/ent_loan_accounting/static/description/assets/icons/odoo-logo.png differ diff --git a/ent_loan_accounting/static/description/assets/icons/patter.svg b/ent_loan_accounting/static/description/assets/icons/patter.svg new file mode 100644 index 000000000..25c9c0a8f --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/pattern1.png b/ent_loan_accounting/static/description/assets/icons/pattern1.png new file mode 100644 index 000000000..09ab0fb2d Binary files /dev/null and b/ent_loan_accounting/static/description/assets/icons/pattern1.png differ diff --git a/ent_loan_accounting/static/description/assets/icons/puzzle-piece-icon.svg b/ent_loan_accounting/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100644 index 000000000..3e9ad9373 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/replace-icon.svg b/ent_loan_accounting/static/description/assets/icons/replace-icon.svg new file mode 100644 index 000000000..d0e3a7af1 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/replace-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/skype.svg b/ent_loan_accounting/static/description/assets/icons/skype.svg new file mode 100644 index 000000000..df3dad39b --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/skype.svg @@ -0,0 +1,3 @@ + + + diff --git a/ent_loan_accounting/static/description/assets/icons/translate.svg b/ent_loan_accounting/static/description/assets/icons/translate.svg new file mode 100644 index 000000000..af9c8a1aa --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/ent_loan_accounting/static/description/assets/icons/wrench-icon.svg b/ent_loan_accounting/static/description/assets/icons/wrench-icon.svg new file mode 100644 index 000000000..174b5a465 --- /dev/null +++ b/ent_loan_accounting/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/ent_loan_accounting/static/description/assets/modules/1.jpg b/ent_loan_accounting/static/description/assets/modules/1.jpg new file mode 100644 index 000000000..392b83d79 Binary files /dev/null and b/ent_loan_accounting/static/description/assets/modules/1.jpg differ diff --git a/ent_loan_accounting/static/description/assets/modules/2.jpg b/ent_loan_accounting/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..662cadcc3 Binary files /dev/null and b/ent_loan_accounting/static/description/assets/modules/2.jpg differ diff --git a/ent_loan_accounting/static/description/assets/modules/3.jpg b/ent_loan_accounting/static/description/assets/modules/3.jpg new file mode 100644 index 000000000..d9d2a0144 Binary files /dev/null and b/ent_loan_accounting/static/description/assets/modules/3.jpg differ diff --git a/ent_loan_accounting/static/description/assets/modules/4.jpg b/ent_loan_accounting/static/description/assets/modules/4.jpg new file mode 100644 index 000000000..86379cd61 Binary files /dev/null and b/ent_loan_accounting/static/description/assets/modules/4.jpg differ diff --git a/ent_loan_accounting/static/description/assets/modules/5.jpg b/ent_loan_accounting/static/description/assets/modules/5.jpg new file mode 100644 index 000000000..b5530c445 Binary files /dev/null and b/ent_loan_accounting/static/description/assets/modules/5.jpg differ diff --git a/ent_loan_accounting/static/description/assets/modules/6.jpg b/ent_loan_accounting/static/description/assets/modules/6.jpg new file mode 100644 index 000000000..cba1544b3 Binary files /dev/null and b/ent_loan_accounting/static/description/assets/modules/6.jpg differ diff --git a/ent_loan_accounting/static/description/assets/screenshots/1.png b/ent_loan_accounting/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..b20463e94 Binary files /dev/null and b/ent_loan_accounting/static/description/assets/screenshots/1.png differ diff --git a/ent_loan_accounting/static/description/assets/screenshots/10.png b/ent_loan_accounting/static/description/assets/screenshots/10.png new file mode 100644 index 000000000..3d86cdf3e Binary files /dev/null and b/ent_loan_accounting/static/description/assets/screenshots/10.png differ diff --git a/ent_loan_accounting/static/description/assets/screenshots/2.png b/ent_loan_accounting/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..e876156ee Binary files /dev/null and b/ent_loan_accounting/static/description/assets/screenshots/2.png differ diff --git a/ent_loan_accounting/static/description/assets/screenshots/5.png b/ent_loan_accounting/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..9d098477e Binary files /dev/null and b/ent_loan_accounting/static/description/assets/screenshots/5.png differ diff --git a/ent_loan_accounting/static/description/assets/screenshots/6.png b/ent_loan_accounting/static/description/assets/screenshots/6.png new file mode 100644 index 000000000..7bd1d6ff0 Binary files /dev/null and b/ent_loan_accounting/static/description/assets/screenshots/6.png differ diff --git a/ent_loan_accounting/static/description/assets/screenshots/7.png b/ent_loan_accounting/static/description/assets/screenshots/7.png new file mode 100644 index 000000000..825de5b13 Binary files /dev/null and b/ent_loan_accounting/static/description/assets/screenshots/7.png differ diff --git a/ent_loan_accounting/static/description/assets/screenshots/8.png b/ent_loan_accounting/static/description/assets/screenshots/8.png new file mode 100644 index 000000000..5d92c1374 Binary files /dev/null and b/ent_loan_accounting/static/description/assets/screenshots/8.png differ diff --git a/ent_loan_accounting/static/description/assets/screenshots/9.png b/ent_loan_accounting/static/description/assets/screenshots/9.png new file mode 100644 index 000000000..c9d14285d Binary files /dev/null and b/ent_loan_accounting/static/description/assets/screenshots/9.png differ diff --git a/ent_loan_accounting/static/description/assets/screenshots/hero.gif b/ent_loan_accounting/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..d7e599efe Binary files /dev/null and b/ent_loan_accounting/static/description/assets/screenshots/hero.gif differ diff --git a/ent_loan_accounting/static/description/banner.jpg b/ent_loan_accounting/static/description/banner.jpg new file mode 100644 index 000000000..90251bf6c Binary files /dev/null and b/ent_loan_accounting/static/description/banner.jpg differ diff --git a/ent_loan_accounting/static/description/icon.png b/ent_loan_accounting/static/description/icon.png new file mode 100644 index 000000000..7098f9ffe Binary files /dev/null and b/ent_loan_accounting/static/description/icon.png differ diff --git a/ent_loan_accounting/static/description/index.html b/ent_loan_accounting/static/description/index.html new file mode 100644 index 000000000..f6d36f587 --- /dev/null +++ b/ent_loan_accounting/static/description/index.html @@ -0,0 +1,924 @@ + + + + + + Enterprise OpenHRMS Loan Accounting + + + + + + + + + + + +
+
+
+ +
+
+ Enterprise +
+
+
+
+ +
+
+

Enterprise OpenHRMS Loan Accounting + + + +

+

+ Manage Loan Request of Employees. Double Layer Approval of Hr Department and Accounting. +

+
+
+ + +
+ +
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+

Key Highlights

+
+
+
+
+ +
+
+ Loan Request +
+

+ OpenHRMS Loan is a component of OpenHRMS suit. OpenHRMS Loan module helps the user to configure different loan policies, assign approval authority. +

+
+
+
+
+
+ +
+
+ Approval +
+

+ Conduct the approval process and sanction loan for employees. +

+
+
+
+
+ +
+
+ Journal Entries +
+

+ Create Journal Entries for loan request. +

+
+ +
+
+ +
+
+
+ Enterprise OpenHRMS Loan Accounting + + +

+ Are you ready to make your business more organized? +
Improve now! +

+ +
+
+ +
+
+
+ + + +
+
+ +
+
+
+
+ acc_bg +
+ +
+
+
+
+

+ + Loan Approval + +

+
+
+

+ Enable the option "Loan Approval From Accounting Department" In Accounting Settings. +

+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + Add the deduction rule for loan in Salary Structure. + + +

+
+
+
+ +
+
+
+
+
+ +
+
+
+
+

+ + Employee can create loan request. + +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + Approval + +

+
+
+

+ Once the HR department has given the Approval, the accounts department take the decision. +

+
+
+ +
+
+
+ +
+
+
+
+
+ + +
+
+
+
+

+ + Generate Payslip + +

+
+
+

+ When we create the payslip, all the pending installments of the month will be listed there. +

+
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+

+ + When we check the Loan request again, the deducted installments will be changed to 'PAID'. + +

+
+
+
+ +
+
+
+
+
+ +
+
+
+
+

+ + Journal Entries created for Loan Request. + +

+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+

+ Employee can create loan request +

+ +
+
+
+ +
+
+
+
+ +
+

+ Double approval from both HR & Accounting department. +

+
+
+
+
+
+
+
+ +
+

+ Amount will automatically deducted from the payslip of the corresponding month. +

+
+
+
+
+
+ + +
+
+
+
+
+ +
+ +
+ +
+

+ This module manages employee loan requests with a double-layer approval from the HR and Accounting departments, while also generating accounting entries. +

+
+
+ +
+ +
+

+ Loan requests go through HR approval first, followed by Accounting approval before being processed. +

+
+
+
+
+
+
+
+
+
+ +
+
+

+ Latest Release 18.0.1.0.0 +

+ + 10th March, 2025 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • +
+
+
+
+
+
+
+
+
+
+ + + +
+
+

Our Services

+
+ +
+ + +
+
+ .... +
+
+
+ +
+
+ + + + + + + + diff --git a/ent_loan_accounting/views/hr_loan_views.xml b/ent_loan_accounting/views/hr_loan_views.xml new file mode 100644 index 000000000..f341047f5 --- /dev/null +++ b/ent_loan_accounting/views/hr_loan_views.xml @@ -0,0 +1,52 @@ + + + + + hr.loan.view.form.inherit.ent.loan.accounting + + hr.loan + + + +
+
+
+ + + + + +
+
+
diff --git a/ent_loan_accounting/views/res_config_settings_views.xml b/ent_loan_accounting/views/res_config_settings_views.xml new file mode 100644 index 000000000..740d673b7 --- /dev/null +++ b/ent_loan_accounting/views/res_config_settings_views.xml @@ -0,0 +1,29 @@ + + + + + + res.config.settings.view.form.inherit.ent.loan.accounting + + res.config.settings + + + +

Loan Approval

+
+
+
+ +
+
+
+
+
+
+
+
+