diff --git a/insurance_management_cybro/README.rst b/insurance_management_cybro/README.rst new file mode 100644 index 000000000..f060ed70c --- /dev/null +++ b/insurance_management_cybro/README.rst @@ -0,0 +1,48 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://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 `__ + +Credits +------- +* Developer: Niyas Raphy@cybrosys + Sreejith P @cybrosys + version 13: Nimisha Murali @cybrosys + version 14: Muhammed Nafih @cybrosys + version 15: Abhishek E T @cybrosys + +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..b91f792dd --- /dev/null +++ b/insurance_management_cybro/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions(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..7a5daa320 --- /dev/null +++ b/insurance_management_cybro/__manifest__.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions(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': '15.0.1.0.0', + 'summary': """Insurance Management & Operations""", + 'description': """Insurance Management""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'category': 'Industries', + 'depends': ['account', 'base'], + 'license': 'AGPL-3', + 'data': [ + 'security/ir.model.access.csv', + 'data/insurance_management_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' + ], + 'images': ['static/description/banner.png'], + 'installable': True, + 'application': True, + 'auto_install': False, +} diff --git a/insurance_management_cybro/data/insurance_management_data.xml b/insurance_management_cybro/data/insurance_management_data.xml new file mode 100755 index 000000000..4ad7ff3d5 --- /dev/null +++ b/insurance_management_cybro/data/insurance_management_data.xml @@ -0,0 +1,20 @@ + + + + + Insurance Details + insurance.details + INS/ + 3 + + + + + Claim Details + claim.details + CLM/ + 3 + + + + \ No newline at end of file diff --git a/insurance_management_cybro/doc/RELEASE_NOTES.md b/insurance_management_cybro/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..8f54fc32e --- /dev/null +++ b/insurance_management_cybro/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 11.11.2021 +#### Version 15.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..3f53482ee --- /dev/null +++ b/insurance_management_cybro/models/__init__.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions(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 account_move +from . import claim_details +from . import employee_details +from . import insurance_details +from . import policy_details diff --git a/insurance_management_cybro/models/account_move.py b/insurance_management_cybro/models/account_move.py new file mode 100644 index 000000000..882eeb86c --- /dev/null +++ b/insurance_management_cybro/models/account_move.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions(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): + _inherit = 'account.move' + + insurance_id = fields.Many2one('insurance.details', string='Insurance') + claim_id = fields.Many2one('claim.details', string='Insurance') diff --git a/insurance_management_cybro/models/claim_details.py b/insurance_management_cybro/models/claim_details.py new file mode 100755 index 000000000..48f184571 --- /dev/null +++ b/insurance_management_cybro/models/claim_details.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions(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): + _name = 'claim.details' + + name = fields.Char(string='Name', required=True, copy=False, + readonly=True, index=True, default=lambda self: _('New')) + name_2 = fields.Char( + string='Name 2', required=True, copy=False, readonly=True, index=True, + default=lambda self: _('New')) + insurance_id = fields.Many2one('insurance.details', required=True, + domain=[('state', '=', 'confirmed')], + help="Confirmed orders can be selected") + partner_id = fields.Many2one(related='insurance_id.partner_id', + string='Customer', readonly=True) + policy_id = fields.Many2one(related='insurance_id.policy_id', + string='Policy', readonly=True) + employee_id = fields.Many2one(related='insurance_id.employee_id', + string='Agent', readonly=True) + currency_id = fields.Many2one( + 'res.currency', string='Currency', required=True, + default=lambda self: self.env.user.company_id.currency_id.id) + amount = fields.Monetary(related='insurance_id.amount', string='Amount') + date_claimed = fields.Date( + string='Date Applied', default=fields.Date.context_today) + invoice_id = fields.Many2one('account.move', string='Invoiced', + readonly=True, copy=False) + note_field = fields.Html(string='Comment') + + @api.model + def create(self, vals): + 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): + 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': [(0, 0, { + '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..1c6edfcec --- /dev/null +++ b/insurance_management_cybro/models/employee_details.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions(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): + _name = 'employee.details' + + name = fields.Char(string='Name', required=True) + user_id = fields.Many2one( + 'res.users', string='Related User', copy=False) + sex = fields.Selection( + [('male', 'Male'), ('female', 'Female'), ('others', 'Others')]) + phone = fields.Char(string='Phone Number') + salary_type = fields.Selection( + [('fixed', 'Fixed'), ('commission', 'Commission'), ('both', 'Both')], + default='commission', required=True) + currency_id = fields.Many2one( + 'res.currency', string='Currency', required=True, + default=lambda self: self.env.user.company_id.currency_id.id) + base_salary = fields.Monetary(string='Base Salary') + last_salary_date = fields.Date(string='Last Payment On', copy=False) + insurance_ids = fields.One2many('insurance.details', 'employee_id', + string='Last Payment On', readonly=True) + note_field = fields.Html(string='Comment') + invoice_id = fields.Many2one( + 'account.move', string='Last payment', copy=False, readonly=True) + + def action_salary_payment(self): + 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.base_salary == 0.0: + raise UserError(_("Amount should be greater than zero")) + if self.salary_type == 'fixed': + amount = self.base_salary + 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: + amount = self.base_salary + for ins in self.insurance_ids: + if ins.start_date > self.last_salary_date: + amount += (ins.commission_rate * ins.amount) / 100 + 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, + 'claim_id': self.id, + 'invoice_origin': self.name, + 'invoice_line_ids': [(0, 0, { + 'name': 'Invoice For Insurance Claim', + '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 numbers""" + for rec in self: + if not re.match('^[0-9]*$', rec.phone): + raise ValidationError( + _('Only numbers are permitted in phone number')) diff --git a/insurance_management_cybro/models/insurance_details.py b/insurance_management_cybro/models/insurance_details.py new file mode 100755 index 000000000..3a6fa6eb2 --- /dev/null +++ b/insurance_management_cybro/models/insurance_details.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions(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, _ +from odoo.exceptions import UserError + + +class InsuranceDetails(models.Model): + _name = 'insurance.details' + + name = fields.Char( + string='Name', required=True, copy=False, readonly=True, index=True, + default=lambda self: _('New')) + partner_id = fields.Many2one('res.partner', string='Customer', + required=True) + start_date = fields.Date( + string='Date Started', default=fields.Date.context_today, required=True) + close_date = fields.Date(string='Date Closed', readonly=True) + invoice_ids = fields.One2many('account.move', 'insurance_id', + string='Invoices', readonly=True) + employee_id = fields.Many2one( + 'employee.details', string='Agent', required=True) + commission_rate = fields.Float(string='Commission Percentage') + policy_id = fields.Many2one( + 'policy.details', string='Policy', required=True) + currency_id = fields.Many2one( + 'res.currency', string='Currency', required=True, + default=lambda self: self.env.user.company_id.currency_id.id) + amount = fields.Monetary(related='policy_id.amount', string='Amount') + state = fields.Selection( + [('draft', 'Draft'), ('confirmed', 'Confirmed'), ('closed', 'Closed')], + required=True, default='draft') + hide_inv_button = fields.Boolean(copy=False) + note_field = fields.Html(string='Comment') + + def action_confirm_insurance(self): + 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): + 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': [(0, 0, { + 'name': 'Invoice For Insurance', + 'quantity': 1, + 'price_unit': self.amount, + 'account_id': 41, + })], + }) + self.invoice_ids = created_invoice + if self.policy_id.payment_type == 'fixed': + self.hide_inv_button = False + + def action_close_insurance(self): + 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): + 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/policy_details.py b/insurance_management_cybro/models/policy_details.py new file mode 100755 index 000000000..354ef0e97 --- /dev/null +++ b/insurance_management_cybro/models/policy_details.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions(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): + _name = 'policy.details' + + name = fields.Char(string='Name', required=True) + policy_type_id = fields.Many2one( + 'policy.type', string='Policy Type', required=True) + payment_type = fields.Selection( + [('fixed', 'Fixed'), ('installment', 'Installment')], + required=True, default='fixed') + currency_id = fields.Many2one( + 'res.currency', string='Currency', required=True, + default=lambda self: self.env.user.company_id.currency_id.id) + amount = fields.Monetary(string='Amount', required=True) + policy_duration = fields.Integer(string='Duration in Days', required=True) + note_field = fields.Html(string='Comment') + + +class PolicyType(models.Model): + _name = 'policy.type' + + name = fields.Char(string='Name') 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..88d364996 --- /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,claim.details,model_claim_details,base.group_user,1,1,1,1 +access_employee_details,employee.details,model_employee_details,base.group_user,1,1,1,1 +access_insurance_details,insurance.details,model_insurance_details,base.group_user,1,1,1,1 +access_policy_details,policy.details,model_policy_details,base.group_user,1,1,1,1 +access_policy_type,policy.type,model_policy_type,base.group_user,1,1,1,1 +access_account_move,account.move,model_account_move,base.group_user,1,1,1,1 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/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/logo.png b/insurance_management_cybro/static/description/assets/icons/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/insurance_management_cybro/static/description/assets/icons/logo.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/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/modules/approval_image.png b/insurance_management_cybro/static/description/assets/modules/approval_image.png new file mode 100644 index 000000000..84fe94e80 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/modules/approval_image.png differ diff --git a/insurance_management_cybro/static/description/assets/modules/budget_image.png b/insurance_management_cybro/static/description/assets/modules/budget_image.png new file mode 100644 index 000000000..fe6aa6fe4 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/modules/budget_image.png differ diff --git a/insurance_management_cybro/static/description/assets/modules/export_image.png b/insurance_management_cybro/static/description/assets/modules/export_image.png new file mode 100644 index 000000000..4e4ea0e51 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/modules/export_image.png differ diff --git a/insurance_management_cybro/static/description/assets/modules/magento_image.png b/insurance_management_cybro/static/description/assets/modules/magento_image.png new file mode 100644 index 000000000..39de0820f Binary files /dev/null and b/insurance_management_cybro/static/description/assets/modules/magento_image.png differ diff --git a/insurance_management_cybro/static/description/assets/modules/pos_image.png b/insurance_management_cybro/static/description/assets/modules/pos_image.png new file mode 100644 index 000000000..c5932894b Binary files /dev/null and b/insurance_management_cybro/static/description/assets/modules/pos_image.png differ diff --git a/insurance_management_cybro/static/description/assets/modules/shopify_image.png b/insurance_management_cybro/static/description/assets/modules/shopify_image.png new file mode 100644 index 000000000..c6d92c16d Binary files /dev/null and b/insurance_management_cybro/static/description/assets/modules/shopify_image.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/hero.png b/insurance_management_cybro/static/description/assets/screenshots/hero.png new file mode 100755 index 000000000..8da541136 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/hero.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-1.png b/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-1.png new file mode 100644 index 000000000..6af82c3a3 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-1.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-2.png b/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-2.png new file mode 100644 index 000000000..24040b6a2 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-2.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-3.png b/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-3.png new file mode 100644 index 000000000..3e22b7261 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-3.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-4.png b/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-4.png new file mode 100644 index 000000000..a8bc59501 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-4.png differ diff --git a/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-5.png b/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-5.png new file mode 100644 index 000000000..630b55a03 Binary files /dev/null and b/insurance_management_cybro/static/description/assets/screenshots/insurance_management_cybro-5.png 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..3f5e0a43a 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..9fcf283b1 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..e84e1c349 --- /dev/null +++ b/insurance_management_cybro/static/description/index.html @@ -0,0 +1,552 @@ +
+
+
+
+ +
+
+
+ Community +
+ + + +
+
+
+
+ +
+
+
+

+ Insurance Management +

+

+ A Module for Manage Insurance Business. +

+ +
+
+ + + +
+
+

+ Overview +

+
+ +
+

+ This module crafted by Cybrosys Technologies, 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. +

+
+
+ +
+
+

+ Configuration +

+
+
+

The accounting localization for the country has to be installed

+
+
+ +
+
+

+ Features +

+
+
+
+ +
+
+

Create insurance policies for customers

+
+
+
+
+ +
+
+

Manage insurance claims and details

+
+
+
+
+ +
+
+

Manage salary and commission of agents

+
+
+
+
+ +
+
+

Create accounting entries for all

+

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

+
+
+
+ +
+
+

+ Screenshots +

+
+
+

View and manage customers

+

Configuration -> Customers

+ +
+
+

Manage policies

+

Configuration -> Policies

+

Create new policies and add the policy details

+ +
+
+

Manage Agents(Employee)

+

Agent -> Agent

+

Create new agent and add the details. The salary type can be selected as fixed, commission or both(salary + commission). + The salary payment can be done where the salary is computed based on the salary type selected. The commission is + calculated based on the percentage mentioned in the insurances under the agent.

+ +
+
+

Manage insurances

+

Insurance Management -> Insurance

+

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.

+ +
+
+

Manage claims

+

Insurance Management -> Claims

+

Insurance claims can be created for the confirmed insurances. Bill can be created for the claim.

+ +
+
+ + +
+
+

Suggested Products

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

Our Services

+
+
+ +
+
+ +
+
+ Odoo Customization +
+
+ +
+
+ +
+
+ Odoo Implementation +
+
+ +
+
+ +
+
+ Odoo Support +
+
+ + +
+
+ +
+
+ Hire Odoo Developer +
+
+ +
+
+ +
+
+ Odoo Integration +
+
+ +
+
+ +
+
+ Odoo Migration +
+
+ + +
+
+ +
+
+ Odoo + Consultancy +
+
+ +
+
+ +
+
+ Odoo Implementation +
+
+ +
+
+ +
+
+ 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 +

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

Need Help?

+
+
+
+ + +
+ + + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+
+ + +
\ No newline at end of file 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..375815a2f --- /dev/null +++ b/insurance_management_cybro/views/claim_details_views.xml @@ -0,0 +1,69 @@ + + + + + claim.details.view.form + claim.details + +
+
+
+ +
+

+ +

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

+ You haven't created any claims yet. +

+
+
+ +
\ No newline at end of file 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..fddb2cb2f --- /dev/null +++ b/insurance_management_cybro/views/employee_details_views.xml @@ -0,0 +1,71 @@ + + + + + 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. +

+
+
+ +
\ No newline at end of file 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..d101ed024 --- /dev/null +++ b/insurance_management_cybro/views/insurance_details_views.xml @@ -0,0 +1,79 @@ + + + + + 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. +

+
+
+ +
\ No newline at end of file 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..1021af1ab --- /dev/null +++ b/insurance_management_cybro/views/insurance_management_menus.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + 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..2c8819e4f --- /dev/null +++ b/insurance_management_cybro/views/policy_details_views.xml @@ -0,0 +1,62 @@ + + + + + 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. +

+
+
+ +
\ No newline at end of file diff --git a/sale_purchase_automated/README.rst b/sale_purchase_automated/README.rst new file mode 100644 index 000000000..82cac10aa --- /dev/null +++ b/sale_purchase_automated/README.rst @@ -0,0 +1,40 @@ +Automate Sale And Purchase Orders +================================= +This module provides an option to automate the sale and purchase order. + +Configuration +============= +* The invoice policy should be set as 'Ordered Quantities' to automate invoice creation and printing. +* The accounting localization for the country has to be installed. + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developers: Nimisha Murali @cybrosys, Contact: odoo@cybrosys.com + version 14: Minhaj T @cybrosys, Contact: odoo@cybrosys.com + version 15: Abhishek E T @cybrosys, 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/sale_purchase_automated/__init__.py b/sale_purchase_automated/__init__.py new file mode 100644 index 000000000..15474fc0e --- /dev/null +++ b/sale_purchase_automated/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Nimisha Muralidhar (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/sale_purchase_automated/__manifest__.py b/sale_purchase_automated/__manifest__.py new file mode 100644 index 000000000..fc4cd5cc6 --- /dev/null +++ b/sale_purchase_automated/__manifest__.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Nimisha Muralidhar (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': 'Automate Sale And Purchase Orders', + 'version': '15.0.1.0.0', + 'category': 'Extra Tools', + 'summary': 'Automate the sale and purchase orders flow', + 'description': 'Automate sale and purchase orders flow', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'images': ['static/description/banner.png'], + 'website': 'https://www.cybrosys.com', + 'depends': ['account', 'base', 'purchase', 'sale_management'], + 'data': [ + 'views/purchase_views.xml', + 'views/res_config_settings_views.xml', + 'views/sale_order_views.xml' + ], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/sale_purchase_automated/doc/RELEASE_NOTES.md b/sale_purchase_automated/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..128424f46 --- /dev/null +++ b/sale_purchase_automated/doc/RELEASE_NOTES.md @@ -0,0 +1,10 @@ +## Module + +#### 11.11.2021 +#### Version 15.0.1.0.0 +#### ADD + +Initial commit for Automate Sale And Purchase Orders + + + diff --git a/sale_purchase_automated/models/__init__.py b/sale_purchase_automated/models/__init__.py new file mode 100644 index 000000000..3dc010411 --- /dev/null +++ b/sale_purchase_automated/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Nimisha Muralidhar (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 purchase +from . import res_config_settings +from . import sale_order diff --git a/sale_purchase_automated/models/purchase.py b/sale_purchase_automated/models/purchase.py new file mode 100644 index 000000000..4eac65719 --- /dev/null +++ b/sale_purchase_automated/models/purchase.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Nimisha Muralidhar (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 PurchaseOrder(models.Model): + _inherit = 'purchase.order' + + automate_print_bills = fields.Boolean( + 'Create Bills', help="Create bills with purchase orders") + + @api.model + def create(self, vals): + """Super the method create to confirm RFQ""" + res = super(PurchaseOrder, self).create(vals) + automate_purchase = self.env['ir.config_parameter'].sudo().get_param( + 'automate_purchase') + automate_print_bills = self.env['ir.config_parameter'].sudo().get_param( + 'automate_print_bills') + if automate_purchase: + res.button_confirm() + if automate_print_bills: + res.automate_print_bills = True + return res + else: + return res + + def action_print_bill(self): + """Method to print bill""" + data = self.invoice_ids + return self.env.ref('account.account_invoices').report_action(data) diff --git a/sale_purchase_automated/models/res_config_settings.py b/sale_purchase_automated/models/res_config_settings.py new file mode 100644 index 000000000..b07131ba2 --- /dev/null +++ b/sale_purchase_automated/models/res_config_settings.py @@ -0,0 +1,82 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Nimisha Muralidhar (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 ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + automate_purchase = fields.Boolean( + 'Confirm RFQ', default=False, help="Automate confirmation for RFQ") + automate_print_bills = fields.Boolean( + 'Print Bills', default=False, + help="Print bill from corresponding purchase order") + automate_sale = fields.Boolean( + 'Confirm Quotation', default=False, + help="Automate confirmation for quotation") + automate_invoice = fields.Boolean( + 'Create Invoice', default=False, help="Create invoices for sales order") + automate_validate_invoice = fields.Boolean( + 'Validate Invoice', default=False, + help="Automate validation of invoice") + automate_print_invoices = fields.Boolean( + 'Print Invoices', default=False, + help="Print invoice from corresponding sales order") + + @api.model + def get_values(self): + """Get values from the fields""" + res = super(ResConfigSettings, self).get_values() + res.update( + automate_purchase=self.env['ir.config_parameter'].sudo().get_param( + 'automate_purchase'), + automate_print_bills=self.env[ + 'ir.config_parameter'].sudo().get_param('automate_print_bills'), + automate_print_invoices=self.env[ + 'ir.config_parameter'].sudo().get_param( + 'automate_print_invoices'), + automate_sale=self.env['ir.config_parameter'].sudo().get_param( + 'automate_sale'), + automate_invoice=self.env['ir.config_parameter'].sudo().get_param( + 'automate_invoice'), + automate_validate_invoice=self.env[ + 'ir.config_parameter'].sudo().get_param( + 'automate_validate_invoice'), + ) + return res + + def set_values(self): + """Set values in the fields""" + super(ResConfigSettings, self).set_values() + self.env['ir.config_parameter'].sudo().set_param( + 'automate_purchase', self.automate_purchase) + self.env['ir.config_parameter'].sudo().set_param( + 'automate_print_bills', self.automate_print_bills) + self.env['ir.config_parameter'].sudo().set_param( + 'automate_print_invoices', self.automate_print_invoices) + self.env['ir.config_parameter'].sudo().set_param( + 'automate_sale', self.automate_sale) + self.env['ir.config_parameter'].sudo().set_param( + 'automate_invoice', self.automate_invoice) + self.env['ir.config_parameter'].sudo().set_param( + 'automate_validate_invoice', self.automate_validate_invoice) diff --git a/sale_purchase_automated/models/sale_order.py b/sale_purchase_automated/models/sale_order.py new file mode 100644 index 000000000..54bf3001c --- /dev/null +++ b/sale_purchase_automated/models/sale_order.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Nimisha Muralidhar (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 SaleOrder(models.Model): + _inherit = 'sale.order' + + automate_print_invoices = fields.Boolean( + 'Print Invoices', + help="Print invoices for corresponding purchase orders") + + @api.model_create_multi + def create(self, vals_list): + """ + Super the method create to confirm quotation, create and validate + invoice + """ + res = super(SaleOrder, self).create(vals_list) + automate_purchase = self.env['ir.config_parameter'].sudo().get_param( + 'automate_sale') + automate_invoice = self.env['ir.config_parameter'].sudo().get_param( + 'automate_invoice') + automate_print_invoices = self.env[ + 'ir.config_parameter'].sudo().get_param('automate_print_invoices') + automate_validate_invoice = self.env[ + 'ir.config_parameter'].sudo().get_param('automate_validate_invoice') + if automate_print_invoices: + res.automate_print_invoices = True + if automate_purchase: + res.action_confirm() + if automate_invoice: + res._create_invoices() + if automate_validate_invoice: + res.invoice_ids.action_post() + return res + + def action_print_invoice(self): + """Method to print invoice""" + data = self.invoice_ids + return self.env.ref('account.account_invoices').report_action(data) diff --git a/sale_purchase_automated/static/description/assets/icons/check.png b/sale_purchase_automated/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/check.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/chevron.png b/sale_purchase_automated/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/chevron.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/cogs.png b/sale_purchase_automated/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/cogs.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/consultation.png b/sale_purchase_automated/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/consultation.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/ecom-black.png b/sale_purchase_automated/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/ecom-black.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/education-black.png b/sale_purchase_automated/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/education-black.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/hotel-black.png b/sale_purchase_automated/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/hotel-black.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/license.png b/sale_purchase_automated/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/license.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/lifebuoy.png b/sale_purchase_automated/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/lifebuoy.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/logo.png b/sale_purchase_automated/static/description/assets/icons/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/logo.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/manufacturing-black.png b/sale_purchase_automated/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/manufacturing-black.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/pos-black.png b/sale_purchase_automated/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/pos-black.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/puzzle.png b/sale_purchase_automated/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/puzzle.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/restaurant-black.png b/sale_purchase_automated/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/restaurant-black.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/service-black.png b/sale_purchase_automated/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/service-black.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/trading-black.png b/sale_purchase_automated/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/trading-black.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/training.png b/sale_purchase_automated/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/training.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/update.png b/sale_purchase_automated/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/update.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/user.png b/sale_purchase_automated/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/user.png differ diff --git a/sale_purchase_automated/static/description/assets/icons/wrench.png b/sale_purchase_automated/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/sale_purchase_automated/static/description/assets/icons/wrench.png differ diff --git a/sale_purchase_automated/static/description/assets/modules/approval_image.png b/sale_purchase_automated/static/description/assets/modules/approval_image.png new file mode 100644 index 000000000..84fe94e80 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/modules/approval_image.png differ diff --git a/sale_purchase_automated/static/description/assets/modules/budget_image.png b/sale_purchase_automated/static/description/assets/modules/budget_image.png new file mode 100644 index 000000000..fe6aa6fe4 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/modules/budget_image.png differ diff --git a/sale_purchase_automated/static/description/assets/modules/export_image.png b/sale_purchase_automated/static/description/assets/modules/export_image.png new file mode 100644 index 000000000..4e4ea0e51 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/modules/export_image.png differ diff --git a/sale_purchase_automated/static/description/assets/modules/magento_image.png b/sale_purchase_automated/static/description/assets/modules/magento_image.png new file mode 100644 index 000000000..39de0820f Binary files /dev/null and b/sale_purchase_automated/static/description/assets/modules/magento_image.png differ diff --git a/sale_purchase_automated/static/description/assets/modules/pos_image.png b/sale_purchase_automated/static/description/assets/modules/pos_image.png new file mode 100644 index 000000000..c5932894b Binary files /dev/null and b/sale_purchase_automated/static/description/assets/modules/pos_image.png differ diff --git a/sale_purchase_automated/static/description/assets/modules/shopify_image.png b/sale_purchase_automated/static/description/assets/modules/shopify_image.png new file mode 100644 index 000000000..c6d92c16d Binary files /dev/null and b/sale_purchase_automated/static/description/assets/modules/shopify_image.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/hero.png b/sale_purchase_automated/static/description/assets/screenshots/hero.png new file mode 100755 index 000000000..fafbeb922 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/hero.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-1.png b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-1.png new file mode 100755 index 000000000..d6d3e7a90 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-1.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-10.png b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-10.png new file mode 100755 index 000000000..d4fc325d8 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-10.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-11.png b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-11.png new file mode 100755 index 000000000..eddc9fe03 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-11.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-12.png b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-12.png new file mode 100755 index 000000000..56027be7c Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-12.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-13.png b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-13.png new file mode 100755 index 000000000..ca1f0b717 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-13.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-14.png b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-14.png new file mode 100755 index 000000000..bd565b6ee Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-14.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-2.png b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-2.png new file mode 100755 index 000000000..df13f862b Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-2.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-3.png b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-3.png new file mode 100755 index 000000000..305b1cf6a Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-3.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-4.png b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-4.png new file mode 100755 index 000000000..0f423e70c Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-4.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-5.png b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-5.png new file mode 100755 index 000000000..cc5596981 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-5.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-6.png b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-6.png new file mode 100755 index 000000000..7ea6de5c0 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-6.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-7.png b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-7.png new file mode 100755 index 000000000..0a0d658bd Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-7.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-8.png b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-8.png new file mode 100755 index 000000000..e311dcfc7 Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-8.png differ diff --git a/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-9.png b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-9.png new file mode 100755 index 000000000..39aa69d3e Binary files /dev/null and b/sale_purchase_automated/static/description/assets/screenshots/sale_purchase_automated-9.png differ diff --git a/sale_purchase_automated/static/description/banner.png b/sale_purchase_automated/static/description/banner.png new file mode 100644 index 000000000..9eb5b4c7a Binary files /dev/null and b/sale_purchase_automated/static/description/banner.png differ diff --git a/sale_purchase_automated/static/description/icon.png b/sale_purchase_automated/static/description/icon.png new file mode 100644 index 000000000..a7e2f4f2a Binary files /dev/null and b/sale_purchase_automated/static/description/icon.png differ diff --git a/sale_purchase_automated/static/description/index.html b/sale_purchase_automated/static/description/index.html new file mode 100644 index 000000000..215553e00 --- /dev/null +++ b/sale_purchase_automated/static/description/index.html @@ -0,0 +1,588 @@ +
+
+
+
+ +
+
+
+ Community +
+ + + +
+
+
+
+ +
+
+
+

+ Automate Sale And Purchase Orders +

+

+ A Module for automating the sale and purchase orders flow. +

+ +
+
+ + + +
+
+

+ Overview +

+
+ +
+

+ This module crafted by Cybrosys Technologies provides an option to automate the sale and purchase orders. + One can automate the actions to confirm the quotation, create and validate invoices. Automatic actions are + also available to confirm RFQ. A button can be added in the sale order and purchase order to print invoices + and bills directly from the order form. +

+
+
+ +
+
+

+ Configuration +

+
+
+

The accounting localization for the country has to be installed.

+

The invoice policy should be set as 'Ordered Quantities' to automate invoice creation and printing.

+
+
+ +
+
+

+ Features +

+
+
+
+ +
+
+

Automatic actions for sale and purchase

+
+
+
+
+ +
+
+

Easily enable or disable the features from the settings

+
+
+
+
+ +
+
+

Print invoice from sale order form

+
+
+
+
+ +
+
+

Print bill from purchase order form

+
+
+
+ +
+
+

+ Screenshots +

+
+
+

Enable the corresponding checkbox to automate the actions for sale order.

+

Sales -> Configuration -> Settings

+ +
+
+

Enable the checkbox "Confirm Quotation"

+ +
+
+

Create a quotation and save. A confirmed quotation will be created("Sales Order").

+ +
+
+

Enable the checkboxes "Confirm Quotation" and "Create Invoice".

+ +
+
+

Create a quotation and save. A confirmed quotation with a draft invoice will be created.

+ +
+
+

Enable the checkboxes "Confirm Quotation", "Create Invoice" and "Validate Invoice".

+ +
+
+

Create a quotation and save. A confirmed quotation with a posted invoice will be created.

+ +
+
+

Enable the checkboxes "Confirm Quotation", "Create Invoice", "Validate Invoice" and "Print Invoices".

+ +
+
+

Create a quotation and save. A confirmed quotation with a posted invoice will be created also a button to print invoices will appear in the sale order form.

+ +
+
+

Enable the corresponding checkbox to automate the actions for purchase.

+

Purchase -> Configuration -> Settings

+ +
+
+

Enable the checkbox "Confirm RFQ".

+ +
+
+

Create an RFQ and save. A confirmed RFQ will be created("Purchase Order").

+ +
+
+

Enable the checkboxes "Confirm RFQ" and "Print Bills".

+ +
+
+

Create an RFQ and save. A confirmed RFQ will be created. Create a bill for the purchase order, a button to print the bill will appear in the purchase order form.

+ +
+
+ + +
+
+

Suggested Products

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

Our Services

+
+
+ +
+
+ +
+
+ Odoo Customization +
+
+ +
+
+ +
+
+ Odoo Implementation +
+
+ +
+
+ +
+
+ Odoo Support +
+
+ + +
+
+ +
+
+ Hire Odoo Developer +
+
+ +
+
+ +
+
+ Odoo Integration +
+
+ +
+
+ +
+
+ Odoo Migration +
+
+ + +
+
+ +
+
+ Odoo + Consultancy +
+
+ +
+
+ +
+
+ Odoo Implementation +
+
+ +
+
+ +
+
+ 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 +

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

Need Help?

+
+
+
+ + +
+ + + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+
+ + +
\ No newline at end of file diff --git a/sale_purchase_automated/views/purchase_views.xml b/sale_purchase_automated/views/purchase_views.xml new file mode 100644 index 000000000..0830b3755 --- /dev/null +++ b/sale_purchase_automated/views/purchase_views.xml @@ -0,0 +1,17 @@ + + + + + purchase.order.form.inherit.sale_purchase_automated + purchase.order + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + +
+
+
+
+ + + +
+
+
+
+ + + +
+
+
+
+
+
+
+ + + + + +
+ + + + + + + + + Salon Orders + salon.order + kanban,tree,form + + + + Salon Orders + salon.order + kanban,tree,form + [('chair_id', '=', active_id)] + + + + \ No newline at end of file diff --git a/timesheets_by_employee/README.rst b/timesheets_by_employee/README.rst new file mode 100644 index 000000000..2561634a6 --- /dev/null +++ b/timesheets_by_employee/README.rst @@ -0,0 +1,45 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--1-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Timesheets by Employees v15 +=========================== + +This module allows to print the timesheets of selected employee. + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: Kavya Raveendran @ cybrosys, Contact: odoo@cybrosys.com + version 14: Muhammed P @cybrosys,Contact: odoo@cybrosys.com + version 15: Abhishek E T @cybrosys,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/timesheets_by_employee/__init__.py b/timesheets_by_employee/__init__.py new file mode 100644 index 000000000..8e650324b --- /dev/null +++ b/timesheets_by_employee/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Kavya Raveendran (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +from . import report +from . import wizard diff --git a/timesheets_by_employee/__manifest__.py b/timesheets_by_employee/__manifest__.py new file mode 100644 index 000000000..0c0c03d28 --- /dev/null +++ b/timesheets_by_employee/__manifest__.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +{ + 'name': 'Timesheet PDF Report', + 'version': '15.0.1.0.0', + "category": "Generic Modules/Human Resources", + 'sequence': 25, + 'summary': 'Timesheet PDF Report of Employees', + 'description': 'Timesheet PDF Report of Employees', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['hr', 'hr_timesheet'], + 'data': [ + 'security/ir.model.access.csv', + 'report/timesheet_reports.xml', + 'report/timesheet_templates.xml', + 'wizard/timesheet_report_views.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/timesheets_by_employee/doc/RELEASE_NOTES.md b/timesheets_by_employee/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..8f0b4973f --- /dev/null +++ b/timesheets_by_employee/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 07.10.2021 +#### Version 15.0.1.0.0 +##### ADD +- Initial commit for Timesheet PDF Report Module \ No newline at end of file diff --git a/timesheets_by_employee/report/__init__.py b/timesheets_by_employee/report/__init__.py new file mode 100644 index 000000000..cf82bc280 --- /dev/null +++ b/timesheets_by_employee/report/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Kavya Raveendran (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +from . import timesheet_report diff --git a/timesheets_by_employee/report/timesheet_report.py b/timesheets_by_employee/report/timesheet_report.py new file mode 100644 index 000000000..b776ab772 --- /dev/null +++ b/timesheets_by_employee/report/timesheet_report.py @@ -0,0 +1,102 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Kavya Raveendran (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +from odoo import api, fields, models + + +class ReportTimesheet(models.AbstractModel): + _name = 'report.timesheets_by_employee.report_timesheets' + _description = 'Timesheet Report' + + def get_timesheets(self, docs): + """input : name of employee, the starting date and ending date + output: timesheets by that particular employee within that period and + the total duration + """ + if docs.from_date and docs.to_date: + record = self.env['account.analytic.line'].search( + [('user_id', '=', docs.user_id[0].id), + ('date', '>=', docs.from_date), ('date', '<=', docs.to_date)]) + elif docs.from_date: + record = self.env['account.analytic.line'].search( + [('user_id', '=', docs.user_id[0].id), + ('date', '>=', docs.from_date)]) + elif docs.to_date: + record = self.env['account.analytic.line'].search( + [('user_id', '=', docs.user_id[0].id), + ('date', '<=', docs.to_date)]) + else: + record = self.env['account.analytic.line'].search( + [('user_id', '=', docs.user_id[0].id)]) + records = [] + total = 0 + for rec in record: + vals = {'project': rec.project_id.name, + 'user': rec.user_id.partner_id.name, + 'duration': rec.unit_amount, + 'date': rec.date, + } + total += rec.unit_amount + records.append(vals) + return [records, total] + + @api.model + def _get_report_values(self, docids, data=None): + """we are overwriting this function because we need to show values from + other models in the report we pass the objects in the docargs dictionary + """ + docs = self.env['timesheet.report'].browse( + self.env.context.get('active_id')) + identification = [] + for rec in self.env['hr.employee'].search( + [('user_id', '=', docs.user_id[0].id)]): + if rec: + identification.append({'id': rec.id, 'name': rec.name}) + timesheets = self.get_timesheets(docs) + company_id = self.env['res.company'].search( + [('name', '=', docs.user_id[0].company_id.name)]) + period = None + if docs.from_date and docs.to_date: + period = "From " + str(docs.from_date) + " To " + str(docs.to_date) + elif docs.from_date: + period = "From " + str(docs.from_date) + elif docs.to_date: + period = "To " + str(docs.to_date) + if len(identification) > 1: + return { + 'doc_ids': self.ids, + 'docs': docs, + 'timesheets': timesheets[0], + 'total': timesheets[1], + 'company': company_id, + 'identification': identification, + 'period': period, + } + else: + return { + 'doc_ids': self.ids, + 'docs': docs, + 'timesheets': timesheets[0], + 'total': timesheets[1], + 'identification': identification, + 'company': company_id, + 'period': period, + } diff --git a/timesheets_by_employee/report/timesheet_reports.xml b/timesheets_by_employee/report/timesheet_reports.xml new file mode 100644 index 000000000..6c248f20b --- /dev/null +++ b/timesheets_by_employee/report/timesheet_reports.xml @@ -0,0 +1,12 @@ + + + + + Timesheets + timesheet.report + qweb-pdf + timesheets_by_employee.report_timesheets + timesheets_by_employee.report_timesheets + + + \ No newline at end of file diff --git a/timesheets_by_employee/report/timesheet_templates.xml b/timesheets_by_employee/report/timesheet_templates.xml new file mode 100644 index 000000000..841c6448b --- /dev/null +++ b/timesheets_by_employee/report/timesheet_templates.xml @@ -0,0 +1,44 @@ + + + + \ No newline at end of file diff --git a/timesheets_by_employee/security/ir.model.access.csv b/timesheets_by_employee/security/ir.model.access.csv new file mode 100644 index 000000000..944013dd3 --- /dev/null +++ b/timesheets_by_employee/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_timesheet_report,timesheet.report,model_timesheet_report,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/timesheets_by_employee/static/description/assets/icons/check.png b/timesheets_by_employee/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/check.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/chevron.png b/timesheets_by_employee/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/chevron.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/cogs.png b/timesheets_by_employee/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/cogs.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/consultation.png b/timesheets_by_employee/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/consultation.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/ecom-black.png b/timesheets_by_employee/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/ecom-black.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/education-black.png b/timesheets_by_employee/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/education-black.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/hotel-black.png b/timesheets_by_employee/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/hotel-black.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/license.png b/timesheets_by_employee/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/license.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/lifebuoy.png b/timesheets_by_employee/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/lifebuoy.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/logo.png b/timesheets_by_employee/static/description/assets/icons/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/logo.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/manufacturing-black.png b/timesheets_by_employee/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/manufacturing-black.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/pos-black.png b/timesheets_by_employee/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/pos-black.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/puzzle.png b/timesheets_by_employee/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/puzzle.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/restaurant-black.png b/timesheets_by_employee/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/restaurant-black.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/service-black.png b/timesheets_by_employee/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/service-black.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/trading-black.png b/timesheets_by_employee/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/trading-black.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/training.png b/timesheets_by_employee/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/training.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/update.png b/timesheets_by_employee/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/update.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/user.png b/timesheets_by_employee/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/user.png differ diff --git a/timesheets_by_employee/static/description/assets/icons/wrench.png b/timesheets_by_employee/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/wrench.png differ diff --git a/timesheets_by_employee/static/description/assets/modules/approval_image.png b/timesheets_by_employee/static/description/assets/modules/approval_image.png new file mode 100644 index 000000000..84fe94e80 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/modules/approval_image.png differ diff --git a/timesheets_by_employee/static/description/assets/modules/budget_image.png b/timesheets_by_employee/static/description/assets/modules/budget_image.png new file mode 100644 index 000000000..fe6aa6fe4 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/modules/budget_image.png differ diff --git a/timesheets_by_employee/static/description/assets/modules/export_image.png b/timesheets_by_employee/static/description/assets/modules/export_image.png new file mode 100644 index 000000000..4e4ea0e51 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/modules/export_image.png differ diff --git a/timesheets_by_employee/static/description/assets/modules/magento_image.png b/timesheets_by_employee/static/description/assets/modules/magento_image.png new file mode 100644 index 000000000..39de0820f Binary files /dev/null and b/timesheets_by_employee/static/description/assets/modules/magento_image.png differ diff --git a/timesheets_by_employee/static/description/assets/modules/pos_image.png b/timesheets_by_employee/static/description/assets/modules/pos_image.png new file mode 100644 index 000000000..c5932894b Binary files /dev/null and b/timesheets_by_employee/static/description/assets/modules/pos_image.png differ diff --git a/timesheets_by_employee/static/description/assets/modules/shopify_image.png b/timesheets_by_employee/static/description/assets/modules/shopify_image.png new file mode 100644 index 000000000..c6d92c16d Binary files /dev/null and b/timesheets_by_employee/static/description/assets/modules/shopify_image.png differ diff --git a/timesheets_by_employee/static/description/assets/screenshots/hero.png b/timesheets_by_employee/static/description/assets/screenshots/hero.png new file mode 100644 index 000000000..46a92e4e9 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/screenshots/hero.png differ diff --git a/timesheets_by_employee/static/description/assets/screenshots/timesheet-by-employee-cybrosys-1.png b/timesheets_by_employee/static/description/assets/screenshots/timesheet-by-employee-cybrosys-1.png new file mode 100644 index 000000000..3ad99588b Binary files /dev/null and b/timesheets_by_employee/static/description/assets/screenshots/timesheet-by-employee-cybrosys-1.png differ diff --git a/timesheets_by_employee/static/description/assets/screenshots/timesheet-by-employee-cybrosys-2.png b/timesheets_by_employee/static/description/assets/screenshots/timesheet-by-employee-cybrosys-2.png new file mode 100644 index 000000000..225c7bf52 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/screenshots/timesheet-by-employee-cybrosys-2.png differ diff --git a/timesheets_by_employee/static/description/assets/screenshots/timesheet-by-employee-cybrosys-3.png b/timesheets_by_employee/static/description/assets/screenshots/timesheet-by-employee-cybrosys-3.png new file mode 100644 index 000000000..7aea19e3f Binary files /dev/null and b/timesheets_by_employee/static/description/assets/screenshots/timesheet-by-employee-cybrosys-3.png differ diff --git a/timesheets_by_employee/static/description/banner.png b/timesheets_by_employee/static/description/banner.png new file mode 100644 index 000000000..9fe9313c3 Binary files /dev/null and b/timesheets_by_employee/static/description/banner.png differ diff --git a/timesheets_by_employee/static/description/icon.png b/timesheets_by_employee/static/description/icon.png new file mode 100644 index 000000000..ac91a8046 Binary files /dev/null and b/timesheets_by_employee/static/description/icon.png differ diff --git a/timesheets_by_employee/static/description/index.html b/timesheets_by_employee/static/description/index.html new file mode 100644 index 000000000..51cff1f4b --- /dev/null +++ b/timesheets_by_employee/static/description/index.html @@ -0,0 +1,523 @@ +
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+
+
+
+ +
+
+
+

+ Timesheet PDF Report of Employee +

+

+ A Module for print timesheets of selected employee. +

+ +
+
+ + + +
+
+

+ Overview +

+
+ +
+

+ This module crafted by Cybrosys Technologies, allows the end user to print + the timesheets of selected employee. The module will further group all + timesheet lines of selected employee in wizard based on its period. +

+
+
+ +
+
+

+ Configuration +

+
+
+

No additional configuration required

+
+
+ +
+
+

+ Features +

+
+
+
+ +
+
+

Community & Enterprise

+

Available in Odoo 15.0 Community and Enterprise.

+
+
+
+
+ +
+
+

Print the timesheets of selected employees

+
+
+
+
+ +
+
+

Perform period wise grouping of timesheet lines

+
+
+
+ +
+
+

+ Screenshots +

+
+
+

Timesheets -> Reporting -> Print Timesheets

+ +
+
+

Wizard to Generate Timesheet Report with Dates

+ +
+
+

PDF Report of Employee Timesheet

+ +
+
+ + +
+
+

Suggested Products

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

Our Services

+
+
+ +
+
+ +
+
+ Odoo Customization +
+
+ +
+
+ +
+
+ Odoo Implementation +
+
+ +
+
+ +
+
+ Odoo Support +
+
+ + +
+
+ +
+
+ Hire Odoo Developer +
+
+ +
+
+ +
+
+ Odoo Integration +
+
+ +
+
+ +
+
+ Odoo Migration +
+
+ + +
+
+ +
+
+ Odoo + Consultancy +
+
+ +
+
+ +
+
+ Odoo Implementation +
+
+ +
+
+ +
+
+ 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 +

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

Need Help?

+
+
+
+ + +
+ + + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+
+ + +
\ No newline at end of file diff --git a/timesheets_by_employee/wizard/__init__.py b/timesheets_by_employee/wizard/__init__.py new file mode 100644 index 000000000..9526a5ea4 --- /dev/null +++ b/timesheets_by_employee/wizard/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Kavya Raveendran (odoo@cybrosys.com) +# you can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# It is forbidden to publish, distribute, sublicense, or sell copies +# of the Software or modified copies of the Software. +# +# 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## +from . import timesheet_report diff --git a/timesheets_by_employee/wizard/timesheet_report.py b/timesheets_by_employee/wizard/timesheet_report.py new file mode 100644 index 000000000..edeedb870 --- /dev/null +++ b/timesheets_by_employee/wizard/timesheet_report.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# Author: Kavya Raveendran (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +from odoo import fields, models + + +class TimesheetReport(models.TransientModel): + _name = 'timesheet.report' + _description = 'Timesheet Report Wizard' + + user_id = fields.Many2one('res.users', string="Employee", required=True) + from_date = fields.Date(string="Starting Date") + to_date = fields.Date(string="Ending Date") + + def print_timesheet(self): + """Redirects to the report with the values obtained from the wizard + 'data['form']': name of employee and the date duration""" + data = { + 'employee': self.user_id.id, + 'start_date': self.from_date, + 'end_date': self.to_date, + } + return self.env.ref( + 'timesheets_by_employee.action_report_print_timesheets').\ + report_action(self, data=data) diff --git a/timesheets_by_employee/wizard/timesheet_report_views.xml b/timesheets_by_employee/wizard/timesheet_report_views.xml new file mode 100644 index 000000000..d8b472a68 --- /dev/null +++ b/timesheets_by_employee/wizard/timesheet_report_views.xml @@ -0,0 +1,36 @@ + + + + + timesheet.report.form + timesheet.report + +
+ + + + + + + + +
+
+
+
+
+
+ + + Timesheet Report + timesheet.report + ir.actions.act_window + form + + new + + +
+
\ No newline at end of file