diff --git a/insurance_management_cybro/README.rst b/insurance_management_cybro/README.rst new file mode 100644 index 000000000..8595de2be --- /dev/null +++ b/insurance_management_cybro/README.rst @@ -0,0 +1,51 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Insurance Management +==================== +This module will used for Insurance Management & Operations. + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +GNU Affero General Public License v3.0 (AGPL v3) +(http://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Credits +------- +* Developer: Niyas Raphy , Sreejith P + (V13) Nimisha Murali + (V14) Muhammed Nafih + (V15) Abhishek E T + (V17) Jumana Haseen, +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/insurance_management_cybro/__init__.py b/insurance_management_cybro/__init__.py new file mode 100755 index 000000000..3566c0e66 --- /dev/null +++ b/insurance_management_cybro/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Jumana Haseen @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import models diff --git a/insurance_management_cybro/__manifest__.py b/insurance_management_cybro/__manifest__.py new file mode 100755 index 000000000..8a1b00c94 --- /dev/null +++ b/insurance_management_cybro/__manifest__.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Jumana Haseen @cybrosys (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + 'name': 'Insurance Management', + 'version': '17.0.1.0.0', + 'category': 'Accounting', + 'summary': """Insurance Management & Operations of the customers and manage + the insurance claims and the salary of agents with or without the + commission.""", + 'description': """Insurance Management and claims based on policies allows + the user to create insurance policies """, + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['account'], + 'data': [ + 'security/ir.model.access.csv', + 'data/payment_type_data.xml', + 'data/insurance_details_data.xml', + 'data/claim_details_data.xml', + 'views/claim_details_views.xml', + 'views/employee_details_views.xml', + 'views/insurance_details_views.xml', + 'views/policy_details_views.xml', + 'views/insurance_management_menus.xml', + 'views/policy_type_views.xml', + 'views/payment_type_views.xml', + ], + 'assets': { + 'web.assets_backend': [ + 'account/static/src/components/**/*', + ], + }, + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'application': True, + 'auto_install': False, +} diff --git a/insurance_management_cybro/data/claim_details_data.xml b/insurance_management_cybro/data/claim_details_data.xml new file mode 100644 index 000000000..be59ca155 --- /dev/null +++ b/insurance_management_cybro/data/claim_details_data.xml @@ -0,0 +1,11 @@ + + + + + Claim Details + claim.details + CLM/ + 3 + + + \ No newline at end of file diff --git a/insurance_management_cybro/data/insurance_details_data.xml b/insurance_management_cybro/data/insurance_details_data.xml new file mode 100755 index 000000000..9815f4bfa --- /dev/null +++ b/insurance_management_cybro/data/insurance_details_data.xml @@ -0,0 +1,11 @@ + + + + + Insurance Details + insurance.details + INS/ + 3 + + + diff --git a/insurance_management_cybro/data/payment_type_data.xml b/insurance_management_cybro/data/payment_type_data.xml new file mode 100644 index 000000000..73987080a --- /dev/null +++ b/insurance_management_cybro/data/payment_type_data.xml @@ -0,0 +1,11 @@ + + + + + Fixed + + + Installment + + + diff --git a/insurance_management_cybro/doc/RELEASE_NOTES.md b/insurance_management_cybro/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..a5b688d9d --- /dev/null +++ b/insurance_management_cybro/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 12.12.2023 +#### Version 17.0.1.0.0 +#### ADD +- Initial commit for Insurance Management diff --git a/insurance_management_cybro/models/__init__.py b/insurance_management_cybro/models/__init__.py new file mode 100755 index 000000000..5272437fb --- /dev/null +++ b/insurance_management_cybro/models/__init__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies(). +# Author: Jumana Haseen @cybrosys (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import claim_details +from . import account_move +from . import employee_details +from . import insurance_details +from . import policy_details +from . import policy_type +from . import payment_type diff --git a/insurance_management_cybro/models/account_move.py b/insurance_management_cybro/models/account_move.py new file mode 100644 index 000000000..b34c12dfa --- /dev/null +++ b/insurance_management_cybro/models/account_move.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Jumana Haseen @cybrosys (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models, fields + + +class AccountMove(models.Model): + """This class inherits 'account.move' and added fields insurance_id + and claim_id""" + _inherit = 'account.move' + + insurance_id = fields.Many2one('insurance.details', + string='Insurance', + help="Give the insurance details in invoice") + claim_id = fields.Many2one('claim.details', string='Insurance Claim', + help="Give the claim details") diff --git a/insurance_management_cybro/models/claim_details.py b/insurance_management_cybro/models/claim_details.py new file mode 100755 index 000000000..f94527a72 --- /dev/null +++ b/insurance_management_cybro/models/claim_details.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Jumana Haseen @cybrosys (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models, _ + + +class ClaimDetails(models.Model): + """This class creates a model 'claim.details' and added fields """ + _name = 'claim.details' + _description = "Claim Details" + + name = fields.Char(string='Name', copy=False, + readonly=True, index=True, default=lambda self: _('New'), + help="Sequence for claim details") + insurance_id = fields.Many2one('insurance.details', required=True, + domain=[('state', '=', 'confirmed')], + string="Insurance", + help="Confirmed orders can be selected") + partner_id = fields.Many2one(related='insurance_id.partner_id', + string='Customer', + help="Partner related to insurance") + policy_id = fields.Many2one(related='insurance_id.policy_id', + string='Policy', + help="Policy related to insurance") + employee_id = fields.Many2one(related='insurance_id.employee_id', + string='Agent', + help="Employee related to insurance") + currency_id = fields.Many2one( + 'res.currency', string='Currency', required=True, + default=lambda self: self.env.user.company_id.currency_id.id, + help="default currency") + amount = fields.Monetary(related='insurance_id.amount', string='Amount', + help="Amount related to insurance") + date_claimed = fields.Date( + string='Date Applied', default=fields.Date.context_today, + help="Date of apply of claim details") + invoice_id = fields.Many2one('account.move', string='Invoiced', + readonly=True, copy=False, + help="Invoice related to the claim") + note_field = fields.Html(string='Comment', help="Related notes") + + @api.model + def create(self, vals): + """Function to create sequence""" + if vals.get('name', 'New') == 'New': + vals['name'] = self.env['ir.sequence'].next_by_code( + 'claim.details') or 'New' + return super(ClaimDetails, self).create(vals) + + def action_create_bill(self): + """Function to create bill with corresponding details""" + if not self.invoice_id: + invoice_val = self.env['account.move'].sudo().create({ + 'move_type': 'in_invoice', + 'invoice_date': fields.Date.context_today(self), + 'partner_id': self.partner_id.id, + 'invoice_user_id': self.env.user.id, + 'claim_id': self.id, + 'invoice_origin': self.name, + 'invoice_line_ids': [(fields.Command.create({ + 'name': 'Invoice For Insurance Claim', + 'quantity': 1, + 'price_unit': self.amount, + 'account_id': 41, + }))], + }) + self.invoice_id = invoice_val diff --git a/insurance_management_cybro/models/employee_details.py b/insurance_management_cybro/models/employee_details.py new file mode 100755 index 000000000..29acc82d2 --- /dev/null +++ b/insurance_management_cybro/models/employee_details.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Jumana Haseen @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +import re +from odoo import api, fields, models, _ +from odoo.exceptions import UserError, ValidationError + + +class EmployeeDetails(models.Model): + """This class creates a model 'employee.details' and added fields """ + _name = 'employee.details' + _description = "Employee Details" + + name = fields.Char(string='Name', required=True, + help="Name of the employee") + user_id = fields.Many2one( + 'res.users', string='Related User', copy=False, + help="Related user") + sex = fields.Selection( + [('male', 'Male'), ('female', 'Female'), ('others', 'Others')], + help="Select the sex of the employee") + phone = fields.Char(string='Phone Number', help="Phone number of employee", + required=True) + salary_type = fields.Selection( + [('fixed', 'Fixed'), ('commission', 'Commission'), ('both', 'Both')], + default='fixed', required=True, help="Select the salary type") + currency_id = fields.Many2one( + 'res.currency', string='Currency', required=True, + default=lambda self: self.env.user.company_id.currency_id.id, + help="Select the currency") + base_salary = fields.Monetary(string='Base Salary', + help="Give the base salary of employee") + last_salary_date = fields.Date(string='Last Payment On', copy=False, + help="Last salary paid date") + insurance_ids = fields.One2many('insurance.details', + 'employee_id', + string='Last Details', readonly=True, + help="Insurance details created " + "by employee") + note_field = fields.Html(string='Comment', + help="Give notes,if any") + invoice_id = fields.Many2one( + 'account.move', string='Last payment', copy=False, + readonly=True, + help="Invoice of last payment") + + def action_salary_payment(self): + """This function raises a user error if state is draft and + user error when base salary is less + and creates invoice with corresponding details given""" + if self.invoice_id: + if self.invoice_id.state == 'draft': + raise UserError(_("You must validate the last payment made in " + "order to create a new payment")) + amount = 0.0 + if self.salary_type == 'fixed': + amount = self.base_salary + if self.base_salary == 0.0: + raise UserError(_("Amount should be greater than zero")) + elif self.salary_type == 'commission': + for ins in self.insurance_ids: + if self.last_salary_date: + if ins.start_date > self.last_salary_date: + amount += (ins.commission_rate * ins.amount) / 100 + else: + for ins in self.insurance_ids: + if self.last_salary_date: + if ins.start_date > self.last_salary_date: + amount += ((ins.commission_rate * ins.amount) / 100 + + self.base_salary) + invoice_date = self.env['account.move'].sudo().create({ + 'move_type': 'in_invoice', + 'invoice_date': fields.Date.context_today(self), + 'partner_id': self.user_id.partner_id.id, + 'invoice_user_id': self.env.user.id, + 'invoice_origin': self.name, + 'invoice_line_ids': [(fields.Command.create({ + 'name': 'Invoice For Salary Payment', + 'quantity': 1, + 'price_unit': amount, + 'account_id': 41, + }))], + }) + self.sudo().write({ + 'invoice_id': invoice_date.id, + 'last_salary_date': fields.Date.context_today(self), + }) + + @api.constrains('phone') + def check_phone(self): + """ Make sure phone contains only 10 digits """ + for rec in self: + if not re.match('^[0-9]{10}$', rec.phone): + raise ValidationError( + _('Phone number should contain exactly 10 digits and only ' + 'numbers are allowed')) diff --git a/insurance_management_cybro/models/insurance_details.py b/insurance_management_cybro/models/insurance_details.py new file mode 100755 index 000000000..0eb6553ed --- /dev/null +++ b/insurance_management_cybro/models/insurance_details.py @@ -0,0 +1,170 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Jumana Haseen @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models, _, Command +from odoo.exceptions import UserError, ValidationError + + +class InsuranceDetails(models.Model): + """This class creates a model 'insurance.details' and added fields """ + _name = 'insurance.details' + _description = "Insurance Details" + + name = fields.Char( + string='Name', required=True, copy=False, readonly=True, index=True, + default=lambda self: _('New'), help="Sequence of insurance created") + partner_id = fields.Many2one('res.partner', string='Customer', + required=True, + help="Partner related to insurance") + start_date = fields.Date( + string='Date Started', default=fields.Date.context_today, required=True, + help="Start date of insurance") + close_date = fields.Date(string='Date Closed', readonly=True, + help="End date of insurance") + invoice_ids = fields.One2many('account.move', 'insurance_id', + string='Invoices', readonly=True, + help="Invoices related to insurance ") + employee_id = fields.Many2one( + 'employee.details', string='Agent', required=True, + help="Agent related to the insurance") + commission_rate = fields.Float(string='Commission Percentage', + help="Give the commission rate of" + " insurance to the agent",) + policy_id = fields.Many2one( + 'policy.details', string='Policy', required=True, + help="Select the policy details and the policy preferred") + payment_type = fields.Selection( + [('fixed', 'Fixed'), ('installment', 'Installment')], + required=True, default='fixed', help="Select the policy type") + policy_duration = fields.Integer(string='Duration in months', required=True, + help="Specify the policy duration to" + " which this policy exists") + currency_id = fields.Many2one( + 'res.currency', string='Currency', required=True, + default=lambda self: self.env.user.company_id.currency_id.id, + help="Give the currency") + amount = fields.Monetary(related='policy_id.amount', string='Amount', + help="The amount for the policy based " + "on policy selected") + amount_installment = fields.Monetary(string="Installment Amount", + compute="_compute_amount", + required=True, + help="Give the installment" + " amount for the policy") + amount_remaining = fields.Monetary(string='Amount remaining', + compute='_compute_amount_remaining') + state = fields.Selection( + [('draft', 'Draft'), ('confirmed', 'Confirmed'), ('closed', 'Closed')], + required=True, default='draft', + help="State of insurance") + hide_inv_button = fields.Boolean(copy=False) + note_field = fields.Html(string='Comment', help="Give the notes") + policy_number = fields.Integer(string="Policy Number", required=True, + help="Policy number is a unique number that" + "an insurance company uses to identify" + "you as a policyholder") + + @api.depends('amount', 'policy_duration') + def _compute_amount(self): + for record in self: + if record.policy_duration != 0: + record.amount_installment = ( + record.amount / record.policy_duration) + else: + record.amount_installment = 0.0 + + @api.depends('amount', 'amount_installment', 'invoice_ids.amount_total') + def _compute_amount_remaining(self): + for record in self: + total_invoice_amount = sum( + record.invoice_ids.mapped('amount_total')) + total_amount = record.amount + record.amount_remaining = total_amount - total_invoice_amount + + @api.constrains('commission_rate') + def _check_commission_rate(self): + """This function defines a constraint that ensures the ' + commission_rate' attribute of objects meets certain criteria. + If any object violates the constraint by having a 'commission_rate' + that falls outside the range of 1 to 100, a validation error + is raised, """ + if self.filtered( + lambda reward: ( + reward.commission_rate < 0 or reward.commission_rate > + 100)): + raise ValidationError( + _('Commission Percentage should be between 1-100')) + + @api.constrains('policy_number') + def _check_policy_number(self): + """This function checks if policy number is not added,validation error + occurs""" + if not self.policy_number: + raise ValidationError( + _('Please add the policy number')) + + def action_confirm_insurance(self): + """This function creates a validation error if amount not + greater than zero""" + if self.amount > 0: + self.state = 'confirmed' + self.hide_inv_button = True + else: + raise UserError(_("Amount should be greater than zero")) + + def action_create_invoice(self): + """Function to create invoice with corresponding details""" + if self.payment_type == 'fixed': + self.hide_inv_button = False + + created_invoice = self.env['account.move'].sudo().create({ + 'move_type': 'out_invoice', + 'invoice_date': fields.Date.context_today(self), + 'partner_id': self.partner_id.id, + 'invoice_user_id': self.env.user.id, + 'invoice_origin': self.name, + 'invoice_line_ids': [(fields.Command.create({ + 'name': 'Invoice For Insurance', + 'quantity': 1, + 'price_unit': self.amount if self.payment_type == 'fixed' else + self.amount_installment, + 'account_id': 41, + }))], + }) + self.write({'invoice_ids': [Command.link(created_invoice.id)]}) + + def action_close_insurance(self): + """Function on button to close the paid invoices or else raise + user error""" + for records in self.invoice_ids: + if records.state == 'paid': + raise UserError(_("All invoices must be paid")) + self.state = 'closed' + self.close_date = fields.Date.context_today(self) + self.hide_inv_button = False + + @api.model + def create(self, vals): + """Function to create sequence""" + if vals.get('name', 'New') == 'New': + vals['name'] = self.env['ir.sequence'].next_by_code( + 'insurance.details') or 'New' + return super(InsuranceDetails, self).create(vals) diff --git a/insurance_management_cybro/models/payment_type.py b/insurance_management_cybro/models/payment_type.py new file mode 100644 index 000000000..a84ba0792 --- /dev/null +++ b/insurance_management_cybro/models/payment_type.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Jumana Haseen @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class PaymentType(models.Model): + _name = 'payment.type' + _description = 'Payment Type' + + name = fields.Char(string="Payment Type", + help="Select the policy type") diff --git a/insurance_management_cybro/models/policy_details.py b/insurance_management_cybro/models/policy_details.py new file mode 100755 index 000000000..239a912a0 --- /dev/null +++ b/insurance_management_cybro/models/policy_details.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Jumana Haseen @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class PolicyDetails(models.Model): + """This class creates a model 'policy.details' and added fields """ + _name = 'policy.details' + _description = "Policy Details" + + name = fields.Char(string='Name', required=True, + help="Give the policy name") + policy_type_id = fields.Many2one( + 'policy.type', string='Policy Type', required=True, + help="Select the policy type") + payment_type_ids = fields.Many2many('payment.type', + help="Select the policy types") + currency_id = fields.Many2one( + 'res.currency', string='Currency', required=True, + default=lambda self: self.env.user.company_id.currency_id.id, + help="Select the currency") + amount = fields.Monetary(string='Amount', required=True, + help="Give the amount for the policy") + note_field = fields.Html(string='Comment', help="Specify the comments") diff --git a/insurance_management_cybro/models/policy_type.py b/insurance_management_cybro/models/policy_type.py new file mode 100644 index 000000000..2a62f8eb8 --- /dev/null +++ b/insurance_management_cybro/models/policy_type.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Jumana Haseen @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class PolicyType(models.Model): + """This class creates a model 'policy.type' and added fields """ + _name = 'policy.type' + _description = "Policy Type" + + name = fields.Char(string='Name', help="Give the policy type") diff --git a/insurance_management_cybro/security/ir.model.access.csv b/insurance_management_cybro/security/ir.model.access.csv new file mode 100755 index 000000000..0ed525885 --- /dev/null +++ b/insurance_management_cybro/security/ir.model.access.csv @@ -0,0 +1,7 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_claim_details_user,claim.details.user,model_claim_details,base.group_user,1,1,1,1 +access_employee_details_user,employee.details.user,model_employee_details,base.group_user,1,1,1,1 +access_insurance_details_user,insurance.details.user,model_insurance_details,base.group_user,1,1,1,1 +access_policy_details_user,policy.details.user,model_policy_details,base.group_user,1,1,1,1 +access_policy_type_user,policy.type.user,model_policy_type,base.group_user,1,1,1,1 +access_payment_type_user,payment.type.user,model_payment_type,base.group_user,1,1,1,1 diff --git a/insurance_management_cybro/static/description/assets/icons/capture (1).png b/insurance_management_cybro/static/description/assets/icons/capture (1).png new file mode 100644 index 000000000..8824deafc Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/capture (1).png differ diff --git a/insurance_management_cybro/static/description/assets/icons/check.png b/insurance_management_cybro/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/check.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/chevron.png b/insurance_management_cybro/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/chevron.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/cogs.png b/insurance_management_cybro/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/cogs.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/consultation.png b/insurance_management_cybro/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/consultation.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/ecom-black.png b/insurance_management_cybro/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/ecom-black.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/education-black.png b/insurance_management_cybro/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/education-black.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/hotel-black.png b/insurance_management_cybro/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/hotel-black.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/img.png b/insurance_management_cybro/static/description/assets/icons/img.png new file mode 100644 index 000000000..70197f477 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/img.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/license.png b/insurance_management_cybro/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/license.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/lifebuoy.png b/insurance_management_cybro/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/lifebuoy.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/manufacturing-black.png b/insurance_management_cybro/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/manufacturing-black.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/photo-capture.png b/insurance_management_cybro/static/description/assets/icons/photo-capture.png new file mode 100644 index 000000000..06c111758 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/photo-capture.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/pos-black.png b/insurance_management_cybro/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/pos-black.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/puzzle.png b/insurance_management_cybro/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/puzzle.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/restaurant-black.png b/insurance_management_cybro/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/restaurant-black.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/service-black.png b/insurance_management_cybro/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/service-black.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/trading-black.png b/insurance_management_cybro/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/trading-black.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/training.png b/insurance_management_cybro/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/training.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/update.png b/insurance_management_cybro/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/update.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/user.png b/insurance_management_cybro/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/user.png differ diff --git a/insurance_management_cybro/static/description/assets/icons/wrench.png b/insurance_management_cybro/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/wrench.png differ diff --git a/insurance_management_cybro/static/description/assets/misc/Cybrosys R.png b/insurance_management_cybro/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/misc/Cybrosys R.png differ diff --git a/insurance_management_cybro/static/description/assets/misc/email.svg b/insurance_management_cybro/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/insurance_management_cybro/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/insurance_management_cybro/static/description/assets/misc/phone.svg b/insurance_management_cybro/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/insurance_management_cybro/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/insurance_management_cybro/static/description/assets/misc/star (1) 2.svg b/insurance_management_cybro/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/insurance_management_cybro/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/insurance_management_cybro/static/description/assets/misc/support (1) 1.svg b/insurance_management_cybro/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/insurance_management_cybro/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/insurance_management_cybro/static/description/assets/misc/support-email.svg b/insurance_management_cybro/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/insurance_management_cybro/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/insurance_management_cybro/static/description/assets/misc/tick-mark.svg b/insurance_management_cybro/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/insurance_management_cybro/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/insurance_management_cybro/static/description/assets/misc/whatsapp 1.svg b/insurance_management_cybro/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/insurance_management_cybro/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/insurance_management_cybro/static/description/assets/misc/whatsapp.svg b/insurance_management_cybro/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/insurance_management_cybro/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/insurance_management_cybro/static/description/assets/modules/1.png b/insurance_management_cybro/static/description/assets/modules/1.png new file mode 100644 index 000000000..64d47fed4 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/modules/1.png differ diff --git a/insurance_management_cybro/static/description/assets/modules/2.png b/insurance_management_cybro/static/description/assets/modules/2.png new file mode 100644 index 000000000..1747140bd Binary files /dev/null and b/insurance_management_cybro/static/description/assets/modules/2.png differ diff --git a/insurance_management_cybro/static/description/assets/modules/3.png b/insurance_management_cybro/static/description/assets/modules/3.png new file mode 100644 index 000000000..3bf448d7a Binary files /dev/null and b/insurance_management_cybro/static/description/assets/modules/3.png differ diff --git a/insurance_management_cybro/static/description/assets/modules/4.png b/insurance_management_cybro/static/description/assets/modules/4.png new file mode 100644 index 000000000..7b87c8afb Binary files /dev/null and b/insurance_management_cybro/static/description/assets/modules/4.png differ diff --git a/insurance_management_cybro/static/description/assets/modules/5.png b/insurance_management_cybro/static/description/assets/modules/5.png new file mode 100644 index 000000000..6a6cbf40e Binary files /dev/null and b/insurance_management_cybro/static/description/assets/modules/5.png differ diff --git a/insurance_management_cybro/static/description/assets/modules/6.png b/insurance_management_cybro/static/description/assets/modules/6.png new file mode 100644 index 000000000..8a2871ea0 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/modules/6.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/1.png b/insurance_management_cybro/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..2593ad75c Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/1.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/10.png b/insurance_management_cybro/static/description/assets/screenshots/10.png new file mode 100644 index 000000000..032852f21 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/10.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/11.png b/insurance_management_cybro/static/description/assets/screenshots/11.png new file mode 100644 index 000000000..e5a6784a6 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/11.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/12.png b/insurance_management_cybro/static/description/assets/screenshots/12.png new file mode 100644 index 000000000..530d153e4 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/12.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/13.png b/insurance_management_cybro/static/description/assets/screenshots/13.png new file mode 100644 index 000000000..aafdaf58b Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/13.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/14.png b/insurance_management_cybro/static/description/assets/screenshots/14.png new file mode 100644 index 000000000..54c552030 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/14.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/15.png b/insurance_management_cybro/static/description/assets/screenshots/15.png new file mode 100644 index 000000000..c5c324ff3 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/15.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/16.png b/insurance_management_cybro/static/description/assets/screenshots/16.png new file mode 100644 index 000000000..7060a2b8d Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/16.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/17.png b/insurance_management_cybro/static/description/assets/screenshots/17.png new file mode 100644 index 000000000..85edefead Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/17.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/18.png b/insurance_management_cybro/static/description/assets/screenshots/18.png new file mode 100644 index 000000000..20261bc6b Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/18.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/19.png b/insurance_management_cybro/static/description/assets/screenshots/19.png new file mode 100644 index 000000000..da68a6779 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/19.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/2.png b/insurance_management_cybro/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..ff956256f Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/2.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/20.png b/insurance_management_cybro/static/description/assets/screenshots/20.png new file mode 100644 index 000000000..420788315 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/20.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/21.png b/insurance_management_cybro/static/description/assets/screenshots/21.png new file mode 100644 index 000000000..540f95c56 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/21.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/22.png b/insurance_management_cybro/static/description/assets/screenshots/22.png new file mode 100644 index 000000000..9804b3962 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/22.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/3.png b/insurance_management_cybro/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..1de72603c Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/3.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/4.png b/insurance_management_cybro/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..d04f0caad Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/4.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/4new.png b/insurance_management_cybro/static/description/assets/screenshots/4new.png new file mode 100644 index 000000000..c4ed6d14e Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/4new.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/5.png b/insurance_management_cybro/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..5f4878479 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/5.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/6.png b/insurance_management_cybro/static/description/assets/screenshots/6.png new file mode 100644 index 000000000..3d85a589d Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/6.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/6new.png b/insurance_management_cybro/static/description/assets/screenshots/6new.png new file mode 100644 index 000000000..6cd05fe99 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/6new.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/7.png b/insurance_management_cybro/static/description/assets/screenshots/7.png new file mode 100644 index 000000000..58c3feb35 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/7.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/8.png b/insurance_management_cybro/static/description/assets/screenshots/8.png new file mode 100644 index 000000000..9b5c458f4 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/8.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/9.png b/insurance_management_cybro/static/description/assets/screenshots/9.png new file mode 100644 index 000000000..9d6c2a00d Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/9.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/hero.gif b/insurance_management_cybro/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..cf7eef672 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/hero.gif differ diff --git a/insurance_management_cybro/static/description/banner.png b/insurance_management_cybro/static/description/banner.png new file mode 100644 index 000000000..7cdd530f0 Binary files /dev/null and b/insurance_management_cybro/static/description/banner.png differ diff --git a/insurance_management_cybro/static/description/icon.png b/insurance_management_cybro/static/description/icon.png new file mode 100644 index 000000000..55044a5c0 Binary files /dev/null and b/insurance_management_cybro/static/description/icon.png differ diff --git a/insurance_management_cybro/static/description/index.html b/insurance_management_cybro/static/description/index.html new file mode 100644 index 000000000..c3927113f --- /dev/null +++ b/insurance_management_cybro/static/description/index.html @@ -0,0 +1,1214 @@ + + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+
+

+ Insurance Management

+

+ Module allows the user to create insurance policies,manage + the insurance claims and the salary of agents with or + without the commission. +

+
+ +
+
+
+
+
+

+ Key Highlights +

+
+
+
+
+
+ +
+
+

+ Create insurance policies for customers

+

Insurances can + be + created under these policies +

+
+
+
+
+
+
+ +
+
+

+ Manage insurance claims and details.

+

We can manage + the + insurance claims and the + salary of agents with or without the commission. +

+
+
+
+
+
+
+ +
+
+

+ Create accounting entries

+

Approval + Invoices/ Bills can be created for insurance, + claims and the + salary/commission of agents. +

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

+ View and manage customers

+

+ Configuration > + Customers.

+
+
+
+
+
+
+ +
+
+

+ Manage policy types,create new policy + types

+

+ Configuration > + Policy Types

+
+
+
+
+
+
+ +
+
+

+ Manage Payment Types of different + policies

+
+
+
+
+
+
+ +
+
+

+ Policy Management

+

+ Create new Policy + with Policy type, Payment type and policy + amount under configuration.

+
+
+
+
+
+
+ +
+
+

+ Employee Management +

+

+ Create new agent + and add the details. The salary type can be + selected as fixed, commission or both(salary + + commission) and specify the Base Salary + ,Last Payment date, that is date on last + payment, + Related user for giving salary payment. + Salary Payment button will be enabled after + selecting + the Related User.Now salary type is selected + Fixed and Payment type is fixed. + Go + to Agent > Agent.

+

+ Salary Type:Fixed

+

+ Salary will be the Basic Salary

+

+ Salary Type:Commission

+

+ Salary will be the Commission on each + Insurance created

+

+ Salary Type:Both

+

+ Salary will be + Basic Salary +Commission on each Insurance + created

+ +
+
+
+
+
+
+ +
+
+

+ Manage insurances with Payment type as + fixed

+

+ Insurance Management -> Insurance: + Create insurance to customers based on a + policy. Add the + agent and the commission of agent in + percentage, payment type fixed,duration in + months. + The insurance can be confirmed after adding + all required + details. Invoice can be created for the + insurance in single invoice.

+
+
+
+
+
+
+ +
+
+

+ Create invoices and confirm

+

+ Insurance Management -> Insurance: + The insurance can be confirmed after adding + all required + details. Invoice can be created for the + insurance and confirm + insurances and register the payment

+
+
+
+
+
+
+ +
+
+

+ Register payment and Post Invoice

+

+
+
+
+
+
+
+ +
+
+

+ Payment completed and Confirmed + Insurance

+

+ Now the invoice has paid and status is + posted and state is confirmed state + and the sequence also created

+
+
+
+
+
+
+ +
+
+

+ Employee Management

+

+ The insurance details created by the agent + can be + seen inside Insurance details under + agent

+
+
+
+
+
+
+ +
+
+

+ Salary Payment

+

+ On clicking salary payment we + can see a draft bill on last payment

+
+
+
+
+
+
+ +
+
+

+ Salary Payment by creating bill

+

+ On clicking draft bill we + can pay the agent the basic salary as + payment type is fixed on each insurance + calculated inside insurance + management

+
+
+
+
+
+
+ +
+
+

+ Confirm and Salary payment completed

+

+ Confirming the bill and register + the payment,we can see the bill + reference

+
+
+
+
+
+
+ +
+
+

+ Manage insurances with Payment type as + Installment

+

+ Insurance Management -> Insurance: + Create insurance to customers based on a + policy. Add the + agent and payment type as + Installment,duration in months. + The insurance can be confirmed after adding + all required + details. Invoice can be created for the + insurance in multiple invoice.

+

+ Installment amount is calculated from Total + policy amount divided by the duration in + months.Amount remaining calculated from + Amount and invoiced total amount.Confirm the + Insurance +

+
+
+
+
+
+
+ +
+
+

+ Confirm and Create Invoice

+

+ Confirming insurance created and create + invoice, after clicking on invoice and + confirm and post invoice,create invoice + button is again visible to pay the insurance + through installments and remaining amount is + also calculated

+
+
+
+
+
+
+ +
+
+

+ Invoices of Payment type as + Installment

+

+

+
+
+
+
+
+
+ +
+
+

+ Salary type as Commission

+

+ Create an agent with salary type as + Commission. +

+
+
+
+
+
+
+ +
+
+

+ Create Insurance for salary payment as + Commission

+

+ Create an insurance with an agent with + salary type as commission, confirm it and + post the invoice +

+
+
+
+
+
+
+ +
+
+

+ Salary Payment for the agent

+

+ Go to Employee Management ,select the agent + and click on salary payment, a draft bill is + created +

+
+
+
+
+
+
+ +
+
+

+ Salary payment as commission only

+

+ Click on created draft bill and commission + as commission rate of insurance is + calculated as salary,confirm it as pay it +

+
+
+
+
+
+
+ +
+
+

+ Salary payment as both

+

+ Create an agent and salary type as both +

+
+
+
+
+
+
+ +
+
+

+ Insurance management:Create insurance

+

+ Create an insurance and specify the + commission rate as salary is sum of basic + salary and commission from insurances +

+
+
+
+
+
+
+ +
+
+

+ Salary payment for salary type both

+

+ Go to Employee Management and make salary + payment,creates a draft bill and clicking on + that we can see,both basic salary and + commission rate of insurance has been summed + to the salary +

+
+
+
+
+
+
+ +
+
+

+ Manage claims and create insurance to + customers based on a policy

+

+ Insurance Management -> Claims: + Create insurance to customers based on a + policy. Add the + agent and the commission of agent in + percentage. + The insurance can be confirmed after adding + all required + details. Invoice can be created for the + insurance.

+
+
+
+
+
+
+
    +
  • + Create insurance + policies for customers +
  • +
  • + Manage insurance + claims + Documents. +
  • +
  • + Manage + Agents(Employee)and add the details. +
  • +
  • + Insurance + Management +
      +
    • This module allows the user to + create insurance policies. + Insurances can be created under these + policies. We can manage the + insurance claims and the + salary of agents with or without the + commission. +
    • +
    +
  • + +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on: 12th December 2023 +
+

+ Initial Commit for Insurance Management.

+
+
+
+
+
+
+
+

+ Related Products

+
+
+ +
+
+

+ Our Services

+
+
+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Customization

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Implementation

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Support

+
+
+
+
+
+
+ service-icon +
+
+

Hire + Odoo Developer

+
+
+
+
+ +
+
+ service-icon +
+
+

Odoo + Integration

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Migration

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Consultancy

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Implementation

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Licensing Consultancy

+
+
+
+
+
+
+

+ Our Industries

+
+
+
+
+
+
+ +

Trading

+

Easily procure and sell your products

+
+
+
+
+ +

POS

+

Easy configuration and convivial experience

+
+
+
+
+ +

+ Education

+

A platform for educational management

+
+
+
+
+ +

+ Manufacturing

+

Plan, track and schedule your operations

+
+
+
+
+ +

E-commerce & + Website

+

Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +

Service + Management

+

Keep track of services and invoice

+
+
+
+
+ +

+ Restaurant

+

Run your bar or restaurant methodically

+
+
+
+
+ +

Hotel + Management

+

An all-inclusive hotel management application

+
+
+
+
+
+
+

+ Support

+
+
+
+
+
+
+
+ +
+ Need + Help? +

Got + questions or need help? Get in touch.

+
odoo@cybrosys.com +
+
+
+
+
+
+
+
+ +
+ WhatsApp +

Say hi to + us on WhatsApp!

+
+91 + 99456767686 +
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/insurance_management_cybro/static/src/components/account_move_form/account_move_form.js b/insurance_management_cybro/static/src/components/account_move_form/account_move_form.js new file mode 100644 index 000000000..cc6070971 --- /dev/null +++ b/insurance_management_cybro/static/src/components/account_move_form/account_move_form.js @@ -0,0 +1,75 @@ +/** @odoo-module **/ + +import { registry } from "@web/core/registry"; +import { createElement, append } from "@web/core/utils/xml"; +import { Notebook } from "@web/core/notebook/notebook"; +import { formView } from "@web/views/form/form_view"; +import { FormCompiler } from "@web/views/form/form_compiler"; +import { FormRenderer } from "@web/views/form/form_renderer"; +import { FormController } from '@web/views/form/form_controller'; +import { useService } from "@web/core/utils/hooks"; + +export class AccountMoveController extends FormController { + setup() { + super.setup(); + this.account_move_service = useService("account_move"); + } + + async deleteRecord() { + if ( !await this.account_move_service.addDeletionDialog(this, this.model.root.resId)) { + return super.deleteRecord(...arguments); + } + } +}; + +export class AccountMoveFormNotebook extends Notebook { + async changeTabTo(page_id) { + if (this.props.onBeforeTabSwitch) { + await this.props.onBeforeTabSwitch(page_id); + } + this.state.currentPage = page_id; + } +} +AccountMoveFormNotebook.template = "account.AccountMoveFormNotebook"; +AccountMoveFormNotebook.props = { + ...Notebook.props, + onBeforeTabSwitch: { type: Function, optional: true }, +} +export class AccountMoveFormRenderer extends FormRenderer { + async saveBeforeTabChange() { + if (this.props.record.isInEdition && await this.props.record.isDirty()) { + const contentEl = document.querySelector('.o_content'); + const scrollPos = contentEl.scrollTop; + await this.props.record.save(); + if (scrollPos) { + contentEl.scrollTop = scrollPos; + } + } + } +} +AccountMoveFormRenderer.components = { + ...FormRenderer.components, + AccountMoveFormNotebook: AccountMoveFormNotebook, +} +export class AccountMoveFormCompiler extends FormCompiler { + compileNotebook(el, params) { + const originalNoteBook = super.compileNotebook(...arguments); + const noteBook = createElement("AccountMoveFormNotebook"); + for (const attr of originalNoteBook.attributes) { + noteBook.setAttribute(attr.name, attr.value); + } + noteBook.setAttribute("onBeforeTabSwitch", "() => __comp__.saveBeforeTabChange()"); + const slots = originalNoteBook.childNodes; + append(noteBook, [...slots]); + return noteBook; + } +} + +export const AccountMoveFormView = { + ...formView, + Renderer: AccountMoveFormRenderer, + Compiler: AccountMoveFormCompiler, + Controller: AccountMoveController, +}; + +registry.category("views").add("account_move_form", AccountMoveFormView); diff --git a/insurance_management_cybro/static/src/components/account_move_form/account_move_form_notebook.xml b/insurance_management_cybro/static/src/components/account_move_form/account_move_form_notebook.xml new file mode 100644 index 000000000..a53e2dd85 --- /dev/null +++ b/insurance_management_cybro/static/src/components/account_move_form/account_move_form_notebook.xml @@ -0,0 +1,9 @@ + + + + + + () => this.changeTabTo(navItem[0]) + + + diff --git a/insurance_management_cybro/views/claim_details_views.xml b/insurance_management_cybro/views/claim_details_views.xml new file mode 100755 index 000000000..dad7a2fab --- /dev/null +++ b/insurance_management_cybro/views/claim_details_views.xml @@ -0,0 +1,86 @@ + + + + + claim.details.view.form + claim.details + +
+
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + claim.details.view.tree + claim.details + + + + + + + + + + + + + + claim.details.view.search + claim.details + + + + + + + + + + + + + + + Claim Management + claim.details + tree,form + +

+ You haven't created any claims yet. +

+
+
+
diff --git a/insurance_management_cybro/views/employee_details_views.xml b/insurance_management_cybro/views/employee_details_views.xml new file mode 100755 index 000000000..5ae7bfabe --- /dev/null +++ b/insurance_management_cybro/views/employee_details_views.xml @@ -0,0 +1,88 @@ + + + + + employee.details.view.form + employee.details + +
+
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + employee.details.view.tree + employee.details + + + + + + + + + + + + + Employee Management + employee.details + tree,form + +

+ You haven't created any employee yet. +

+
+
+ + + employee.details.view.search + employee.details + + + + + + + + + + + +
diff --git a/insurance_management_cybro/views/insurance_details_views.xml b/insurance_management_cybro/views/insurance_details_views.xml new file mode 100755 index 000000000..2592fd940 --- /dev/null +++ b/insurance_management_cybro/views/insurance_details_views.xml @@ -0,0 +1,107 @@ + + + + + insurance.details.view.form + insurance.details + +
+
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + insurance.details.view.tree + insurance.details + + + + + + + + + + + + + + + Insurance Management + insurance.details + tree,form + +

+ You haven't created any insurance yet. +

+
+
+ + + insurance.details.view.search + insurance.details + + + + + + + + + + + +
diff --git a/insurance_management_cybro/views/insurance_management_menus.xml b/insurance_management_cybro/views/insurance_management_menus.xml new file mode 100755 index 000000000..1579e50e0 --- /dev/null +++ b/insurance_management_cybro/views/insurance_management_menus.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/insurance_management_cybro/views/payment_type_views.xml b/insurance_management_cybro/views/payment_type_views.xml new file mode 100644 index 000000000..ab026444d --- /dev/null +++ b/insurance_management_cybro/views/payment_type_views.xml @@ -0,0 +1,35 @@ + + + + payment.type.form + payment.type + +
+ + + +
+
+
+ + payment.type.tree + payment.type + + + + + + + + Payment Type + ir.actions.act_window + payment.type + tree,form + + + + +
diff --git a/insurance_management_cybro/views/policy_details_views.xml b/insurance_management_cybro/views/policy_details_views.xml new file mode 100755 index 000000000..4ff25af76 --- /dev/null +++ b/insurance_management_cybro/views/policy_details_views.xml @@ -0,0 +1,60 @@ + + + + + policy.details.view.form + policy.details + +
+ +
+

+ +

+
+ + + + + + + + + + + + + + + +
+
+
+
+ + + policy.details.view.tree + policy.details + + + + + + + + + + + + Policy Management + policy.details + tree,form + +

+ You haven't created any policy yet. +

+
+
+
diff --git a/insurance_management_cybro/views/policy_type_views.xml b/insurance_management_cybro/views/policy_type_views.xml new file mode 100644 index 000000000..83d514ede --- /dev/null +++ b/insurance_management_cybro/views/policy_type_views.xml @@ -0,0 +1,42 @@ + + + + + policy.type.view.form + policy.type + +
+ + + + + +
+
+
+ + + policy.type.view.tree + policy.type + + + + + + + + + Policy Types + policy.type + tree,form + +

+ You haven't created any policy yet. +

+
+
+ + +