diff --git a/employee_documents_expiry/README.rst b/employee_documents_expiry/README.rst new file mode 100644 index 000000000..6df1d761e --- /dev/null +++ b/employee_documents_expiry/README.rst @@ -0,0 +1,44 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Employee Documents +================== +* Supporting Addon for HR, Manages Employee Related Documents + +Configuration +============= +Nothing to configure. + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +Affero General Public License, v3.0 (AGPL v3). +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Credits +------- +* Developers: (V17) Farhana Jahan PT, 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/employee_documents_expiry/__init__.py b/employee_documents_expiry/__init__.py new file mode 100644 index 000000000..d46a02c17 --- /dev/null +++ b/employee_documents_expiry/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-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/employee_documents_expiry/__manifest__.py b/employee_documents_expiry/__manifest__.py new file mode 100644 index 000000000..fcafa9977 --- /dev/null +++ b/employee_documents_expiry/__manifest__.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-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': 'Employee Documents', + 'version': '17.0.1.0.0', + 'category': 'Human Resources', + 'summary': """Manages Employee Documents With Expiry Notifications.""", + 'description': 'Manages Employee Related Documents' + ' with Expiry Notifications.', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': ['hr'], + 'data': [ + 'security/ir.model.access.csv', + 'data/employee_checklist_data.xml', + 'data/ir_cron_data.xml', + 'views/employee_checklist_views.xml', + 'views/hr_employee_document_views.xml', + 'views/hr_employee_views.xml', + ], + 'demo': ['data/data.xml'], + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/employee_documents_expiry/data/employee_checklist_data.xml b/employee_documents_expiry/data/employee_checklist_data.xml new file mode 100644 index 000000000..a8af46329 --- /dev/null +++ b/employee_documents_expiry/data/employee_checklist_data.xml @@ -0,0 +1,31 @@ + + + + + + Education Certificate + entry + + + Salary Certificate + entry + + + Experience Certificate + entry + + + Experience Certificate + exit + + + Salary Certificate + exit + + + diff --git a/employee_documents_expiry/data/ir_cron_data.xml b/employee_documents_expiry/data/ir_cron_data.xml new file mode 100644 index 000000000..421336fa9 --- /dev/null +++ b/employee_documents_expiry/data/ir_cron_data.xml @@ -0,0 +1,15 @@ + + + + + + HR Employee Data Expiration + + code + model.mail_reminder() + 1 + days + -1 + + + diff --git a/employee_documents_expiry/doc/RELEASE_NOTES.md b/employee_documents_expiry/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..f4b0d89fb --- /dev/null +++ b/employee_documents_expiry/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 19.12.2023 +#### Version 17.0.1.0.0 +#### ADD + +- Initial commit for Employee Documents diff --git a/employee_documents_expiry/models/__init__.py b/employee_documents_expiry/models/__init__.py new file mode 100644 index 000000000..771a20fdb --- /dev/null +++ b/employee_documents_expiry/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-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 employee_checklist +from . import hr_employee +from . import hr_employee_document +from . import ir_attachment diff --git a/employee_documents_expiry/models/employee_checklist.py b/employee_documents_expiry/models/employee_checklist.py new file mode 100644 index 000000000..3b1f98315 --- /dev/null +++ b/employee_documents_expiry/models/employee_checklist.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-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 EmployeeChecklist(models.Model): + """Create an 'employee_checklist' model to incorporate + details about document types""" + _name = 'employee.checklist' + _inherit = 'mail.thread' + _description = "Employee Checklist" + + name = fields.Char(string='Document Name', copy=False, required=1, + help="Enter Document Name") + document_type = fields.Selection([('entry', 'Entry Process'), + ('exit', 'Exit Process'), + ('other', 'Other')], + string='Checklist Type', required=1, + help="Select checklist type for document") + + def name_get(self): + """Function to obtain the names '_en,' '_ex,' or '_ot' + for entry, exit, and other.""" + result = [] + for each in self: + if each.document_type == 'entry': + name = each.name + '_en' + elif each.document_type == 'exit': + name = each.name + '_ex' + elif each.document_type == 'other': + name = each.name + '_ot' + result.append((each.id, name)) + return result diff --git a/employee_documents_expiry/models/hr_employee.py b/employee_documents_expiry/models/hr_employee.py new file mode 100644 index 000000000..f51dc1bf2 --- /dev/null +++ b/employee_documents_expiry/models/hr_employee.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-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 HrEmployee(models.Model): + """Inherit the 'hr_employee' module to add 'Documents' super button.""" + _inherit = 'hr.employee' + + document_count = fields.Integer(compute='_compute_document_count', + string='# Documents', + help="Get total count of Document for" + " an Employee") + + def _compute_document_count(self): + """Function to obtain the total count of documents.""" + for rec in self: + rec.document_count = self.env['hr.employee.document'].search_count( + [('employee_id', '=', rec.id)]) + + def document_view(self): + """Function to open the 'hr_employee_document' model.""" + self.ensure_one() + return { + 'name': _('Documents'), + 'domain': [('employee_id', '=', self.id)], + 'res_model': 'hr.employee.document', + 'type': 'ir.actions.act_window', + 'view_mode': 'tree,form', + 'view_type': 'form', + 'help': _('''

+ Click to Create for New Documents +

'''), + 'limit': 80, + 'context': {'default_employee_id': self.id} + } diff --git a/employee_documents_expiry/models/hr_employee_document.py b/employee_documents_expiry/models/hr_employee_document.py new file mode 100644 index 000000000..6727f8e33 --- /dev/null +++ b/employee_documents_expiry/models/hr_employee_document.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-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 datetime import datetime, date, timedelta + +from odoo import api, fields, models, _ + + +class HrEmployeeDocument(models.Model): + """Create a new module for retrieving document files, allowing users + to input details about the documents.""" + _name = 'hr.employee.document' + _description = 'HR Employee Documents' + + name = fields.Char(string='Document Number', required=True, copy=False, + help="Enter Document Number") + document_id = fields.Many2one('employee.checklist', + string='Document', + required=True, + help="Choose Employee Checklist for" + " Employee Document") + description = fields.Text(string='Description', copy=False, + help="Description for Employee Document") + expiry_date = fields.Date(string='Expiry Date', copy=False, + help="Choose Expiry Date for Employee Document") + employee_id = fields.Many2one('hr.employee', copy=False, string="Employee", + help="Choose Employee for Employee Document") + doc_attachment_ids = fields.Many2many('ir.attachment', + 'doc_attach_ids', + 'doc_id', 'attach_id3', + string="Attachment", + help='You can attach the copy' + 'of your document', + copy=False) + issue_date = fields.Date(string='Issue Date', + default=fields.Date.context_today, copy=False, + help="Choose Issue Date for Employee Document") + + def mail_reminder(self): + """Function for scheduling emails to send reminders + about document expiry dates.""" + for doc in self.search([]): + if doc.expiry_date: + if (datetime.now() + timedelta(days=1)).date() >= ( + doc.expiry_date - timedelta(days=7)): + mail_content = (" Hello " + str( + doc.employee_id.name) + ",
Your Document " + str( + doc.name) + "is going to expire on " + \ + str(doc.expiry_date) + ". Please renew it " + "before expiry date") + main_content = { + 'subject': _('Document-%s Expired On %s') % ( + str(doc.name), str(doc.expiry_date)), + 'author_id': self.env.user.partner_id.id, + 'body_html': mail_content, + 'email_to': doc.employee_id.work_email, + } + self.env['mail.mail'].create(main_content).send() + + @api.onchange('expiry_date') + def check_expr_date(self): + """Function to obtain a validation error for expired documents.""" + if self.expiry_date and self.expiry_date < date.today(): + return { + 'warning': { + 'title': _('Document Expired.'), + 'message': _("Your Document Is Already Expired.") + } + } diff --git a/employee_documents_expiry/models/ir_attachment.py b/employee_documents_expiry/models/ir_attachment.py new file mode 100644 index 000000000..c6df63410 --- /dev/null +++ b/employee_documents_expiry/models/ir_attachment.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-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 IrAttachment(models.Model): + """Inherit the 'ir_attachment' model to retrieve attached documents.""" + _inherit = 'ir.attachment' + + doc_attach_ids = fields.Many2many('hr.employee.document', + 'doc_attachment_ids', + 'attach_id3', + 'doc_id', + string="Attachment", invisible=1, + help="Choose Employee Document for" + " Attachment") diff --git a/employee_documents_expiry/security/ir.model.access.csv b/employee_documents_expiry/security/ir.model.access.csv new file mode 100644 index 000000000..4bb989274 --- /dev/null +++ b/employee_documents_expiry/security/ir.model.access.csv @@ -0,0 +1,6 @@ +id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink +access_hr_employee_checklist_user,employee.checklist.user,model_employee_checklist,hr.group_hr_user,1,1,1,1 +access_hr_employee_checklist_emp,employee.checklist.emp,model_employee_checklist,base.group_user,1,1,1,0 +access_hr_employee_document_employee,hr.employee.document_employee,model_hr_employee_document,base.group_user,1,1,1,0 +access_hr_employee_document_manager,hr.employee.document_manager,model_hr_employee_document,hr.group_hr_manager,1,1,1,1 +access_hr_employee_document_user,hr.employee.document_user,model_hr_employee_document,hr.group_hr_user,1,1,1,0 diff --git a/employee_documents_expiry/static/description/assets/icons/capture (1).png b/employee_documents_expiry/static/description/assets/icons/capture (1).png new file mode 100644 index 000000000..8824deafc Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/capture (1).png differ diff --git a/employee_documents_expiry/static/description/assets/icons/check.png b/employee_documents_expiry/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/check.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/chevron.png b/employee_documents_expiry/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/chevron.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/cogs.png b/employee_documents_expiry/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/cogs.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/consultation.png b/employee_documents_expiry/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/consultation.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/ecom-black.png b/employee_documents_expiry/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/ecom-black.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/education-black.png b/employee_documents_expiry/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/education-black.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/hotel-black.png b/employee_documents_expiry/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/hotel-black.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/img.png b/employee_documents_expiry/static/description/assets/icons/img.png new file mode 100644 index 000000000..70197f477 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/img.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/license.png b/employee_documents_expiry/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/license.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/lifebuoy.png b/employee_documents_expiry/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/lifebuoy.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/manufacturing-black.png b/employee_documents_expiry/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/manufacturing-black.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/photo-capture.png b/employee_documents_expiry/static/description/assets/icons/photo-capture.png new file mode 100644 index 000000000..06c111758 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/photo-capture.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/pos-black.png b/employee_documents_expiry/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/pos-black.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/puzzle.png b/employee_documents_expiry/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/puzzle.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/restaurant-black.png b/employee_documents_expiry/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/restaurant-black.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/service-black.png b/employee_documents_expiry/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/service-black.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/trading-black.png b/employee_documents_expiry/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/trading-black.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/training.png b/employee_documents_expiry/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/training.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/update.png b/employee_documents_expiry/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/update.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/user.png b/employee_documents_expiry/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/user.png differ diff --git a/employee_documents_expiry/static/description/assets/icons/wrench.png b/employee_documents_expiry/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/employee_documents_expiry/static/description/assets/icons/wrench.png differ diff --git a/employee_documents_expiry/static/description/assets/misc/Cybrosys R.png b/employee_documents_expiry/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/misc/Cybrosys R.png differ diff --git a/employee_documents_expiry/static/description/assets/misc/email.svg b/employee_documents_expiry/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/employee_documents_expiry/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/employee_documents_expiry/static/description/assets/misc/phone.svg b/employee_documents_expiry/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/employee_documents_expiry/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/employee_documents_expiry/static/description/assets/misc/star (1) 2.svg b/employee_documents_expiry/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/employee_documents_expiry/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/employee_documents_expiry/static/description/assets/misc/support (1) 1.svg b/employee_documents_expiry/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/employee_documents_expiry/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/employee_documents_expiry/static/description/assets/misc/support-email.svg b/employee_documents_expiry/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/employee_documents_expiry/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/employee_documents_expiry/static/description/assets/misc/tick-mark.svg b/employee_documents_expiry/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/employee_documents_expiry/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/employee_documents_expiry/static/description/assets/misc/whatsapp 1.svg b/employee_documents_expiry/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/employee_documents_expiry/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/employee_documents_expiry/static/description/assets/misc/whatsapp.svg b/employee_documents_expiry/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/employee_documents_expiry/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/employee_documents_expiry/static/description/assets/modules/1.png b/employee_documents_expiry/static/description/assets/modules/1.png new file mode 100644 index 000000000..8513873ea Binary files /dev/null and b/employee_documents_expiry/static/description/assets/modules/1.png differ diff --git a/employee_documents_expiry/static/description/assets/modules/2.jpg b/employee_documents_expiry/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..67c7f7062 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/modules/2.jpg differ diff --git a/employee_documents_expiry/static/description/assets/modules/3.png b/employee_documents_expiry/static/description/assets/modules/3.png new file mode 100644 index 000000000..cb17cf612 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/modules/3.png differ diff --git a/employee_documents_expiry/static/description/assets/modules/4.png b/employee_documents_expiry/static/description/assets/modules/4.png new file mode 100644 index 000000000..d6b1fe049 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/modules/4.png differ diff --git a/employee_documents_expiry/static/description/assets/modules/5.jpg b/employee_documents_expiry/static/description/assets/modules/5.jpg new file mode 100644 index 000000000..87c2bb2ba Binary files /dev/null and b/employee_documents_expiry/static/description/assets/modules/5.jpg differ diff --git a/employee_documents_expiry/static/description/assets/modules/6.png b/employee_documents_expiry/static/description/assets/modules/6.png new file mode 100644 index 000000000..a0ac2d840 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/modules/6.png differ diff --git a/employee_documents_expiry/static/description/assets/screenshots/1.png b/employee_documents_expiry/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..2169dfb03 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/screenshots/1.png differ diff --git a/employee_documents_expiry/static/description/assets/screenshots/2.png b/employee_documents_expiry/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..156975dc0 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/screenshots/2.png differ diff --git a/employee_documents_expiry/static/description/assets/screenshots/3.png b/employee_documents_expiry/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..37eda5158 Binary files /dev/null and b/employee_documents_expiry/static/description/assets/screenshots/3.png differ diff --git a/employee_documents_expiry/static/description/assets/screenshots/hero.gif b/employee_documents_expiry/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..77069f18b Binary files /dev/null and b/employee_documents_expiry/static/description/assets/screenshots/hero.gif differ diff --git a/employee_documents_expiry/static/description/banner.jpg b/employee_documents_expiry/static/description/banner.jpg new file mode 100644 index 000000000..61799bd90 Binary files /dev/null and b/employee_documents_expiry/static/description/banner.jpg differ diff --git a/employee_documents_expiry/static/description/icon.png b/employee_documents_expiry/static/description/icon.png new file mode 100644 index 000000000..38bb415ff Binary files /dev/null and b/employee_documents_expiry/static/description/icon.png differ diff --git a/employee_documents_expiry/static/description/index.html b/employee_documents_expiry/static/description/index.html new file mode 100644 index 000000000..3062d5162 --- /dev/null +++ b/employee_documents_expiry/static/description/index.html @@ -0,0 +1,763 @@ + + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+
+

+ Employee Documents

+

+ Manages Employee Related Documents. +

+
+ +
+
+
+
+
+

+ Key Highlights +

+
+
+
+
+
+ +
+
+

+ Manage Employee Documents

+

Easily manage + documents of employees. +

+
+
+
+
+
+
+ +
+
+

+ Documents Types

+

Different + document types. +

+
+
+
+
+
+
+ +
+
+

+ Expiry Date

+

Expiry Date for + Documents. +

+
+
+
+
+
+
+ +
+
+

+ Expiry Date Validation

+

Validation for + Expiry Date. +

+
+
+
+
+
+
+ +
+
+

+ Mail Notifications

+

Mail + Notification Based on Expiry Date. +

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

+ Click on the Documents super button

+
+
+
+
+
+
+ +
+
+

+ Fill the form to add a new document.

+
+
+
+
+
+
+ +
+
+

+ Notification mails for expired + documents.

+
+
+
+
+
+
+
    +
  • + Manage Employee + Documents. +
  • +
  • + Documents Types. +
  • +
  • + Expiry Date. +
      +
    • +
    • +
    +
  • +
  • + Expiry Date + Validation. +
      +
    • +
    • +
    +
  • +
  • + Mail + Notifications. +
      +
    • +
    • +
    +
  • + +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on:24th Nov 2023 +
+

+ + Initial Commit for Employee Documents.

+
+
+
+
+
+
+
+

+ Related Products

+
+
+ +
+
+

+ Our Services

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

Odoo + Customization

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

Odoo + Implementation

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

Odoo + Support

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

Hire + Odoo Developer

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

Odoo + Integration

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

Odoo + Migration

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

Odoo + Consultancy

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

Odoo + Implementation

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

Odoo + Licensing Consultancy

+
+
+
+
+
+
+

+ Our Industries

+ +
+
+
+
+
+
+ +

Trading

+

Easily procure and sell your products

+
+
+
+
+ +

POS

+

Easy configuration and convivial experience

+
+
+
+
+ +

+ Education

+

A platform for educational management

+
+
+
+
+ +

+ Manufacturing

+

Plan, track and schedule your operations

+
+
+
+
+ +

E-commerce & + Website

+

Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +

Service + Management

+

Keep track of services and invoice

+
+
+
+
+ +

+ Restaurant

+

Run your bar or restaurant methodically

+
+
+
+
+ +

Hotel + Management

+

An all-inclusive hotel management application

+
+
+
+
+
+
+

+ Support

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

Got + questions or need help? Get in touch.

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

Say hi to + us on WhatsApp!

+
+91 + 99456767686 +
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/employee_documents_expiry/views/employee_checklist_views.xml b/employee_documents_expiry/views/employee_checklist_views.xml new file mode 100644 index 000000000..339f5343e --- /dev/null +++ b/employee_documents_expiry/views/employee_checklist_views.xml @@ -0,0 +1,46 @@ + + + + + employee.checklist.view.form + employee.checklist + +
+ + + + + + +
+ + +
+
+
+
+ + + employee.checklist.view.tree + employee.checklist + + + + + + + + + + Employee Checklist + employee.checklist + tree,form + + + +
diff --git a/employee_documents_expiry/views/hr_employee_document_views.xml b/employee_documents_expiry/views/hr_employee_document_views.xml new file mode 100644 index 000000000..62e1d149d --- /dev/null +++ b/employee_documents_expiry/views/hr_employee_document_views.xml @@ -0,0 +1,44 @@ + + + + + hr.employee.document.view.form + hr.employee.document + +
+ + + + + + + + + + + + + + + + + + + +
+
+
+ + + hr.employee.document.view.tree + hr.employee.document + + + + + + + + +
diff --git a/employee_documents_expiry/views/hr_employee_views.xml b/employee_documents_expiry/views/hr_employee_views.xml new file mode 100644 index 000000000..198276370 --- /dev/null +++ b/employee_documents_expiry/views/hr_employee_views.xml @@ -0,0 +1,20 @@ + + + + + + hr.employee.view.form.inherit.employee.documents.expiry + + hr.employee + + +
+ +
+
+
+
diff --git a/invoice_stock_move/README.rst b/invoice_stock_move/README.rst new file mode 100755 index 000000000..f2a3fdaf0 --- /dev/null +++ b/invoice_stock_move/README.rst @@ -0,0 +1,44 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Stock Picking From Invoice +========================== +This Module Enables To Create Stocks Picking From Customer/Supplier Invoice + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +AFFERO General Public License, Version 3 (AGPL v3). +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Credits +------- + Developer: (V17) Mohammed Dilshad Tk, 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/invoice_stock_move/__init__.py b/invoice_stock_move/__init__.py new file mode 100755 index 000000000..807db7797 --- /dev/null +++ b/invoice_stock_move/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: MOHAMMED DILSHAD TK (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/invoice_stock_move/__manifest__.py b/invoice_stock_move/__manifest__.py new file mode 100755 index 000000000..b05ca4238 --- /dev/null +++ b/invoice_stock_move/__manifest__.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: MOHAMMED DILSHAD TK (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': "Stock Picking From Invoice", + 'version': '17.0.1.0.0', + 'category': 'Accounting', + 'summary': """Stock Picking From Customer/Supplier Invoice""", + 'description': """This Module Enables To Create Stocks Picking From + Customer/Supplier Invoice""", + 'author': "Cybrosys Techno Solutions", + 'company': 'Cybrosys Techno Solutions', + 'maintainer ': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': ['account', 'stock', 'payment'], + 'data': ['views/account_move_views.xml'], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/invoice_stock_move/doc/RELEASE_NOTES.md b/invoice_stock_move/doc/RELEASE_NOTES.md new file mode 100755 index 000000000..48299820f --- /dev/null +++ b/invoice_stock_move/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 19.12.2023 +#### Version 17.0.1.0.0 +#### ADD + +Initial Commit for Stock Picking From Invoice diff --git a/invoice_stock_move/models/__init__.py b/invoice_stock_move/models/__init__.py new file mode 100755 index 000000000..c11c9c660 --- /dev/null +++ b/invoice_stock_move/models/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: MOHAMMED DILSHAD TK (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 account_move_line diff --git a/invoice_stock_move/models/account_move.py b/invoice_stock_move/models/account_move.py new file mode 100755 index 000000000..4bf8ad729 --- /dev/null +++ b/invoice_stock_move/models/account_move.py @@ -0,0 +1,125 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: MOHAMMED DILSHAD TK (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, _ +from odoo.exceptions import UserError + + +class AccountMove(models.Model): + """Inherits 'account move' to show stock picking in invoice""" + _inherit = 'account.move' + + def _get_stock_type_ids(self): + """Fetch the move types and return to 'picking_type_id' field""" + data = self.env['stock.picking.type'].search([]) + if self._context.get('default_move_type') == 'out_invoice': + for line in data: + if line.code == 'outgoing': + return line + if self._context.get('default_move_type') == 'in_invoice': + for line in data: + if line.code == 'incoming': + return line + + picking_count = fields.Integer(string="Count", copy=False, help="Count of " + "the " + "created " + "picking") + invoice_picking_id = fields.Many2one(comodel_name='stock.picking', + string="Picking Id", copy=False, + help="corresponding picking") + picking_type_id = fields.Many2one(comodel_name='stock.picking.type', + string='Picking Type', + default=_get_stock_type_ids, + help="This will determine picking " + "type of incoming shipment") + + def action_stock_move(self): + """Function to create transfer from invoice""" + if not self.picking_type_id: + raise UserError(_( + " Please select a picking type")) + for order in self: + if not self.invoice_picking_id: + pick = {} + if self.picking_type_id.code == 'outgoing': + pick = { + 'picking_type_id': self.picking_type_id.id, + 'partner_id': self.partner_id.id, + 'origin': self.name, + 'location_dest_id': self.partner_id. + property_stock_customer.id, + 'location_id': self.picking_type_id. + default_location_src_id.id, + 'move_type': 'direct' + } + if self.picking_type_id.code == 'incoming': + pick = { + 'picking_type_id': self.picking_type_id.id, + 'partner_id': self.partner_id.id, + 'origin': self.name, + 'location_dest_id': self.picking_type_id. + default_location_dest_id.id, + 'location_id': self.partner_id. + property_stock_supplier.id, + 'move_type': 'direct' + } + picking = self.env['stock.picking'].create(pick) + self.invoice_picking_id = picking.id + self.picking_count = len(picking) + order = order.invoice_line_ids.filtered(lambda item: + item.product_id.type in + ['product', 'consu']) + (order._create_stock_moves(picking)._action_confirm(). + _action_assign()) + + def action_view_picking(self): + """Function to view moves while clicking shipment smart button""" + action = self.env.ref('stock.action_picking_tree_ready') + result = action.read()[0] + result.pop('id', None) + result['context'] = {} + result['domain'] = [('id', '=', self.invoice_picking_id.id)] + pick_ids = sum([self.invoice_picking_id.id]) + if pick_ids: + res = self.env.ref('stock.view_picking_form', False) + result['views'] = [(res and res.id or False, 'form')] + result['res_id'] = pick_ids or False + return result + + def _reverse_moves(self, default_values_list=None, cancel=False): + """ Reverse a recordset of account.move. + If cancel parameter is true, the reconcilable or liquidity lines + of each original move will be reconciled with its reverse's. + :param default_values_list: A list of default values to consider per + move. ('type' & 'reversed_entry_id' are computed in the method). + :return: An account move recordset, reverse of the current self.""" + if self.picking_type_id.code == 'outgoing': + data = self.env['stock.picking.type'].search( + [('company_id', '=', self.company_id.id), + ('code', '=', 'incoming')], limit=1) + self.picking_type_id = data.id + elif self.picking_type_id.code == 'incoming': + data = self.env['stock.picking.type'].search( + [('company_id', '=', self.company_id.id), + ('code', '=', 'outgoing')], limit=1) + self.picking_type_id = data.id + return super(AccountMove, self)._reverse_moves() diff --git a/invoice_stock_move/models/account_move_line.py b/invoice_stock_move/models/account_move_line.py new file mode 100755 index 000000000..40b2921fd --- /dev/null +++ b/invoice_stock_move/models/account_move_line.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: MOHAMMED DILSHAD TK (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 + + +class AccountMoveLine(models.Model): + _inherit = 'account.move.line' + + def _create_stock_moves(self, picking): + """Function to create stock move""" + done = self.env['stock.move'].browse() + for line in self: + price_unit = line.price_unit + if picking.picking_type_id.code == 'outgoing': + template = { + 'name': line.name or '', + 'product_id': line.product_id.id, + 'product_uom': line.product_uom_id.id, + 'location_id': picking.picking_type_id. + default_location_src_id.id, + 'location_dest_id': line.move_id.partner_id. + property_stock_customer.id, + 'picking_id': picking.id, + 'state': 'draft', + 'company_id': line.move_id.company_id.id, + 'price_unit': price_unit, + 'picking_type_id': picking.picking_type_id.id, + 'route_ids': 1 and [ + (6, 0, [x.id for x in self.env['stock.rule'].search + ([('id', 'in', (2, 3))])])] or [], + 'warehouse_id': picking.picking_type_id.warehouse_id.id, + } + if picking.picking_type_id.code == 'incoming': + template = { + 'name': line.name or '', + 'product_id': line.product_id.id, + 'product_uom': line.product_uom_id.id, + 'location_id': line.move_id.partner_id. + property_stock_supplier.id, + 'location_dest_id': picking.picking_type_id. + default_location_dest_id.id, + 'picking_id': picking.id, + 'state': 'draft', + 'company_id': line.move_id.company_id.id, + 'price_unit': price_unit, + 'picking_type_id': picking.picking_type_id.id, + 'route_ids': 1 and [ + (6, 0, [x.id for x in self.env['stock.rule'].search( + [('id', 'in', (2, 3))])])] or [], + 'warehouse_id': picking.picking_type_id.warehouse_id.id, + } + diff_quantity = line.quantity + tmp = template.copy() + tmp.update({ + 'product_uom_qty': diff_quantity, + }) + template['product_uom_qty'] = diff_quantity + done += self.env['stock.move'].create(template) + return done diff --git a/invoice_stock_move/static/description/assets/icons/capture (1).png b/invoice_stock_move/static/description/assets/icons/capture (1).png new file mode 100644 index 000000000..8824deafc Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/capture (1).png differ diff --git a/invoice_stock_move/static/description/assets/icons/check.png b/invoice_stock_move/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/check.png differ diff --git a/invoice_stock_move/static/description/assets/icons/chevron.png b/invoice_stock_move/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/chevron.png differ diff --git a/invoice_stock_move/static/description/assets/icons/cogs.png b/invoice_stock_move/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/cogs.png differ diff --git a/invoice_stock_move/static/description/assets/icons/consultation.png b/invoice_stock_move/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/consultation.png differ diff --git a/invoice_stock_move/static/description/assets/icons/ecom-black.png b/invoice_stock_move/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/ecom-black.png differ diff --git a/invoice_stock_move/static/description/assets/icons/education-black.png b/invoice_stock_move/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/education-black.png differ diff --git a/invoice_stock_move/static/description/assets/icons/hotel-black.png b/invoice_stock_move/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/hotel-black.png differ diff --git a/invoice_stock_move/static/description/assets/icons/img.png b/invoice_stock_move/static/description/assets/icons/img.png new file mode 100644 index 000000000..70197f477 Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/img.png differ diff --git a/invoice_stock_move/static/description/assets/icons/license.png b/invoice_stock_move/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/license.png differ diff --git a/invoice_stock_move/static/description/assets/icons/lifebuoy.png b/invoice_stock_move/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/lifebuoy.png differ diff --git a/invoice_stock_move/static/description/assets/icons/manufacturing-black.png b/invoice_stock_move/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/manufacturing-black.png differ diff --git a/invoice_stock_move/static/description/assets/icons/photo-capture.png b/invoice_stock_move/static/description/assets/icons/photo-capture.png new file mode 100644 index 000000000..06c111758 Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/photo-capture.png differ diff --git a/invoice_stock_move/static/description/assets/icons/pos-black.png b/invoice_stock_move/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/pos-black.png differ diff --git a/invoice_stock_move/static/description/assets/icons/puzzle.png b/invoice_stock_move/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/puzzle.png differ diff --git a/invoice_stock_move/static/description/assets/icons/restaurant-black.png b/invoice_stock_move/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/restaurant-black.png differ diff --git a/invoice_stock_move/static/description/assets/icons/service-black.png b/invoice_stock_move/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/service-black.png differ diff --git a/invoice_stock_move/static/description/assets/icons/trading-black.png b/invoice_stock_move/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/trading-black.png differ diff --git a/invoice_stock_move/static/description/assets/icons/training.png b/invoice_stock_move/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/training.png differ diff --git a/invoice_stock_move/static/description/assets/icons/update.png b/invoice_stock_move/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/update.png differ diff --git a/invoice_stock_move/static/description/assets/icons/user.png b/invoice_stock_move/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/user.png differ diff --git a/invoice_stock_move/static/description/assets/icons/wrench.png b/invoice_stock_move/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/invoice_stock_move/static/description/assets/icons/wrench.png differ diff --git a/invoice_stock_move/static/description/assets/misc/Cybrosys R.png b/invoice_stock_move/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/invoice_stock_move/static/description/assets/misc/Cybrosys R.png differ diff --git a/invoice_stock_move/static/description/assets/misc/email.svg b/invoice_stock_move/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/invoice_stock_move/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/invoice_stock_move/static/description/assets/misc/phone.svg b/invoice_stock_move/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/invoice_stock_move/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/invoice_stock_move/static/description/assets/misc/star (1) 2.svg b/invoice_stock_move/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/invoice_stock_move/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/invoice_stock_move/static/description/assets/misc/support (1) 1.svg b/invoice_stock_move/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/invoice_stock_move/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/invoice_stock_move/static/description/assets/misc/support-email.svg b/invoice_stock_move/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/invoice_stock_move/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/invoice_stock_move/static/description/assets/misc/tick-mark.svg b/invoice_stock_move/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/invoice_stock_move/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/invoice_stock_move/static/description/assets/misc/whatsapp 1.svg b/invoice_stock_move/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/invoice_stock_move/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/invoice_stock_move/static/description/assets/misc/whatsapp.svg b/invoice_stock_move/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/invoice_stock_move/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/invoice_stock_move/static/description/assets/modules/1.png b/invoice_stock_move/static/description/assets/modules/1.png new file mode 100644 index 000000000..8513873ea Binary files /dev/null and b/invoice_stock_move/static/description/assets/modules/1.png differ diff --git a/invoice_stock_move/static/description/assets/modules/2.jpg b/invoice_stock_move/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..67c7f7062 Binary files /dev/null and b/invoice_stock_move/static/description/assets/modules/2.jpg differ diff --git a/invoice_stock_move/static/description/assets/modules/3.png b/invoice_stock_move/static/description/assets/modules/3.png new file mode 100644 index 000000000..cb17cf612 Binary files /dev/null and b/invoice_stock_move/static/description/assets/modules/3.png differ diff --git a/invoice_stock_move/static/description/assets/modules/4.png b/invoice_stock_move/static/description/assets/modules/4.png new file mode 100644 index 000000000..d6b1fe049 Binary files /dev/null and b/invoice_stock_move/static/description/assets/modules/4.png differ diff --git a/invoice_stock_move/static/description/assets/modules/5.jpg b/invoice_stock_move/static/description/assets/modules/5.jpg new file mode 100644 index 000000000..87c2bb2ba Binary files /dev/null and b/invoice_stock_move/static/description/assets/modules/5.jpg differ diff --git a/invoice_stock_move/static/description/assets/modules/6.png b/invoice_stock_move/static/description/assets/modules/6.png new file mode 100644 index 000000000..a0ac2d840 Binary files /dev/null and b/invoice_stock_move/static/description/assets/modules/6.png differ diff --git a/invoice_stock_move/static/description/assets/screenshots/hero.gif b/invoice_stock_move/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..161a880f0 Binary files /dev/null and b/invoice_stock_move/static/description/assets/screenshots/hero.gif differ diff --git a/invoice_stock_move/static/description/assets/screenshots/inv1.png b/invoice_stock_move/static/description/assets/screenshots/inv1.png new file mode 100755 index 000000000..8699c19fc Binary files /dev/null and b/invoice_stock_move/static/description/assets/screenshots/inv1.png differ diff --git a/invoice_stock_move/static/description/assets/screenshots/inv2.png b/invoice_stock_move/static/description/assets/screenshots/inv2.png new file mode 100755 index 000000000..8bd8651d4 Binary files /dev/null and b/invoice_stock_move/static/description/assets/screenshots/inv2.png differ diff --git a/invoice_stock_move/static/description/assets/screenshots/inv3.png b/invoice_stock_move/static/description/assets/screenshots/inv3.png new file mode 100755 index 000000000..41d0636dd Binary files /dev/null and b/invoice_stock_move/static/description/assets/screenshots/inv3.png differ diff --git a/invoice_stock_move/static/description/assets/screenshots/inv4.png b/invoice_stock_move/static/description/assets/screenshots/inv4.png new file mode 100755 index 000000000..5b6591e0f Binary files /dev/null and b/invoice_stock_move/static/description/assets/screenshots/inv4.png differ diff --git a/invoice_stock_move/static/description/banner.png b/invoice_stock_move/static/description/banner.png new file mode 100644 index 000000000..e9948d8a7 Binary files /dev/null and b/invoice_stock_move/static/description/banner.png differ diff --git a/invoice_stock_move/static/description/icon.png b/invoice_stock_move/static/description/icon.png new file mode 100644 index 000000000..681ea8660 Binary files /dev/null and b/invoice_stock_move/static/description/icon.png differ diff --git a/invoice_stock_move/static/description/index.html b/invoice_stock_move/static/description/index.html new file mode 100755 index 000000000..28dbec3c6 --- /dev/null +++ b/invoice_stock_move/static/description/index.html @@ -0,0 +1,690 @@ + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.Sh +
+
+
+
+
+
+

+ Stock Picking From Invoice

+

+ This Module Enables To Stock Pickings From Customer/Supplier + Invoice. +

+
+ +
+
+
+
+
+

+ Key Highlights +

+
+
+
+
+
+ +
+
+

+ Stock Picking From Invoice

+

Automatically + creates stock picking from customer invoice. +

+
+
+
+
+
+
+ +
+
+

+ Stock Picking bill

+

Stock Picking + From Supplier bill +

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

+ Invoice page

+
+
+ +
+
+
+
+
+
+

+ Transfer Button in Customer invoice

+

+ Added an extra transfer button in invoice + page.Click it transfer + the product.

+
+
+ +
+
+
+
+
+
+

+ Shipment Smart Button

+

+ Shipment smart button for viewing the + transfer in inventory

+
+
+ +
+
+
+
+
+
+

+ Corresponding transfer

+
+
+ +
+
+
+
+
+
+
    +
  • + Stock Picking + From Customer Invoice. +
  • +
  • + Stock Picking + From Supplier bill. +
  • +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on: 19th Dec 2023 +
+

+ Initial Commit for Stock Picking From + Invoice

+
+
+
+
+
+
+
+

+ Related Products

+
+
+ +
+
+

+ Our Services

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

Odoo + Customization

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

Odoo + Implementation

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

Odoo + Support

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

Hire + Odoo Developer

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

Odoo + Integration

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

Odoo + Migration

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

Odoo + Consultancy

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

Odoo + Implementation

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

Odoo + Licensing Consultancy

+
+
+
+
+
+
+

+ Our Industries

+ +
+
+
+
+
+
+ +

Trading

+

Easily procure and sell your products

+
+
+
+
+ +

POS

+

Easy configuration and convivial experience

+
+
+
+
+ +

+ Education

+

A platform for educational management

+
+
+
+
+ +

+ Manufacturing

+

Plan, track and schedule your operations

+
+
+
+
+ +

E-commerce & + Website

+

Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +

Service + Management

+

Keep track of services and invoice

+
+
+
+
+ +

+ Restaurant

+

Run your bar or restaurant methodically

+
+
+
+
+ +

Hotel + Management

+

An all-inclusive hotel management application

+
+
+
+
+
+
+

+ Support

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

Got + questions or need help? Get in touch.

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

Say hi to + us on WhatsApp!

+
+91 + 99456767686 +
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/invoice_stock_move/views/account_move_views.xml b/invoice_stock_move/views/account_move_views.xml new file mode 100755 index 000000000..20e212dcc --- /dev/null +++ b/invoice_stock_move/views/account_move_views.xml @@ -0,0 +1,31 @@ + + + + + account.move.view.form.inherit.invoice.stock.move + + account.move + + + + + + + + diff --git a/mandatory_field_highlight/README.rst b/mandatory_field_highlight/README.rst new file mode 100644 index 000000000..3a77fa2ca --- /dev/null +++ b/mandatory_field_highlight/README.rst @@ -0,0 +1,49 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Highlight Mandatory Field +================ +This module helps you to highlight the mandatory fields in odoo. + +Configuration +============= +* No additional configurations needed + +License +------- +Affero General Public License v3.0 (AGPL v3) +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: + (V16) Jumana, + (V17) Anjhana A K, +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/mandatory_field_highlight/__init__.py b/mandatory_field_highlight/__init__.py new file mode 100644 index 000000000..ef699f40b --- /dev/null +++ b/mandatory_field_highlight/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author:Anjhana A K() +# 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 controllers +from . import models diff --git a/mandatory_field_highlight/__manifest__.py b/mandatory_field_highlight/__manifest__.py new file mode 100644 index 000000000..6d73362e7 --- /dev/null +++ b/mandatory_field_highlight/__manifest__.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author:Anjhana A K() +# 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': 'Highlight Mandatory Field', + 'version': '17.0.1.0.0', + 'category': 'Extra Tools', + 'summary': 'This Module will help to customize mandatory fields in odoo', + 'description': """User can customize the mandatory field's view by + different colors""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['contacts', 'web'], + 'data': [ + 'views/res_config_settings_views.xml', + ], + 'assets': { + 'web.assets_backend': [ + 'mandatory_field_highlight/static/src/js/action_manager.js', + 'mandatory_field_highlight/static/src/scss/field.scss', + ], + }, + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': True, +} diff --git a/mandatory_field_highlight/controllers/__init__.py b/mandatory_field_highlight/controllers/__init__.py new file mode 100644 index 000000000..70b460b06 --- /dev/null +++ b/mandatory_field_highlight/controllers/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author:Anjhana A K() +# 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 mandatory_field_highlight diff --git a/mandatory_field_highlight/controllers/mandatory_field_highlight.py b/mandatory_field_highlight/controllers/mandatory_field_highlight.py new file mode 100644 index 000000000..553c09ef4 --- /dev/null +++ b/mandatory_field_highlight/controllers/mandatory_field_highlight.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author:Anjhana A K() +# 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 http +from odoo.http import request + + +class MandatoryFieldSettings(http.Controller): + """Controller to return the method of values from config settings.""" + + @http.route('/mandatory/config_params', type='json', auth="public") + def website_get_config_value(self): + """Returning the values from config settings to js""" + get_param = request.env['ir.config_parameter'].sudo().get_param + return { + 'margin_left_color': get_param( + 'mandatory_field_highlight.margin_left_color'), + 'margin_right_color': get_param( + 'mandatory_field_highlight.margin_right_color'), + 'margin_top_color': get_param( + 'mandatory_field_highlight.margin_top_color'), + 'margin_bottom_color': get_param( + 'mandatory_field_highlight.margin_bottom_color'), + 'field_background_color': get_param('mandatory_field_highlight' + '.field_background_color') + } diff --git a/mandatory_field_highlight/doc/RELEASE_NOTES.md b/mandatory_field_highlight/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..ebe589d7a --- /dev/null +++ b/mandatory_field_highlight/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 06.12.2023 +#### Version 17.0.1.0.0 +#### ADD +- Initial commit for Highlight Mandatory Field diff --git a/mandatory_field_highlight/models/__init__.py b/mandatory_field_highlight/models/__init__.py new file mode 100644 index 000000000..7d876908d --- /dev/null +++ b/mandatory_field_highlight/models/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author:Anjhana A K() +# 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 res_config_settings diff --git a/mandatory_field_highlight/models/res_config_settings.py b/mandatory_field_highlight/models/res_config_settings.py new file mode 100644 index 000000000..aaa65dd67 --- /dev/null +++ b/mandatory_field_highlight/models/res_config_settings.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author:Anjhana A K() +# 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): + """Inherited res.config.settings and added required fields""" + _inherit = 'res.config.settings' + + margin_left_color = fields.Char(string="Margin Left Color", + help='Margin-left color of mandatory field', + config_parameter="mandatory_field_highlight" + ".margin_left_color") + margin_right_color = fields.Char(string="Margin Right Color", + help='Margin-right color of mandatory ' + 'field', + config_parameter= + "mandatory_field_highlight" + ".margin_right_color") + margin_top_color = fields.Char(string="Margin Top Color", + help='Margin-top color of mandatory field', + config_parameter="mandatory_field_highlight" + ".margin_top_color") + margin_bottom_color = fields.Char(string="Margin Bottom Color", + help='Margin-bottom color of mandatory ' + 'field', + config_parameter= + "mandatory_field_highlight" + ".margin_bottom_color") + field_background_color = fields.Char(string="Field Background Color", + help='Background color of mandatory ' + 'field', + config_parameter= + "mandatory_field_highlight." + "field_background_color") + + def set_values(self): + """inorder to set values in the settings""" + res = super().set_values() + self.env['ir.config_parameter'].set_param( + 'mandatory_field_highlight.margin_left_color', + self.margin_left_color) + self.env['ir.config_parameter'].set_param( + 'mandatory_field_highlight.margin_right_color', + self.margin_right_color) + self.env['ir.config_parameter'].set_param( + 'mandatory_field_highlight.margin_top_color', + self.margin_top_color) + self.env['ir.config_parameter'].set_param( + 'mandatory_field_highlight.margin_bottom_color', + self.margin_bottom_color) + self.env['ir.config_parameter'].set_param( + 'mandatory_field_highlight.field_background_color', + self.field_background_color) + return res + + @api.model + def get_values(self): + """inorder to get values from the settings""" + res = super().get_values() + margin_left_color = self.env['ir.config_parameter'].sudo().get_param( + 'mandatory_field_highlight.margin_left_color') + margin_right_color = self.env['ir.config_parameter'].sudo().get_param( + 'mandatory_field_highlight.margin_right_color') + margin_top_color = self.env['ir.config_parameter'].sudo().get_param( + 'mandatory_field_highlight.margin_top_color') + margin_bottom_color = self.env['ir.config_parameter'].sudo().get_param( + 'mandatory_field_highlight.margin_bottom_color') + field_background_color = self.env['ir.config_parameter'].sudo().get_param( + 'mandatory_field_highlight.field_background_color') + res.update( + margin_left_color=margin_left_color, + margin_right_color=margin_right_color, + margin_top_color=margin_top_color, + margin_bottom_color=margin_bottom_color, + field_background_color=field_background_color) + return res diff --git a/mandatory_field_highlight/static/description/assets/icons/check.png b/mandatory_field_highlight/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/check.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/chevron.png b/mandatory_field_highlight/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/chevron.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/cogs.png b/mandatory_field_highlight/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/cogs.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/consultation.png b/mandatory_field_highlight/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/consultation.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/ecom-black.png b/mandatory_field_highlight/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/ecom-black.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/education-black.png b/mandatory_field_highlight/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/education-black.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/hotel-black.png b/mandatory_field_highlight/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/hotel-black.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/license.png b/mandatory_field_highlight/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/license.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/lifebuoy.png b/mandatory_field_highlight/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/lifebuoy.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/manufacturing-black.png b/mandatory_field_highlight/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/manufacturing-black.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/pos-black.png b/mandatory_field_highlight/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/pos-black.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/puzzle.png b/mandatory_field_highlight/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/puzzle.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/restaurant-black.png b/mandatory_field_highlight/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/restaurant-black.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/service-black.png b/mandatory_field_highlight/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/service-black.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/trading-black.png b/mandatory_field_highlight/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/trading-black.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/training.png b/mandatory_field_highlight/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/training.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/update.png b/mandatory_field_highlight/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/update.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/user.png b/mandatory_field_highlight/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/user.png differ diff --git a/mandatory_field_highlight/static/description/assets/icons/wrench.png b/mandatory_field_highlight/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/icons/wrench.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/Cybrosys R.png b/mandatory_field_highlight/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/Cybrosys R.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/categories.png b/mandatory_field_highlight/static/description/assets/misc/categories.png new file mode 100644 index 000000000..bedf1e0b1 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/categories.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/check-box.png b/mandatory_field_highlight/static/description/assets/misc/check-box.png new file mode 100644 index 000000000..42caf24b9 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/check-box.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/compass.png b/mandatory_field_highlight/static/description/assets/misc/compass.png new file mode 100644 index 000000000..d5fed8faa Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/compass.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/corporate.png b/mandatory_field_highlight/static/description/assets/misc/corporate.png new file mode 100644 index 000000000..2eb13edbf Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/corporate.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/customer-support.png b/mandatory_field_highlight/static/description/assets/misc/customer-support.png new file mode 100644 index 000000000..79efc72ed Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/customer-support.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/cybrosys-logo.png b/mandatory_field_highlight/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/cybrosys-logo.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/email.svg b/mandatory_field_highlight/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/mandatory_field_highlight/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mandatory_field_highlight/static/description/assets/misc/features.png b/mandatory_field_highlight/static/description/assets/misc/features.png new file mode 100644 index 000000000..b41769f77 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/features.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/logo.png b/mandatory_field_highlight/static/description/assets/misc/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/logo.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/phone.svg b/mandatory_field_highlight/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/mandatory_field_highlight/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/mandatory_field_highlight/static/description/assets/misc/pictures.png b/mandatory_field_highlight/static/description/assets/misc/pictures.png new file mode 100644 index 000000000..56d255fe9 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/pictures.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/pie-chart.png b/mandatory_field_highlight/static/description/assets/misc/pie-chart.png new file mode 100644 index 000000000..426e05244 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/pie-chart.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/right-arrow.png b/mandatory_field_highlight/static/description/assets/misc/right-arrow.png new file mode 100644 index 000000000..730984a06 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/right-arrow.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/star (1) 2.svg b/mandatory_field_highlight/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/mandatory_field_highlight/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/mandatory_field_highlight/static/description/assets/misc/star.png b/mandatory_field_highlight/static/description/assets/misc/star.png new file mode 100644 index 000000000..2eb9ab29f Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/star.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/support (1) 1.svg b/mandatory_field_highlight/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/mandatory_field_highlight/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/mandatory_field_highlight/static/description/assets/misc/support-email.svg b/mandatory_field_highlight/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/mandatory_field_highlight/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/mandatory_field_highlight/static/description/assets/misc/support.png b/mandatory_field_highlight/static/description/assets/misc/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/support.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/tick-mark.svg b/mandatory_field_highlight/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/mandatory_field_highlight/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/mandatory_field_highlight/static/description/assets/misc/whatsapp 1.svg b/mandatory_field_highlight/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/mandatory_field_highlight/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/mandatory_field_highlight/static/description/assets/misc/whatsapp.png b/mandatory_field_highlight/static/description/assets/misc/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/misc/whatsapp.png differ diff --git a/mandatory_field_highlight/static/description/assets/misc/whatsapp.svg b/mandatory_field_highlight/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/mandatory_field_highlight/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mandatory_field_highlight/static/description/assets/modules/1.png b/mandatory_field_highlight/static/description/assets/modules/1.png new file mode 100644 index 000000000..ba1058c42 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/modules/1.png differ diff --git a/mandatory_field_highlight/static/description/assets/modules/2.png b/mandatory_field_highlight/static/description/assets/modules/2.png new file mode 100644 index 000000000..6949185dd Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/modules/2.png differ diff --git a/mandatory_field_highlight/static/description/assets/modules/3.png b/mandatory_field_highlight/static/description/assets/modules/3.png new file mode 100644 index 000000000..4e506f79b Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/modules/3.png differ diff --git a/mandatory_field_highlight/static/description/assets/modules/4.png b/mandatory_field_highlight/static/description/assets/modules/4.png new file mode 100644 index 000000000..e78427938 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/modules/4.png differ diff --git a/mandatory_field_highlight/static/description/assets/modules/5.gif b/mandatory_field_highlight/static/description/assets/modules/5.gif new file mode 100644 index 000000000..2a5f8e659 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/modules/5.gif differ diff --git a/mandatory_field_highlight/static/description/assets/modules/5.png b/mandatory_field_highlight/static/description/assets/modules/5.png new file mode 100755 index 000000000..272ec20f9 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/modules/5.png differ diff --git a/mandatory_field_highlight/static/description/assets/modules/6.png b/mandatory_field_highlight/static/description/assets/modules/6.png new file mode 100644 index 000000000..7d5c3154f Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/modules/6.png differ diff --git a/mandatory_field_highlight/static/description/assets/modules/l2.png b/mandatory_field_highlight/static/description/assets/modules/l2.png new file mode 100644 index 000000000..f40a0756d Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/modules/l2.png differ diff --git a/mandatory_field_highlight/static/description/assets/modules/l3.png b/mandatory_field_highlight/static/description/assets/modules/l3.png new file mode 100644 index 000000000..5738a486e Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/modules/l3.png differ diff --git a/mandatory_field_highlight/static/description/assets/modules/l4.png b/mandatory_field_highlight/static/description/assets/modules/l4.png new file mode 100644 index 000000000..8d99e8c68 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/modules/l4.png differ diff --git a/mandatory_field_highlight/static/description/assets/modules/l5.png b/mandatory_field_highlight/static/description/assets/modules/l5.png new file mode 100644 index 000000000..3415917c2 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/modules/l5.png differ diff --git a/mandatory_field_highlight/static/description/assets/modules/l6.png b/mandatory_field_highlight/static/description/assets/modules/l6.png new file mode 100644 index 000000000..c7ea331ee Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/modules/l6.png differ diff --git a/mandatory_field_highlight/static/description/assets/screenshots/hero.gif b/mandatory_field_highlight/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..52d2579a0 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/screenshots/hero.gif differ diff --git a/mandatory_field_highlight/static/description/assets/screenshots/screenshot1.png b/mandatory_field_highlight/static/description/assets/screenshots/screenshot1.png new file mode 100644 index 000000000..48f6b7a16 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/screenshots/screenshot1.png differ diff --git a/mandatory_field_highlight/static/description/assets/screenshots/screenshot2.png b/mandatory_field_highlight/static/description/assets/screenshots/screenshot2.png new file mode 100644 index 000000000..522c7131f Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/screenshots/screenshot2.png differ diff --git a/mandatory_field_highlight/static/description/assets/screenshots/screenshot3.png b/mandatory_field_highlight/static/description/assets/screenshots/screenshot3.png new file mode 100644 index 000000000..f011802b9 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/screenshots/screenshot3.png differ diff --git a/mandatory_field_highlight/static/description/assets/screenshots/screenshot4.png b/mandatory_field_highlight/static/description/assets/screenshots/screenshot4.png new file mode 100644 index 000000000..063ac16e2 Binary files /dev/null and b/mandatory_field_highlight/static/description/assets/screenshots/screenshot4.png differ diff --git a/mandatory_field_highlight/static/description/banner.jpg b/mandatory_field_highlight/static/description/banner.jpg new file mode 100644 index 000000000..56e6eaa24 Binary files /dev/null and b/mandatory_field_highlight/static/description/banner.jpg differ diff --git a/mandatory_field_highlight/static/description/icon.png b/mandatory_field_highlight/static/description/icon.png new file mode 100644 index 000000000..7f064ae8c Binary files /dev/null and b/mandatory_field_highlight/static/description/icon.png differ diff --git a/mandatory_field_highlight/static/description/index.html b/mandatory_field_highlight/static/description/index.html new file mode 100644 index 000000000..09c8601ed --- /dev/null +++ b/mandatory_field_highlight/static/description/index.html @@ -0,0 +1,692 @@ + + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+
+

+ Highlight Mandatory Field

+

+ This will help you to highlight required fields in odoo. +

+
+ +
+
+
+
+
+

+ Key Highlights +

+
+
+
+
+
+ +
+
+

+ highlight the required fields in Odoo

+

This module + helps to style or highlight the required fields + in Odoo. + We can give different colors for borders of the + input boxes of the required fields. +

+
+
+
+
+
+
+ +
+
+

+ Set highlight field color

+

From the settings , + the highlight color can be selected +

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

+ User can select different colors for required + fields to highlight. We can set margin + right,margin left,margin top,margin bottom and + background color for the required field.

+
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ + +
+
+
+ +
+ +
+
+
    +
  • + User Friendly + Interface +
  • +
  • + Effective Time + management. + +
  • +
  • + User can select + different colors for required fields to highlight. +
  • + +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on:06th December 2023 +
+

+ + Initial Commit for Highlight Mandatory Field.

+
+
+
+
+
+
+
+

+ Related Products

+
+
+ +
+
+

+ Our Services

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

Odoo + Customization

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

Odoo + Implementation

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

Odoo + Support

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

Hire + Odoo Developer

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

Odoo + Integration

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

Odoo + Migration

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

Odoo + Consultancy

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

Odoo + Implementation

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

Odoo + Licensing Consultancy

+
+
+
+
+
+
+

+ Our Industries

+ +
+
+
+
+
+
+ +

Trading

+

Easily procure and sell your products

+
+
+
+
+ +

POS

+

Easy configuration and convivial experience

+
+
+
+
+ +

+ Education

+

A platform for educational management

+
+
+
+
+ +

+ Manufacturing

+

Plan, track and schedule your operations

+
+
+
+
+ +

E-commerce & + Website

+

Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +

Service + Management

+

Keep track of services and invoice

+
+
+
+
+ +

+ Restaurant

+

Run your bar or restaurant methodically

+
+
+
+
+ +

Hotel + Management

+

An all-inclusive hotel management application

+
+
+
+
+
+
+

+ Support

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

Got + questions or need help? Get in touch.

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

Say hi to + us on WhatsApp!

+
+91 + 99456767686 +
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/mandatory_field_highlight/static/src/js/action_manager.js b/mandatory_field_highlight/static/src/js/action_manager.js new file mode 100644 index 000000000..abce0c6f0 --- /dev/null +++ b/mandatory_field_highlight/static/src/js/action_manager.js @@ -0,0 +1,35 @@ +/** @odoo-module **/ +import { ActionContainer } from "@web/webclient/actions/action_container" +import { Component, xml, onWillDestroy } from "@odoo/owl"; +import { patch } from "@web/core/utils/patch"; + +//Patching the action container for showing the menu_lock wizard +patch(ActionContainer.prototype, { + setup() { + this.info = {}; + //Updating the action manager + this.onActionManagerUpdate = async ({ detail: info }) => { + this.info = info; + this.render(); + var list=[] + const rpc = this.env.services.rpc + const data = await rpc('/mandatory/config_params') + for (let x in data) { + list.push(data[x]); + } + const root = document.documentElement; + //Setting all the style properties + root.style.setProperty('--background-color',list[4]); + root.style.setProperty('--margin-left-color',list[0]); + root.style.setProperty('--margin-right-color',list[1]); + root.style.setProperty('--margin-top-color',list[2]); + root.style.setProperty('--margin-bottom-color',list[3]); + }; + this.env.bus.addEventListener("ACTION_MANAGER:UPDATE", + this.onActionManagerUpdate); + onWillDestroy(() => { + this.env.bus.removeEventListener("ACTION_MANAGER:UPDATE", + this.onActionManagerUpdate); + }); + } +}); diff --git a/mandatory_field_highlight/static/src/scss/field.scss b/mandatory_field_highlight/static/src/scss/field.scss new file mode 100644 index 000000000..221ce743a --- /dev/null +++ b/mandatory_field_highlight/static/src/scss/field.scss @@ -0,0 +1,20 @@ +:root { + --background-color:red; + --margin-left-color:inherit; + --margin-right-color:inherit; + --margin-top-color:inherit; + --margin-bottom-color:inherit; +} +$backgroundColor: var(--background-color); +$marginLeftColor: var(--margin-left-color); +$marginRightColor: var(--margin-right-color); +$marginTopColor: var(--margin-top-color); +$marginBottomColor: var(--margin-bottom-color); + +.o_required_modifier .o_input { + background: $backgroundColor !important; + border-bottom : solid $marginBottomColor 2px !important; + border-left : solid $marginLeftColor 2px !important; + border-right : solid $marginRightColor 2px !important; + border-top : solid $marginTopColor 2px !important; +} diff --git a/mandatory_field_highlight/views/res_config_settings_views.xml b/mandatory_field_highlight/views/res_config_settings_views.xml new file mode 100644 index 000000000..566e12ccd --- /dev/null +++ b/mandatory_field_highlight/views/res_config_settings_views.xml @@ -0,0 +1,70 @@ + + + + + + res.config.settings.view.form.inherit.mandatory.field.highlight + + res.config.settings + + + + + +

Field Settings

+ +
+
+
+
+ Mandatory Field + Highlight + +
+ Margin Left + Color + + +
+
+ Margin Right + Color + + +
+
+ Margin Top + Color + + +
+
+ Margin + Bottom Color + + +
+
+ Field + Background Color + + +
+
+
+
+ + + + diff --git a/multiple_reference_per_product/README.rst b/multiple_reference_per_product/README.rst new file mode 100644 index 000000000..3543ef905 --- /dev/null +++ b/multiple_reference_per_product/README.rst @@ -0,0 +1,50 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Multiple Reference Per Product +============================== +Allowing multiple references for each product. + +Features +======== +* Multiple reference code for a product template or product variant + +Configuration +============= +Nothing to configure. + +License +------- +Affero General Public License, v3.0 (AGPL v3). +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developers: (V17) Farhana Jahan PT,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/multiple_reference_per_product/__init__.py b/multiple_reference_per_product/__init__.py new file mode 100644 index 000000000..5cfc98aca --- /dev/null +++ b/multiple_reference_per_product/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Farhana Jahan PT (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/multiple_reference_per_product/__manifest__.py b/multiple_reference_per_product/__manifest__.py new file mode 100644 index 000000000..991235659 --- /dev/null +++ b/multiple_reference_per_product/__manifest__.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Farhana Jahan PT (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': "Multiple Reference Per Product", + 'version': '17.0.1.0.0', + 'summary': 'Allowing multiple references for each product.', + 'description': "Add multiple reference code for a product template or " + "product variant. Easily manage between the " + "different codes as default code for the product.", + 'category': 'Warehouse', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'depends': ['stock'], + 'website': "https://cybrosys.com/", + 'data': [ + 'security/ir.model.access.csv', + 'views/multiple_reference_per_product.xml', + 'views/product_product.xml', + 'views/product_template.xml', + ], + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, + } diff --git a/multiple_reference_per_product/doc/RELEASE_NOTES.md b/multiple_reference_per_product/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..1a3cd20bc --- /dev/null +++ b/multiple_reference_per_product/doc/RELEASE_NOTES.md @@ -0,0 +1,5 @@ +## Module +#### 16.12.2023 +#### Version 17.0.1.0.0 +#### ADD +- Initial commit for Multiple Reference Per Product diff --git a/multiple_reference_per_product/models/__init__.py b/multiple_reference_per_product/models/__init__.py new file mode 100644 index 000000000..ce72036ce --- /dev/null +++ b/multiple_reference_per_product/models/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Farhana Jahan PT (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 multiple_reference_per_product +from . import product_product +from . import product_template diff --git a/multiple_reference_per_product/models/multiple_reference_per_product.py b/multiple_reference_per_product/models/multiple_reference_per_product.py new file mode 100644 index 000000000..b1568fb4a --- /dev/null +++ b/multiple_reference_per_product/models/multiple_reference_per_product.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Farhana Jahan PT (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 MultipleReferencePerProduct(models.Model): + """Create a new model for managing multiple references.""" + _name = 'multiple.reference.per.product' + _description = 'Multiple Reference Per Product' + _rec_name = 'multiple_references_name' + + multiple_references_name = fields.Char(string='Multiple References', + required=True, + help="Name for Multiple Reference") + product_id = fields.Many2one('product.product', string="Product", + required=True, + help="Choose Product for Multiple Reference") + is_default_reference = fields.Boolean(string="Is Default Reference", + compute='_is_default_reference', + help="Checks it is Default Reference" + " or not") + + def _is_default_reference(self): + """Check if the current code is default code for the product""" + for reference in self: + if reference.product_id: + reference.is_default_reference = True if reference.product_id.default_code == reference.multiple_references_name else False + + def action_set_as_default(self): + """Set the current code as default code for the product""" + self.ensure_one() + self.product_id.default_code = self.multiple_references_name + + def create_reference(self, reference_code, product_id): + """Add existing default code into the reference model""" + reference = self.create({ + 'multiple_references_name': reference_code, + 'product_id': product_id, + }) + return True if reference else False + + @api.model + def create(self, values): + """Function to prevent the creation of duplicate references when + adding a new record.""" + if values.get('multiple_references_name') and values.get('product_id'): + reference_code = self.search([('multiple_references_name', '=', + values.get( + 'multiple_references_name')), ( + 'product_id', '=', + values.get('product_id'))]) + if reference_code: + res = reference_code[0] + else: + return super(MultipleReferencePerProduct, self).create(values) + if not res.product_id.default_code: + res.product_id.default_code = res.multiple_references_name + return res + else: + res = super(MultipleReferencePerProduct, self).create(values) + return res + + def write(self, values): + """Function to eliminate duplicate references when editing details.""" + multiple_references_name = values.get('multiple_references_name') + multiple_references_name = [ + multiple_references_name] if multiple_references_name else self.mapped( + 'name') + product_id = values.get('product_id') + product_ids = [product_id] if product_id else self.mapped( + 'product_id').ids + reference_code = self.search( + [('multiple_references_name', 'in', multiple_references_name), + ('product_id', 'in', product_ids)]) + if reference_code: + return False + return super(MultipleReferencePerProduct, self).write(values) diff --git a/multiple_reference_per_product/models/product_product.py b/multiple_reference_per_product/models/product_product.py new file mode 100644 index 000000000..7d828b9d7 --- /dev/null +++ b/multiple_reference_per_product/models/product_product.py @@ -0,0 +1,83 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Farhana Jahan PT (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 ProductProductInherit(models.Model): + """Inherit the 'product_product' model to include Multiple References in + the form view.""" + _inherit = 'product.product' + + multiple_references_ids = fields.One2many("multiple.reference.per.product", + "product_id", + string="Multiple References", + help="Choose Multiple Reference" + " per Product and checks " + "simultaneously") + multiple_references_code = fields.Char(string="Multiple References", + related="multiple_references_ids" + ".multiple_references_name", + help="Enter Code for Multiple " + "Reference") + multiple_product_references_ids = fields.Many2many( + "multiple.reference.per.product", + string="Multiple References", + compute="_get_multiple_reference", + help="Choose Multiple Reference" + "per Product") + multiple_references_count = fields.Integer(string="Number of references", + compute="_get_multiple_reference_count", + help="Enter Number of Reference") + + @api.depends('multiple_product_references_ids') + def _get_multiple_reference_count(self): + """Function to get the count of reference code""" + self.multiple_references_count = len(self.multiple_references_ids) + + def _get_multiple_reference(self): + """Function for getting all Multiple References""" + self.multiple_product_references_ids = self.multiple_references_ids.filtered( + lambda + references: references.multiple_references_name != self.default_code).ids + + def multiple_references_list(self): + """Function to open the Multiple References form and tree view + when clicking the 'Add More' button.""" + return { + 'name': "Multiple References", + 'type': 'ir.actions.act_window', + 'target': 'current', + 'res_model': 'multiple.reference.per.product', + 'views': [[False, "tree"], [False, "form"]], + 'context': {'default_product_id': self.id}, + 'domain': [('product_id', '=', self.id)], + } + + def write(self, values): + """Function for update the Product Reference""" + if values.get('default_code'): + if self.default_code: + self.env[ + 'multiple.reference.per.product'].sudo().create_reference( + self.default_code, self.id) + res = super(ProductProductInherit, self).write(values) + return res diff --git a/multiple_reference_per_product/models/product_template.py b/multiple_reference_per_product/models/product_template.py new file mode 100644 index 000000000..aec981cf9 --- /dev/null +++ b/multiple_reference_per_product/models/product_template.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Farhana Jahan PT (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 ProductTemplateInherit(models.Model): + """Inherit product_template model for adding multiple_reference_code""" + _inherit = 'product.template' + + multiple_references_code = fields.Char(string="Multiple References", + related="product_variant_ids" + ".multiple_references_ids" + ".multiple_references_name", + help="Enter Code for Multiple " + "Reference") + multiple_product_references_ids = fields.Many2many( + "multiple.reference.per.product", + string="Multiple References", + compute="_get_multiple_reference", + help="Choose Multiple Reference" + " per Product") + multiple_references_count = fields.Integer(string="Number of References", + compute="_get_multiple_reference_count", + help="Enter Number of Reference") + + @api.depends('multiple_product_references_ids') + def _get_multiple_reference_count(self): + """Function for getting total count of References""" + self.multiple_references_count = len( + self.multiple_product_references_ids) + + def _get_multiple_reference(self): + """Function for getting all Multiple References""" + self.multiple_product_references_ids = self.product_variant_ids.mapped( + 'multiple_product_references_ids').filtered(lambda + references: references.multiple_references_name != self.default_code).ids + + def multiple_references_list(self): + """Function to open the Multiple References form and tree view + when clicking the 'Add More' button.""" + return { + 'name': "Multiple References", + 'type': 'ir.actions.act_window', + 'target': 'current', + 'res_model': 'multiple.reference.per.product', + 'views': [[False, "tree"], [False, "form"]], + 'context': {'default_product_id': self.product_variant_id.id}, + 'domain': [('product_id', '=', self.product_variant_id.id)], + } diff --git a/multiple_reference_per_product/security/ir.model.access.csv b/multiple_reference_per_product/security/ir.model.access.csv new file mode 100644 index 000000000..b36182a74 --- /dev/null +++ b/multiple_reference_per_product/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_multiple_reference_per_product,multiple.reference.per.product,model_multiple_reference_per_product,base.group_user,1,1,1,1 diff --git a/multiple_reference_per_product/static/description/assets/icons/capture (1).png b/multiple_reference_per_product/static/description/assets/icons/capture (1).png new file mode 100644 index 000000000..8824deafc Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/capture (1).png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/check.png b/multiple_reference_per_product/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/check.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/chevron.png b/multiple_reference_per_product/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/chevron.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/cogs.png b/multiple_reference_per_product/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/cogs.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/consultation.png b/multiple_reference_per_product/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/consultation.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/ecom-black.png b/multiple_reference_per_product/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/ecom-black.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/education-black.png b/multiple_reference_per_product/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/education-black.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/hotel-black.png b/multiple_reference_per_product/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/hotel-black.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/img.png b/multiple_reference_per_product/static/description/assets/icons/img.png new file mode 100644 index 000000000..70197f477 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/img.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/license.png b/multiple_reference_per_product/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/license.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/lifebuoy.png b/multiple_reference_per_product/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/lifebuoy.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/manufacturing-black.png b/multiple_reference_per_product/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/manufacturing-black.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/photo-capture.png b/multiple_reference_per_product/static/description/assets/icons/photo-capture.png new file mode 100644 index 000000000..06c111758 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/photo-capture.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/pos-black.png b/multiple_reference_per_product/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/pos-black.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/puzzle.png b/multiple_reference_per_product/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/puzzle.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/restaurant-black.png b/multiple_reference_per_product/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/restaurant-black.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/service-black.png b/multiple_reference_per_product/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/service-black.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/trading-black.png b/multiple_reference_per_product/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/trading-black.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/training.png b/multiple_reference_per_product/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/training.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/update.png b/multiple_reference_per_product/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/update.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/user.png b/multiple_reference_per_product/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/user.png differ diff --git a/multiple_reference_per_product/static/description/assets/icons/wrench.png b/multiple_reference_per_product/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/icons/wrench.png differ diff --git a/multiple_reference_per_product/static/description/assets/misc/Cybrosys R.png b/multiple_reference_per_product/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/misc/Cybrosys R.png differ diff --git a/multiple_reference_per_product/static/description/assets/misc/email.svg b/multiple_reference_per_product/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/multiple_reference_per_product/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/multiple_reference_per_product/static/description/assets/misc/phone.svg b/multiple_reference_per_product/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/multiple_reference_per_product/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/multiple_reference_per_product/static/description/assets/misc/star (1) 2.svg b/multiple_reference_per_product/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/multiple_reference_per_product/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/multiple_reference_per_product/static/description/assets/misc/support (1) 1.svg b/multiple_reference_per_product/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/multiple_reference_per_product/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/multiple_reference_per_product/static/description/assets/misc/support-email.svg b/multiple_reference_per_product/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/multiple_reference_per_product/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/multiple_reference_per_product/static/description/assets/misc/tick-mark.svg b/multiple_reference_per_product/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/multiple_reference_per_product/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/multiple_reference_per_product/static/description/assets/misc/whatsapp 1.svg b/multiple_reference_per_product/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/multiple_reference_per_product/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/multiple_reference_per_product/static/description/assets/misc/whatsapp.svg b/multiple_reference_per_product/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/multiple_reference_per_product/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/multiple_reference_per_product/static/description/assets/modules/1.png b/multiple_reference_per_product/static/description/assets/modules/1.png new file mode 100644 index 000000000..cb17cf612 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/modules/1.png differ diff --git a/multiple_reference_per_product/static/description/assets/modules/2.png b/multiple_reference_per_product/static/description/assets/modules/2.png new file mode 100644 index 000000000..0e311ca87 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/modules/2.png differ diff --git a/multiple_reference_per_product/static/description/assets/modules/3.png b/multiple_reference_per_product/static/description/assets/modules/3.png new file mode 100644 index 000000000..a0ac2d840 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/modules/3.png differ diff --git a/multiple_reference_per_product/static/description/assets/modules/4.png b/multiple_reference_per_product/static/description/assets/modules/4.png new file mode 100644 index 000000000..e78427938 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/modules/4.png differ diff --git a/multiple_reference_per_product/static/description/assets/modules/5.png b/multiple_reference_per_product/static/description/assets/modules/5.png new file mode 100755 index 000000000..272ec20f9 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/modules/5.png differ diff --git a/multiple_reference_per_product/static/description/assets/modules/6.png b/multiple_reference_per_product/static/description/assets/modules/6.png new file mode 100644 index 000000000..7d5c3154f Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/modules/6.png differ diff --git a/multiple_reference_per_product/static/description/assets/screenshots/1.png b/multiple_reference_per_product/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..6c39625d3 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/screenshots/1.png differ diff --git a/multiple_reference_per_product/static/description/assets/screenshots/2.png b/multiple_reference_per_product/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..4f09813a8 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/screenshots/2.png differ diff --git a/multiple_reference_per_product/static/description/assets/screenshots/3.png b/multiple_reference_per_product/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..11b953b69 Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/screenshots/3.png differ diff --git a/multiple_reference_per_product/static/description/assets/screenshots/hero.gif b/multiple_reference_per_product/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..f78be992c Binary files /dev/null and b/multiple_reference_per_product/static/description/assets/screenshots/hero.gif differ diff --git a/multiple_reference_per_product/static/description/banner.jpg b/multiple_reference_per_product/static/description/banner.jpg new file mode 100644 index 000000000..115e1eee1 Binary files /dev/null and b/multiple_reference_per_product/static/description/banner.jpg differ diff --git a/multiple_reference_per_product/static/description/icon.png b/multiple_reference_per_product/static/description/icon.png new file mode 100644 index 000000000..c6d0ca3bc Binary files /dev/null and b/multiple_reference_per_product/static/description/icon.png differ diff --git a/multiple_reference_per_product/static/description/index.html b/multiple_reference_per_product/static/description/index.html new file mode 100644 index 000000000..8d829de69 --- /dev/null +++ b/multiple_reference_per_product/static/description/index.html @@ -0,0 +1,790 @@ + + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+
+

+ Multiple Reference Per Product

+

+ Allowing Multiple References for each Product. +

+
+ +
+
+
+
+
+

+ Key Highlights +

+
+
+
+
+
+ +
+
+

+ Multiple Reference Per Product

+

Incorporate Multiple Reference Codes for a Product. +

+
+
+
+
+
+
+ +
+
+

+ Effortlessly manage between different Reference Codes.

+

+ Set the default Code for a Product from these Reference Codes. +

+
+
+
+
+
+
+ +
+
+

+ Multiple Reference Code

+

Add Multiple Reference Codes for a Product. +

+
+
+
+
+
+
+ +
+
+

+ Manage Easily

+

Efficiently manage different Reference Codes. +

+
+
+
+
+
+
+ +
+
+

+ Default Code

+

Set the default Code for a Product from among these Reference Codes. +

+
+
+
+
+
+
+ +
+
+

+ Easy Search

+

Search Products using any of the Multiple Reference Codes. +

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

+ On the product page, there is a button named 'Add More.' By clicking it, you can create more References for that Product.

+
+
+
+
+
+
+ +
+
+

+ You can set Reference as the Default Reference for the Product by clicking 'Set As Default'.

+
+
+
+
+
+
+ +
+
+

+ When you click on the 'Set As Default' button, a Multiple Reference field becomes visible where you can see all References for the Product.

+
+
+
+
+
+
+
    +
  • + Multiple Reference Per Product +
  • +
  • + Effortlessly manage between different reference codes +
  • +
  • + Multiple Reference Code +
      +
    • +
    • +
    +
  • +
  • + Manage Easily +
      +
    • +
    • +
    +
  • +
  • + Default Code +
      +
    • +
    • +
    +
  • +
  • + Easy Search +
      +
    • +
    • +
    +
  • + +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on:16th Dec 2023 +
+

+ + Initial Commit for Multiple Reference Per Product.

+
+
+
+
+
+
+
+

+ Related Products

+
+
+ +
+
+

+ Our Services

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

Odoo + Customization

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

Odoo + Implementation

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

Odoo + Support

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

Hire + Odoo Developer

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

Odoo + Integration

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

Odoo + Migration

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

Odoo + Consultancy

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

Odoo + Implementation

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

Odoo + Licensing Consultancy

+
+
+
+
+
+
+

+ Our Industries

+ +
+
+
+
+
+
+ +

Trading

+

Easily procure and sell your products

+
+
+
+
+ +

POS

+

Easy configuration and convivial experience

+
+
+
+
+ +

+ Education

+

A platform for educational management

+
+
+
+
+ +

+ Manufacturing

+

Plan, track and schedule your operations

+
+
+
+
+ +

E-commerce & + Website

+

Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +

Service + Management

+

Keep track of services and invoice

+
+
+
+
+ +

+ Restaurant

+

Run your bar or restaurant methodically

+
+
+
+
+ +

Hotel + Management

+

An all-inclusive hotel management application

+
+
+
+
+
+
+

+ Support

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

Got + questions or need help? Get in touch.

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

Say hi to + us on WhatsApp!

+
+91 + 99456767686 +
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/multiple_reference_per_product/views/multiple_reference_per_product.xml b/multiple_reference_per_product/views/multiple_reference_per_product.xml new file mode 100644 index 000000000..c119d317d --- /dev/null +++ b/multiple_reference_per_product/views/multiple_reference_per_product.xml @@ -0,0 +1,37 @@ + + + + + multiple.reference.per.product.view.tree + multiple.reference.per.product + + + + + + + + + + multiple.reference.per.product.view.form + multiple.reference.per.product + +
+ + + + + + +
+ + + + +
+
diff --git a/multiple_reference_per_product/views/product_template.xml b/multiple_reference_per_product/views/product_template.xml new file mode 100644 index 000000000..dfc29c19a --- /dev/null +++ b/multiple_reference_per_product/views/product_template.xml @@ -0,0 +1,41 @@ + + + + + + product.template.view.form.inherit.multiple.reference.per.product + + product.template + + + + + + + + product.product.view.search.inherit.multiple.reference.product + + product.template + + + + + + + + + diff --git a/pos_greetings/README.rst b/pos_greetings/README.rst new file mode 100644 index 000000000..afafd4e88 --- /dev/null +++ b/pos_greetings/README.rst @@ -0,0 +1,54 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +POS Customer Greeting Messages +============================== +This module allow to send a greeting message to the POS customer after +validating the POS order using the twilio python package.After installing this +module, users are encouraged to test its functionality with a Twilio trial +account. + +Configuration +============ +- www.odoo.com/documentation/17.0/setup/install.html +- Install our custom addon + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3) +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Credits +------- +* Developers: (V17) SRUTHI PAVITHRAN, + (V16) SWAROOP N P, + (V15) SWAROOP N P, + (V14) SWAROOP N P, + (V13) YADHU K + Contact: odoo@cybrosys.com + +Contacts +-------- +* Contact : odoo@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/pos_greetings/__init__.py b/pos_greetings/__init__.py new file mode 100644 index 000000000..442726863 --- /dev/null +++ b/pos_greetings/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Sruthi Pavithran (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/pos_greetings/__manifest__.py b/pos_greetings/__manifest__.py new file mode 100644 index 000000000..bf76e30ae --- /dev/null +++ b/pos_greetings/__manifest__.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Sruthi Pavithran (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': 'POS Customer Greeting Messages', + 'version': '17.0.1.0.0', + 'category': 'Point of Sale', + 'summary': 'Send Greeting messages to Customers in Pos Order', + 'description': """This module allow to send a greeting message to the POS + customer after validating the POS order using the twilio python package. + After installing this module, users are encouraged to test its + functionality with a Twilio trial account.""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': ['point_of_sale'], + 'data': [ + 'security/ir.model.access.csv', + 'views/res_config_settings_views.xml', + 'views/pos_greetings_views.xml', + ], + 'external_dependencies': {'python': ['twilio']}, + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/pos_greetings/doc/RELEASE_NOTES.md b/pos_greetings/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..8909160e5 --- /dev/null +++ b/pos_greetings/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 04.12.2023 +#### Version 17.0.1.0.0 +##### ADD +- Initial commit for POS Customer Greeting Messages diff --git a/pos_greetings/models/__init__.py b/pos_greetings/models/__init__.py new file mode 100644 index 000000000..6a62cc5e1 --- /dev/null +++ b/pos_greetings/models/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Sruthi Pavithran (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 pos_greetings +from . import pos_order +from . import res_config_settings diff --git a/pos_greetings/models/pos_greetings.py b/pos_greetings/models/pos_greetings.py new file mode 100644 index 000000000..2838be80e --- /dev/null +++ b/pos_greetings/models/pos_greetings.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Sruthi Pavithran (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 PosGreetings(models.Model): + """Model for creating pos greetings details""" + _name = 'pos.greetings' + _description = 'POS Greetings' + _rec_name = 'order_id' + + customer_id = fields.Many2one('res.partner', + help="Select customer for sending greetings", + string='Customer') + order_id = fields.Many2one('pos.order', + help="Pos order details of related to the " + "greeting messages", + string='Order') + auth_token = fields.Char(string="Token", + help="Authentication token for sending " + "greetings messages") + twilio_number = fields.Char('Twilio Number', + help="Twilio number for sending greetings " + "messages") + to_number = fields.Char('Customer Number', + help="Add the receiver number for sending " + "greetings") + sms_body = fields.Char('Body', required=True, + help="Body of the greetings message") + session_id = fields.Many2one('pos.session', string='Session', + help="Pos session id which the greetings " + "messages related to") + send_sms = fields.Boolean(string='Send SMS', + help="Used for identifying is the sms is send " + "or not ", + default=False) diff --git a/pos_greetings/models/pos_order.py b/pos_greetings/models/pos_order.py new file mode 100644 index 000000000..bb18aaa35 --- /dev/null +++ b/pos_greetings/models/pos_order.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Sruthi Pavithran (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 twilio.rest import Client +from odoo import api, models + + +class PosOrder(models.Model): + """This class inherit the 'pos.order' model to add functionality for + sending SMS messages to customers when orders are created.""" + _inherit = 'pos.order' + + @api.model + def create_from_ui(self, orders, draft=False): + """Create POS orders from the user interface and send SMS messages to + customers.This method creates POS orders from the provided data and + sends SMS messages to customers if the 'customer_msg' parameter is + set and the customer has a valid phone number.""" + res = super(PosOrder, self).create_from_ui(orders) + id = [line['id'] for line in res if line['id']] + if backend_order := self.search([('id', 'in', id)]): + for pos_order in backend_order: + params = self.env['ir.config_parameter'].sudo() + customer_msg = params.get_param('pos_greetings.customer_msg') + auth_token = params.get_param('pos_greetings.auth_token') + account_sid = params.get_param('pos_greetings.account_sid') + twilio_number = params.get_param('pos_greetings.twilio_number') + sms_body = params.get_param('pos_greetings.sms_body') + if customer_msg and pos_order.partner_id.phone: + try: + customer_phone = str(pos_order.partner_id.phone) +# Download the helper library from https://www.twilio.com/docs/python/install + client = Client(account_sid, auth_token) + message = client.messages.create( + body=sms_body, + from_=twilio_number, + to=customer_phone + ) + self.env['pos.greetings'].create({ + 'customer_id': pos_order.partner_id.id, + 'order_id': pos_order.id, + 'auth_token': auth_token, + 'twilio_number': twilio_number, + 'to_number': customer_phone, + 'session_id': pos_order.session_id.id, + 'sms_body': sms_body, + 'send_sms': True, + }) + except Exception: + pass + return res diff --git a/pos_greetings/models/res_config_settings.py b/pos_greetings/models/res_config_settings.py new file mode 100644 index 000000000..2d68b256d --- /dev/null +++ b/pos_greetings/models/res_config_settings.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Sruthi Pavithran (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 ResConfigSettings(models.TransientModel): + """This model inherits the 'res.config.settings' model to provide + configuration options for the POS Greetings module.Users can configure + settings for sending SMS messages to customers using Twilio.""" + _inherit = 'res.config.settings' + + customer_msg = fields.Boolean('POS Greetings', + config_parameter='pos_greetings.customer_msg', + Help='Create an account if you ' + 'ever create an account') + auth_token = fields.Char('Auth Token', + config_parameter='pos_greetings.auth_token', + Help='Copy the token from your twilio console ' + 'window and paste here', required=True) + account_sid = fields.Char('Account SID', + config_parameter='pos_greetings.account_sid', + required=True) + twilio_number = fields.Char('Twilio Number', + config_parameter='pos_greetings.twilio_number', + Help='The number provided by ' + 'twilio used to send ' + 'text messages', + required=True) + sms_body = fields.Char('Body', required=True, + config_parameter='pos_greetings.sms_body') diff --git a/pos_greetings/security/ir.model.access.csv b/pos_greetings/security/ir.model.access.csv new file mode 100644 index 000000000..6a4780fbd --- /dev/null +++ b/pos_greetings/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_pos_greetings_user,access.pos.greetings.user,model_pos_greetings,base.group_user,1,0,1,0 diff --git a/pos_greetings/static/description/assets/icons/check.png b/pos_greetings/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/pos_greetings/static/description/assets/icons/check.png differ diff --git a/pos_greetings/static/description/assets/icons/chevron.png b/pos_greetings/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/pos_greetings/static/description/assets/icons/chevron.png differ diff --git a/pos_greetings/static/description/assets/icons/cogs.png b/pos_greetings/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/pos_greetings/static/description/assets/icons/cogs.png differ diff --git a/pos_greetings/static/description/assets/icons/consultation.png b/pos_greetings/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/pos_greetings/static/description/assets/icons/consultation.png differ diff --git a/pos_greetings/static/description/assets/icons/ecom-black.png b/pos_greetings/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/pos_greetings/static/description/assets/icons/ecom-black.png differ diff --git a/pos_greetings/static/description/assets/icons/education-black.png b/pos_greetings/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/pos_greetings/static/description/assets/icons/education-black.png differ diff --git a/pos_greetings/static/description/assets/icons/hotel-black.png b/pos_greetings/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/pos_greetings/static/description/assets/icons/hotel-black.png differ diff --git a/pos_greetings/static/description/assets/icons/license.png b/pos_greetings/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/pos_greetings/static/description/assets/icons/license.png differ diff --git a/pos_greetings/static/description/assets/icons/lifebuoy.png b/pos_greetings/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/pos_greetings/static/description/assets/icons/lifebuoy.png differ diff --git a/pos_greetings/static/description/assets/icons/logo.png b/pos_greetings/static/description/assets/icons/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/pos_greetings/static/description/assets/icons/logo.png differ diff --git a/pos_greetings/static/description/assets/icons/manufacturing-black.png b/pos_greetings/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/pos_greetings/static/description/assets/icons/manufacturing-black.png differ diff --git a/pos_greetings/static/description/assets/icons/pos-black.png b/pos_greetings/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/pos_greetings/static/description/assets/icons/pos-black.png differ diff --git a/pos_greetings/static/description/assets/icons/puzzle.png b/pos_greetings/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/pos_greetings/static/description/assets/icons/puzzle.png differ diff --git a/pos_greetings/static/description/assets/icons/restaurant-black.png b/pos_greetings/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/pos_greetings/static/description/assets/icons/restaurant-black.png differ diff --git a/pos_greetings/static/description/assets/icons/service-black.png b/pos_greetings/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/pos_greetings/static/description/assets/icons/service-black.png differ diff --git a/pos_greetings/static/description/assets/icons/trading-black.png b/pos_greetings/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/pos_greetings/static/description/assets/icons/trading-black.png differ diff --git a/pos_greetings/static/description/assets/icons/training.png b/pos_greetings/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/pos_greetings/static/description/assets/icons/training.png differ diff --git a/pos_greetings/static/description/assets/icons/update.png b/pos_greetings/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/pos_greetings/static/description/assets/icons/update.png differ diff --git a/pos_greetings/static/description/assets/icons/user.png b/pos_greetings/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/pos_greetings/static/description/assets/icons/user.png differ diff --git a/pos_greetings/static/description/assets/icons/wrench.png b/pos_greetings/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/pos_greetings/static/description/assets/icons/wrench.png differ diff --git a/pos_greetings/static/description/assets/misc/Cybrosys R.png b/pos_greetings/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/pos_greetings/static/description/assets/misc/Cybrosys R.png differ diff --git a/pos_greetings/static/description/assets/misc/email.svg b/pos_greetings/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/pos_greetings/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pos_greetings/static/description/assets/misc/phone.svg b/pos_greetings/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/pos_greetings/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/pos_greetings/static/description/assets/misc/star (1) 2.svg b/pos_greetings/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/pos_greetings/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/pos_greetings/static/description/assets/misc/support (1) 1.svg b/pos_greetings/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/pos_greetings/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/pos_greetings/static/description/assets/misc/support-email.svg b/pos_greetings/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/pos_greetings/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/pos_greetings/static/description/assets/misc/tick-mark.svg b/pos_greetings/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/pos_greetings/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/pos_greetings/static/description/assets/misc/whatsapp 1.svg b/pos_greetings/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/pos_greetings/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/pos_greetings/static/description/assets/misc/whatsapp.svg b/pos_greetings/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/pos_greetings/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pos_greetings/static/description/assets/modules/1.png b/pos_greetings/static/description/assets/modules/1.png new file mode 100644 index 000000000..5ecc4d883 Binary files /dev/null and b/pos_greetings/static/description/assets/modules/1.png differ diff --git a/pos_greetings/static/description/assets/modules/2.png b/pos_greetings/static/description/assets/modules/2.png new file mode 100644 index 000000000..05ed3ee8c Binary files /dev/null and b/pos_greetings/static/description/assets/modules/2.png differ diff --git a/pos_greetings/static/description/assets/modules/3.png b/pos_greetings/static/description/assets/modules/3.png new file mode 100644 index 000000000..5514bb8d4 Binary files /dev/null and b/pos_greetings/static/description/assets/modules/3.png differ diff --git a/pos_greetings/static/description/assets/modules/4.png b/pos_greetings/static/description/assets/modules/4.png new file mode 100644 index 000000000..38ea1f663 Binary files /dev/null and b/pos_greetings/static/description/assets/modules/4.png differ diff --git a/pos_greetings/static/description/assets/modules/5.png b/pos_greetings/static/description/assets/modules/5.png new file mode 100644 index 000000000..dcbd0cb06 Binary files /dev/null and b/pos_greetings/static/description/assets/modules/5.png differ diff --git a/pos_greetings/static/description/assets/modules/6.png b/pos_greetings/static/description/assets/modules/6.png new file mode 100644 index 000000000..05ed3ee8c Binary files /dev/null and b/pos_greetings/static/description/assets/modules/6.png differ diff --git a/pos_greetings/static/description/assets/screenshots/greet.png b/pos_greetings/static/description/assets/screenshots/greet.png new file mode 100644 index 000000000..4023dbec7 Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/greet.png differ diff --git a/pos_greetings/static/description/assets/screenshots/greet_01.png b/pos_greetings/static/description/assets/screenshots/greet_01.png new file mode 100644 index 000000000..a09476e24 Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/greet_01.png differ diff --git a/pos_greetings/static/description/assets/screenshots/greet_02.png b/pos_greetings/static/description/assets/screenshots/greet_02.png new file mode 100644 index 000000000..f32c70d81 Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/greet_02.png differ diff --git a/pos_greetings/static/description/assets/screenshots/greet_03.png b/pos_greetings/static/description/assets/screenshots/greet_03.png new file mode 100644 index 000000000..bb3444a7d Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/greet_03.png differ diff --git a/pos_greetings/static/description/assets/screenshots/greet_04.png b/pos_greetings/static/description/assets/screenshots/greet_04.png new file mode 100644 index 000000000..a3b88e291 Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/greet_04.png differ diff --git a/pos_greetings/static/description/assets/screenshots/greet_05.png b/pos_greetings/static/description/assets/screenshots/greet_05.png new file mode 100644 index 000000000..f3acd348b Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/greet_05.png differ diff --git a/pos_greetings/static/description/assets/screenshots/greet_06.png b/pos_greetings/static/description/assets/screenshots/greet_06.png new file mode 100644 index 000000000..ee2d8fbef Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/greet_06.png differ diff --git a/pos_greetings/static/description/assets/screenshots/greet_07.png b/pos_greetings/static/description/assets/screenshots/greet_07.png new file mode 100644 index 000000000..24692483d Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/greet_07.png differ diff --git a/pos_greetings/static/description/assets/screenshots/greet_09.png b/pos_greetings/static/description/assets/screenshots/greet_09.png new file mode 100644 index 000000000..4d51dfae0 Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/greet_09.png differ diff --git a/pos_greetings/static/description/assets/screenshots/greetings6.png b/pos_greetings/static/description/assets/screenshots/greetings6.png new file mode 100644 index 000000000..10dc8c1f3 Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/greetings6.png differ diff --git a/pos_greetings/static/description/assets/screenshots/hero.gif b/pos_greetings/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..01da62410 Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/hero.gif differ diff --git a/pos_greetings/static/description/assets/screenshots/pos_greetings_01.png b/pos_greetings/static/description/assets/screenshots/pos_greetings_01.png new file mode 100644 index 000000000..b049f0e60 Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/pos_greetings_01.png differ diff --git a/pos_greetings/static/description/assets/screenshots/pos_greetings_02.png b/pos_greetings/static/description/assets/screenshots/pos_greetings_02.png new file mode 100644 index 000000000..da7d3f7b5 Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/pos_greetings_02.png differ diff --git a/pos_greetings/static/description/assets/screenshots/pos_greetings_03.png b/pos_greetings/static/description/assets/screenshots/pos_greetings_03.png new file mode 100644 index 000000000..f3ca01c04 Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/pos_greetings_03.png differ diff --git a/pos_greetings/static/description/assets/screenshots/pos_greetings_04.png b/pos_greetings/static/description/assets/screenshots/pos_greetings_04.png new file mode 100644 index 000000000..42af0aa0f Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/pos_greetings_04.png differ diff --git a/pos_greetings/static/description/assets/screenshots/pos_greetings_05.png b/pos_greetings/static/description/assets/screenshots/pos_greetings_05.png new file mode 100644 index 000000000..4613bf2cd Binary files /dev/null and b/pos_greetings/static/description/assets/screenshots/pos_greetings_05.png differ diff --git a/pos_greetings/static/description/banner.jpg b/pos_greetings/static/description/banner.jpg new file mode 100644 index 000000000..d859c6a6d Binary files /dev/null and b/pos_greetings/static/description/banner.jpg differ diff --git a/pos_greetings/static/description/icon.png b/pos_greetings/static/description/icon.png new file mode 100644 index 000000000..e4b7160a8 Binary files /dev/null and b/pos_greetings/static/description/icon.png differ diff --git a/pos_greetings/static/description/images/checked.png b/pos_greetings/static/description/images/checked.png new file mode 100644 index 000000000..578cedb80 Binary files /dev/null and b/pos_greetings/static/description/images/checked.png differ diff --git a/pos_greetings/static/description/images/cybrosys.png b/pos_greetings/static/description/images/cybrosys.png new file mode 100644 index 000000000..e69de29bb diff --git a/pos_greetings/static/description/images/image_1.png b/pos_greetings/static/description/images/image_1.png new file mode 100644 index 000000000..e2fda1e9b Binary files /dev/null and b/pos_greetings/static/description/images/image_1.png differ diff --git a/pos_greetings/static/description/images/image_2.png b/pos_greetings/static/description/images/image_2.png new file mode 100644 index 000000000..e69de29bb diff --git a/pos_greetings/static/description/images/image_3.png b/pos_greetings/static/description/images/image_3.png new file mode 100644 index 000000000..8ec3e537a Binary files /dev/null and b/pos_greetings/static/description/images/image_3.png differ diff --git a/pos_greetings/static/description/images/pos_filter.jpeg b/pos_greetings/static/description/images/pos_filter.jpeg new file mode 100644 index 000000000..e69de29bb diff --git a/pos_greetings/static/description/images/pos_logo.png b/pos_greetings/static/description/images/pos_logo.png new file mode 100644 index 000000000..e69de29bb diff --git a/pos_greetings/static/description/images/pos_product.png b/pos_greetings/static/description/images/pos_product.png new file mode 100644 index 000000000..9f62d36ce Binary files /dev/null and b/pos_greetings/static/description/images/pos_product.png differ diff --git a/pos_greetings/static/description/images/pos_reciept.jpeg b/pos_greetings/static/description/images/pos_reciept.jpeg new file mode 100644 index 000000000..aad3880ad Binary files /dev/null and b/pos_greetings/static/description/images/pos_reciept.jpeg differ diff --git a/pos_greetings/static/description/images/pos_return.png b/pos_greetings/static/description/images/pos_return.png new file mode 100644 index 000000000..e69de29bb diff --git a/pos_greetings/static/description/images/pos_voucher.png b/pos_greetings/static/description/images/pos_voucher.png new file mode 100644 index 000000000..cf274c0bb Binary files /dev/null and b/pos_greetings/static/description/images/pos_voucher.png differ diff --git a/pos_greetings/static/description/images/task_timer.gif b/pos_greetings/static/description/images/task_timer.gif new file mode 100644 index 000000000..ba0a1bd3d Binary files /dev/null and b/pos_greetings/static/description/images/task_timer.gif differ diff --git a/pos_greetings/static/description/index.html b/pos_greetings/static/description/index.html new file mode 100644 index 000000000..1d65ca8ec --- /dev/null +++ b/pos_greetings/static/description/index.html @@ -0,0 +1,882 @@ + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+
+
+
+
+

+ POS Customer Greeting Messages

+

+ This module Allow to Send Greetings to the Customer. +

+
+ +
+
+
+
+
+

+ Key Highlights +

+
+
+
+
+
+ +
+
+

+ Send Greetings to Customer

+

This module + allow to send a greeting to the POS customer + after validating the POS order. +

+
+
+
+
+
+
+ +
+
+

+ Twilio Package

+

Install the + Twilio python package. After this module + installation check with the trail account. +

+
+
+
+
+
+
+ +
+
+

+ POS Greetings Menu

+

This module + allow to store the details of greeting in POS Greetings menu. +

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

+ After installation, under Configuration Settings of POS, One can see the Credential Details.

+
+
+
+
+
+
+ +
+
+

+ For Account Creation Click the Button near the Settings.

+
+
+
+
+
+
+ +
+
+

+ Fill the details for getting Twilio Free Account.

+
+
+
+
+
+
+ +
+
+

+ Fill the Phone Number for sms verification.

+
+
+
+
+
+
+ +
+
+

+ Enter the verification code.

+
+
+
+
+
+
+ +
+
+

+ Go to User Settings for access permission.

+
+
+
+
+
+
+ +
+
+

+ Click on to view all the Accounts.

+
+
+
+
+
+
+ +
+
+

+ Go with your Twilio Account.

+
+
+
+
+
+
+ +
+
+

+ Verify your phone number.

+
+
+
+
+
+
+ +
+
+

+ Fill the details with the Twilio Account.

+
+
+
+
+
+ +
+
+

+ Get the Twilio phone number for sending the sms.

+
+
+
+
+
+
+ +
+
+

+ After that get the credentials of Twilio.

+
+
+
+
+
+
+ +
+
+

+ After validating the Pos order the greetings will automatically send to the chosen customer.

+
+
+
+
+
+
+ +
+
+

+ We can see a POS Greetings Menu.

+
+
+
+
+
+
+ +
+
+

+ After clicking the menu we can see the details of credential and customer details.

+
+
+
+
+
+
+
    +
  • + Send customer + greetings. +
  • +
  • + Send greeting + on POS order validation. +
  • +
  • + Integrated with + Twilio. +
  • +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on:03rd Nov 2023 +
+

+ Initial Commit for POS Customer Greeting + Messages.

+
+
+
+
+
+
+
+

+ Related Products

+
+
+ +
+
+

+ Our Services

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

Odoo + Customization

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

Odoo + Implementation

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

Odoo + Support

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

Hire + Odoo Developer

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

Odoo + Integration

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

Odoo + Migration

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

Odoo + Consultancy

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

Odoo + Implementation

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

Odoo + Licensing Consultancy

+
+
+
+
+
+
+

+ Our Industries

+ +
+
+
+
+
+
+ +

Trading

+

Easily procure and sell your products

+
+
+
+
+ +

POS

+

Easy configuration and convivial experience

+
+
+
+
+ +

+ Education

+

A platform for educational management

+
+
+
+
+ +

+ Manufacturing

+

Plan, track and schedule your operations

+
+
+
+
+ +

E-commerce + & Website

+

Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +

Service + Management

+

Keep track of services and invoice

+
+
+
+
+ +

+ Restaurant

+

Run your bar or restaurant methodically

+
+
+
+
+ +

Hotel + Management

+

An all-inclusive hotel management application

+
+
+
+
+
+
+

+ Support

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

Got + questions or need help? Get in touch.

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

Say hi to + us on WhatsApp!

+
+91 + 99456767686 +
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/pos_greetings/views/pos_greetings_views.xml b/pos_greetings/views/pos_greetings_views.xml new file mode 100644 index 000000000..85cffc537 --- /dev/null +++ b/pos_greetings/views/pos_greetings_views.xml @@ -0,0 +1,57 @@ + + + + + pos.greetings.view.tree + pos.greetings + + + + + + + + + + + + pos.greetings.view.form + pos.greetings + +
+ + + + + + + + + + + + + + + + + +
+
+
+ + + POS Greetings + pos.greetings + tree,form + +

+ POS Greetings +

+
+
+ +
diff --git a/pos_greetings/views/res_config_settings_views.xml b/pos_greetings/views/res_config_settings_views.xml new file mode 100644 index 000000000..899bd0184 --- /dev/null +++ b/pos_greetings/views/res_config_settings_views.xml @@ -0,0 +1,65 @@ + + + + + res.config.settings.view.form + res.config.settings + + + +

POS Greetings

+
+
+
+ +
+
+
+
+
+
+
+
+
diff --git a/product_discount_limit/README.rst b/product_discount_limit/README.rst new file mode 100644 index 000000000..8b1785cc7 --- /dev/null +++ b/product_discount_limit/README.rst @@ -0,0 +1,48 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Product Discount Limit +====================== +This module allow to set discount limit for products and product categories + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +Affero General Public License, Version 3 (AGPL v3). +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Credits +------- +* Developers: (V16) Developer JANISH BABU EK, + (V17) Developer ANURUDH P + 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/product_discount_limit/__init__.py b/product_discount_limit/__init__.py new file mode 100644 index 000000000..b91720046 --- /dev/null +++ b/product_discount_limit/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: ANURUDH P (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/product_discount_limit/__manifest__.py b/product_discount_limit/__manifest__.py new file mode 100644 index 000000000..a1480e080 --- /dev/null +++ b/product_discount_limit/__manifest__.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: ANURUDH P (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': 'Product Discount Limit', + 'version': '17.0.1.0.0', + 'category': 'Sales', + 'summary': """Limit of Product Discount""", + 'description': 'This module allow to set ' + 'discount limit for products and product categories.', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['sale'], + 'data': [ + 'views/product_template_views.xml', + 'views/product_category_views.xml', + 'views/res_users_views.xml', + ], + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/product_discount_limit/doc/RELEASE_NOTES.md b/product_discount_limit/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..f4baac04d --- /dev/null +++ b/product_discount_limit/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 18.12.2023 +#### Version 17.0.1.0.0 +#### ADD + +- Initial commit for Product Discount Limit diff --git a/product_discount_limit/models/__init__.py b/product_discount_limit/models/__init__.py new file mode 100644 index 000000000..db1d8c177 --- /dev/null +++ b/product_discount_limit/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: ANURUDH P (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 product_category +from . import product_template +from . import res_users +from . import sale_order_line diff --git a/product_discount_limit/models/product_category.py b/product_discount_limit/models/product_category.py new file mode 100644 index 000000000..a4ad8e928 --- /dev/null +++ b/product_discount_limit/models/product_category.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: ANURUDH P (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 ProductCategory(models.Model): + """Inherited product.category to add field Discount Limit""" + _inherit = 'product.category' + + desc_limit = fields.Float(string="Discount Limit(%)", + help="If it is specified,user can't give a " + "discount greater the amount") diff --git a/product_discount_limit/models/product_template.py b/product_discount_limit/models/product_template.py new file mode 100644 index 000000000..392192e1c --- /dev/null +++ b/product_discount_limit/models/product_template.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: ANURUDH P (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 ProductTemplate(models.Model): + """Inherited product.template to add field Discount Limit""" + _inherit = 'product.template' + + desc_limit = fields.Float(string="Discount Limit(%)", + help="If it is specified,user can't give a " + "discount greater the amount") diff --git a/product_discount_limit/models/res_users.py b/product_discount_limit/models/res_users.py new file mode 100644 index 000000000..7235cd6d6 --- /dev/null +++ b/product_discount_limit/models/res_users.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: ANURUDH P (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 ResUsers(models.Model): + """Inherited res.users to add field to allow discount over limit""" + _inherit = 'res.users' + + allow_discount = fields.Boolean(string="Allow Discount Over Limit", + help="If it is True, discount Limit will " + "not affect the user") diff --git a/product_discount_limit/models/sale_order_line.py b/product_discount_limit/models/sale_order_line.py new file mode 100644 index 000000000..80b249a90 --- /dev/null +++ b/product_discount_limit/models/sale_order_line.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: ANURUDH P (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, exceptions, models, _ + + +class SalesOrderLine(models.Model): + """Inherited sale.order.line for checking the limit of discount + allowed for product and category""" + _inherit = 'sale.order.line' + + @api.onchange('discount') + def _onchange_discount(self): + """Checking the limit of discount allowed for products and category""" + if not self.env.user.allow_discount: + desc_limit = self.product_id.product_tmpl_id.desc_limit or \ + self.product_id.categ_id.desc_limit + if desc_limit and self.discount > desc_limit: + raise exceptions.UserError( + _('You are not allowed to apply discount more than %s ' + 'percentage on this %s. Please contact your ' + 'administrator', + desc_limit, + 'product' if self.product_id.product_tmpl_id else + 'category')) diff --git a/product_discount_limit/static/description/assets/icons/capture (1).png b/product_discount_limit/static/description/assets/icons/capture (1).png new file mode 100644 index 000000000..8824deafc Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/capture (1).png differ diff --git a/product_discount_limit/static/description/assets/icons/check.png b/product_discount_limit/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/check.png differ diff --git a/product_discount_limit/static/description/assets/icons/chevron.png b/product_discount_limit/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/chevron.png differ diff --git a/product_discount_limit/static/description/assets/icons/cogs.png b/product_discount_limit/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/cogs.png differ diff --git a/product_discount_limit/static/description/assets/icons/consultation.png b/product_discount_limit/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/consultation.png differ diff --git a/product_discount_limit/static/description/assets/icons/ecom-black.png b/product_discount_limit/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/ecom-black.png differ diff --git a/product_discount_limit/static/description/assets/icons/education-black.png b/product_discount_limit/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/education-black.png differ diff --git a/product_discount_limit/static/description/assets/icons/hotel-black.png b/product_discount_limit/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/hotel-black.png differ diff --git a/product_discount_limit/static/description/assets/icons/img.png b/product_discount_limit/static/description/assets/icons/img.png new file mode 100644 index 000000000..70197f477 Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/img.png differ diff --git a/product_discount_limit/static/description/assets/icons/license.png b/product_discount_limit/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/license.png differ diff --git a/product_discount_limit/static/description/assets/icons/lifebuoy.png b/product_discount_limit/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/lifebuoy.png differ diff --git a/product_discount_limit/static/description/assets/icons/manufacturing-black.png b/product_discount_limit/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/manufacturing-black.png differ diff --git a/product_discount_limit/static/description/assets/icons/photo-capture.png b/product_discount_limit/static/description/assets/icons/photo-capture.png new file mode 100644 index 000000000..06c111758 Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/photo-capture.png differ diff --git a/product_discount_limit/static/description/assets/icons/pos-black.png b/product_discount_limit/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/pos-black.png differ diff --git a/product_discount_limit/static/description/assets/icons/puzzle.png b/product_discount_limit/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/puzzle.png differ diff --git a/product_discount_limit/static/description/assets/icons/restaurant-black.png b/product_discount_limit/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/restaurant-black.png differ diff --git a/product_discount_limit/static/description/assets/icons/service-black.png b/product_discount_limit/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/service-black.png differ diff --git a/product_discount_limit/static/description/assets/icons/trading-black.png b/product_discount_limit/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/trading-black.png differ diff --git a/product_discount_limit/static/description/assets/icons/training.png b/product_discount_limit/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/training.png differ diff --git a/product_discount_limit/static/description/assets/icons/update.png b/product_discount_limit/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/update.png differ diff --git a/product_discount_limit/static/description/assets/icons/user.png b/product_discount_limit/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/user.png differ diff --git a/product_discount_limit/static/description/assets/icons/wrench.png b/product_discount_limit/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/product_discount_limit/static/description/assets/icons/wrench.png differ diff --git a/product_discount_limit/static/description/assets/misc/Cybrosys R.png b/product_discount_limit/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/product_discount_limit/static/description/assets/misc/Cybrosys R.png differ diff --git a/product_discount_limit/static/description/assets/misc/email.svg b/product_discount_limit/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/product_discount_limit/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/product_discount_limit/static/description/assets/misc/phone.svg b/product_discount_limit/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/product_discount_limit/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/product_discount_limit/static/description/assets/misc/star (1) 2.svg b/product_discount_limit/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/product_discount_limit/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/product_discount_limit/static/description/assets/misc/support (1) 1.svg b/product_discount_limit/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/product_discount_limit/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/product_discount_limit/static/description/assets/misc/support-email.svg b/product_discount_limit/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/product_discount_limit/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/product_discount_limit/static/description/assets/misc/tick-mark.svg b/product_discount_limit/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/product_discount_limit/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/product_discount_limit/static/description/assets/misc/whatsapp 1.svg b/product_discount_limit/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/product_discount_limit/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/product_discount_limit/static/description/assets/misc/whatsapp.svg b/product_discount_limit/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/product_discount_limit/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/product_discount_limit/static/description/assets/modules/1.png b/product_discount_limit/static/description/assets/modules/1.png new file mode 100644 index 000000000..8513873ea Binary files /dev/null and b/product_discount_limit/static/description/assets/modules/1.png differ diff --git a/product_discount_limit/static/description/assets/modules/2.jpg b/product_discount_limit/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..67c7f7062 Binary files /dev/null and b/product_discount_limit/static/description/assets/modules/2.jpg differ diff --git a/product_discount_limit/static/description/assets/modules/3.png b/product_discount_limit/static/description/assets/modules/3.png new file mode 100644 index 000000000..cb17cf612 Binary files /dev/null and b/product_discount_limit/static/description/assets/modules/3.png differ diff --git a/product_discount_limit/static/description/assets/modules/4.png b/product_discount_limit/static/description/assets/modules/4.png new file mode 100644 index 000000000..d6b1fe049 Binary files /dev/null and b/product_discount_limit/static/description/assets/modules/4.png differ diff --git a/product_discount_limit/static/description/assets/modules/5.jpg b/product_discount_limit/static/description/assets/modules/5.jpg new file mode 100644 index 000000000..87c2bb2ba Binary files /dev/null and b/product_discount_limit/static/description/assets/modules/5.jpg differ diff --git a/product_discount_limit/static/description/assets/modules/6.png b/product_discount_limit/static/description/assets/modules/6.png new file mode 100644 index 000000000..a0ac2d840 Binary files /dev/null and b/product_discount_limit/static/description/assets/modules/6.png differ diff --git a/product_discount_limit/static/description/assets/screenshots/1.png b/product_discount_limit/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..2829461b5 Binary files /dev/null and b/product_discount_limit/static/description/assets/screenshots/1.png differ diff --git a/product_discount_limit/static/description/assets/screenshots/2.png b/product_discount_limit/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..c8e2ff84d Binary files /dev/null and b/product_discount_limit/static/description/assets/screenshots/2.png differ diff --git a/product_discount_limit/static/description/assets/screenshots/3.png b/product_discount_limit/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..28966814c Binary files /dev/null and b/product_discount_limit/static/description/assets/screenshots/3.png differ diff --git a/product_discount_limit/static/description/assets/screenshots/6.png b/product_discount_limit/static/description/assets/screenshots/6.png new file mode 100644 index 000000000..4d04d4865 Binary files /dev/null and b/product_discount_limit/static/description/assets/screenshots/6.png differ diff --git a/product_discount_limit/static/description/assets/screenshots/7.png b/product_discount_limit/static/description/assets/screenshots/7.png new file mode 100644 index 000000000..934836880 Binary files /dev/null and b/product_discount_limit/static/description/assets/screenshots/7.png differ diff --git a/product_discount_limit/static/description/assets/screenshots/9.png b/product_discount_limit/static/description/assets/screenshots/9.png new file mode 100644 index 000000000..13e38da8e Binary files /dev/null and b/product_discount_limit/static/description/assets/screenshots/9.png differ diff --git a/product_discount_limit/static/description/assets/screenshots/hero.gif b/product_discount_limit/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..68c9ca86c Binary files /dev/null and b/product_discount_limit/static/description/assets/screenshots/hero.gif differ diff --git a/product_discount_limit/static/description/banner.jpg b/product_discount_limit/static/description/banner.jpg new file mode 100644 index 000000000..5ae24843e Binary files /dev/null and b/product_discount_limit/static/description/banner.jpg differ diff --git a/product_discount_limit/static/description/icon.png b/product_discount_limit/static/description/icon.png new file mode 100644 index 000000000..41c30b7df Binary files /dev/null and b/product_discount_limit/static/description/icon.png differ diff --git a/product_discount_limit/static/description/index.html b/product_discount_limit/static/description/index.html new file mode 100644 index 000000000..6e2415498 --- /dev/null +++ b/product_discount_limit/static/description/index.html @@ -0,0 +1,623 @@ + + + + + + + Product Discount Limit + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+
+

+ Product Discount Limit

+

+ Limit Discount for Products & Product Category +

+
+ +
+
+
+
+
+

Key Highlights +

+
+
+
+
+
+ +
+
+

Discount limit on product

+

Set discount limit on product. +

+
+
+
+
+
+
+ +
+
+

Discount limit on product category.

+

Can Set discount limit on product category. +

+
+
+
+
+
+
+ +
+
+

Restrict to apply discount more than discount limit.

+

Can restrict to apply discount more than discount limit. +

+
+
+
+
+
+
+ +
+
+

Grand discount permission for particular users

+

Can add grand discount permission for particular users +

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

+ In sales configuration settings there is a checkbox for Discounts.Using this checkbox we can enable the discount on sales.

+
+
+
+
+
+
+ +
+
+

+ In product form we can apply the Discount Limit(%).

+
+
+
+
+
+
+ +
+
+

+ We can apply discount less than the limit.

+
+
+
+ +
+
+
+ +
+
+

+ If it exceeds the limit, the system show a warning.

+
+
+
+
+
+
+ +
+
+

+ We can set Discount Limit(%) for each category.

+
+
+
+
+
+
+ +
+
+

+ Allow Discount Over Limit check box will allow the Users to give access for skip the discount limit.

+
+
+
+
+
+
+
    +
  • + Discount restriction on sale order. +
  • +
  • + Grand discount permission for particular users. +
  • +
  • + Easier to apply Product discount limit. +
      +
    • Using Product discount limit makes it easier to restrict discount more than discount limit.
    • +
    +
  • +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on:18th Dec 2023 +
+

+ Initial Commit for Product Discount Limit.

+
+
+
+
+
+
+
+

Related Products

+
+
+ +
+
+

Our Services

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

Odoo Customization

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

Odoo Implementation

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

Odoo Support

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

Hire Odoo Developer

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

Odoo Integration

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

Odoo Migration

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

Odoo Consultancy

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

Odoo Implementation

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

Odoo Licensing Consultancy

+
+
+
+
+
+
+

Our Industries

+ +
+
+
+
+
+
+ +

Trading

+

Easily procure and sell your products

+
+
+
+
+ +

POS

+

Easy configuration and convivial experience

+
+
+
+
+ +

Education

+

A platform for educational management

+
+
+
+
+ +

Manufacturing

+

Plan, track and schedule your operations

+
+
+
+
+ +

E-commerce & Website

+

Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +

Service Management

+

Keep track of services and invoice

+
+
+
+
+ +

Restaurant

+

Run your bar or restaurant methodically

+
+
+
+
+ +

Hotel Management

+

An all-inclusive hotel management application

+
+
+
+
+
+
+

Support

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

Got questions or need help? Get in touch.

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

Say hi to us on WhatsApp!

+
+91 + 99456767686
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/product_discount_limit/views/product_category_views.xml b/product_discount_limit/views/product_category_views.xml new file mode 100644 index 000000000..b55f78dfd --- /dev/null +++ b/product_discount_limit/views/product_category_views.xml @@ -0,0 +1,19 @@ + + + + + product.category.view.form.inherit.product.discount.limit + product.category + + 10 + + + + + + + + + + + diff --git a/product_discount_limit/views/product_template_views.xml b/product_discount_limit/views/product_template_views.xml new file mode 100644 index 000000000..962936d66 --- /dev/null +++ b/product_discount_limit/views/product_template_views.xml @@ -0,0 +1,15 @@ + + + + + product.template.view.form.inherit.product.discount.limit + product.template + + 10 + + + + + + + diff --git a/product_discount_limit/views/res_users_views.xml b/product_discount_limit/views/res_users_views.xml new file mode 100644 index 000000000..3f1b5987e --- /dev/null +++ b/product_discount_limit/views/res_users_views.xml @@ -0,0 +1,19 @@ + + + + + res.users.view.form.inherit.product.discount.limit + res.users + + 10 + + + + + + + + + + + diff --git a/timesheets_by_employee/README.rst b/timesheets_by_employee/README.rst new file mode 100644 index 000000000..8d5da8d63 --- /dev/null +++ b/timesheets_by_employee/README.rst @@ -0,0 +1,51 @@ +.. image:: https://img.shields.io/badge/license-LGPL--3-green.svg + :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 + +Timesheet PDF Report +==================== +This module allows to print the timesheet of selected employee. + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +Lesser General Public License, Version 3 (LGPL v3). +(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Credits +------- +* Developer: Kavya Raveendran + (V14) Muhammed P + (V15) Abhishek E T + (V16) Sumith Sivan + (V17) Ajith V +Contact: odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/timesheets_by_employee/__init__.py b/timesheets_by_employee/__init__.py new file mode 100644 index 000000000..ad0b72c37 --- /dev/null +++ b/timesheets_by_employee/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Ajith V (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..7f9225ef5 --- /dev/null +++ b/timesheets_by_employee/__manifest__.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Ajith V (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 . +# +############################################################################# +{ + 'name': 'Timesheet PDF Report', + 'version': '17.0.1.0.0', + "category": "Project", + 'sequence': 25, + 'summary': 'Timesheet PDF Report of Employees', + 'description': 'Comprehensive timesheet PDF report summarizing employee ' + 'work hours and activities for efficient tracking and ' + 'management.', + '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_templates.xml', + 'report/timesheet_reports.xml', + 'wizard/timesheet_report_views.xml', + ], + 'images': ['static/description/banner.jpg'], + '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..75ca8979d --- /dev/null +++ b/timesheets_by_employee/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 19.12.2023 +#### Version 17.0.1.0.0 +##### ADD + +- Initial commit for Timesheet PDF Report diff --git a/timesheets_by_employee/report/__init__.py b/timesheets_by_employee/report/__init__.py new file mode 100644 index 000000000..5f5ef97f0 --- /dev/null +++ b/timesheets_by_employee/report/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Ajith V (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..ec98773ce --- /dev/null +++ b/timesheets_by_employee/report/timesheet_report.py @@ -0,0 +1,104 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Ajith V (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, models + + +class ReportTimesheet(models.AbstractModel): + """Create an Abstract Class for report data to pass to the templates""" + _name = 'report.timesheets_by_employee.report_timesheet_employee' + _description = 'Timesheet Report' + + def get_timesheets(self, docs): + """input : name of employee, the starting date and ending date + output: timesheet 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, + 'data': data, + } + 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..35207a7de --- /dev/null +++ b/timesheets_by_employee/report/timesheet_reports.xml @@ -0,0 +1,13 @@ + + + + + Timesheets + timesheet.report + qweb-pdf + timesheets_by_employee.report_timesheet_employee + timesheets_by_employee.report_timesheet_employee + + report + + diff --git a/timesheets_by_employee/report/timesheet_templates.xml b/timesheets_by_employee/report/timesheet_templates.xml new file mode 100644 index 000000000..e1a5e0e68 --- /dev/null +++ b/timesheets_by_employee/report/timesheet_templates.xml @@ -0,0 +1,66 @@ + + + + + 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..df2cb7e69 --- /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_user,timesheet.report.user,model_timesheet_report,base.group_user,1,1,1,1 diff --git a/timesheets_by_employee/static/description/assets/icons/capture (1).png b/timesheets_by_employee/static/description/assets/icons/capture (1).png new file mode 100644 index 000000000..8824deafc Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/capture (1).png differ 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/img.png b/timesheets_by_employee/static/description/assets/icons/img.png new file mode 100644 index 000000000..70197f477 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/img.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/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/photo-capture.png b/timesheets_by_employee/static/description/assets/icons/photo-capture.png new file mode 100644 index 000000000..06c111758 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/icons/photo-capture.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/misc/Cybrosys R.png b/timesheets_by_employee/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/misc/Cybrosys R.png differ diff --git a/timesheets_by_employee/static/description/assets/misc/email.svg b/timesheets_by_employee/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/timesheets_by_employee/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/timesheets_by_employee/static/description/assets/misc/phone.svg b/timesheets_by_employee/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/timesheets_by_employee/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/timesheets_by_employee/static/description/assets/misc/star (1) 2.svg b/timesheets_by_employee/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/timesheets_by_employee/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/timesheets_by_employee/static/description/assets/misc/support (1) 1.svg b/timesheets_by_employee/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/timesheets_by_employee/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/timesheets_by_employee/static/description/assets/misc/support-email.svg b/timesheets_by_employee/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/timesheets_by_employee/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/timesheets_by_employee/static/description/assets/misc/tick-mark.svg b/timesheets_by_employee/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/timesheets_by_employee/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/timesheets_by_employee/static/description/assets/misc/whatsapp 1.svg b/timesheets_by_employee/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/timesheets_by_employee/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/timesheets_by_employee/static/description/assets/misc/whatsapp.svg b/timesheets_by_employee/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/timesheets_by_employee/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/timesheets_by_employee/static/description/assets/modules/m1.png b/timesheets_by_employee/static/description/assets/modules/m1.png new file mode 100644 index 000000000..acb4c76c6 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/modules/m1.png differ diff --git a/timesheets_by_employee/static/description/assets/modules/m2.png b/timesheets_by_employee/static/description/assets/modules/m2.png new file mode 100644 index 000000000..3ef91f771 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/modules/m2.png differ diff --git a/timesheets_by_employee/static/description/assets/modules/m3.png b/timesheets_by_employee/static/description/assets/modules/m3.png new file mode 100644 index 000000000..72febf6ae Binary files /dev/null and b/timesheets_by_employee/static/description/assets/modules/m3.png differ diff --git a/timesheets_by_employee/static/description/assets/modules/m4.png b/timesheets_by_employee/static/description/assets/modules/m4.png new file mode 100644 index 000000000..f7d7f9241 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/modules/m4.png differ diff --git a/timesheets_by_employee/static/description/assets/modules/m5.png b/timesheets_by_employee/static/description/assets/modules/m5.png new file mode 100644 index 000000000..1d3324e88 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/modules/m5.png differ diff --git a/timesheets_by_employee/static/description/assets/modules/m6.png b/timesheets_by_employee/static/description/assets/modules/m6.png new file mode 100644 index 000000000..80938c15a Binary files /dev/null and b/timesheets_by_employee/static/description/assets/modules/m6.png differ diff --git a/timesheets_by_employee/static/description/assets/screenshots/1.png b/timesheets_by_employee/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..281af2422 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/screenshots/1.png differ diff --git a/timesheets_by_employee/static/description/assets/screenshots/2.png b/timesheets_by_employee/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..29d3675de Binary files /dev/null and b/timesheets_by_employee/static/description/assets/screenshots/2.png differ diff --git a/timesheets_by_employee/static/description/assets/screenshots/3.png b/timesheets_by_employee/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..608e20b64 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/screenshots/3.png differ diff --git a/timesheets_by_employee/static/description/assets/screenshots/hero.gif b/timesheets_by_employee/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..9f3fe9ab1 Binary files /dev/null and b/timesheets_by_employee/static/description/assets/screenshots/hero.gif differ diff --git a/timesheets_by_employee/static/description/banner.jpg b/timesheets_by_employee/static/description/banner.jpg new file mode 100644 index 000000000..e257ddb23 Binary files /dev/null and b/timesheets_by_employee/static/description/banner.jpg 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..27e66c9ca 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..ff72f61b7 --- /dev/null +++ b/timesheets_by_employee/static/description/index.html @@ -0,0 +1,675 @@ + + + + + + + Timesheet PDF Report + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+
+

+ Timesheet PDF Report

+

+ A Module to Print Selected Employee Timesheets with Ease. +

+
+ +
+
+
+
+
+

+ Key Highlights +

+
+
+
+
+
+ +
+
+

+ Timesheet PDF Report of Employee

+

+ Print timesheets PDF Report of selected + employee. +

+
+
+
+
+
+
+ +
+
+

+ Track the Time from the Project.

+

The Time + Tracking of the Projects + will be added as Timesheet. +

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

+ Timesheets -> Reporting -> Print + Timesheets

+
+
+
+
+
+
+ +
+
+

+ Wizard to Generate Timesheet Report with + Dates.

+
+
+
+
+
+
+ +
+
+

+ PDF Report of Employee Timesheet

+
+
+
+
+
+
+
    +
  • + Can choose + Employee, start date, and end date for the + report +
  • +
  • + Print a pdf + report for the timesheet. +
  • +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on:19th December 2023 +
+

+ Initial Commit for Timesheet PDF Report.

+
+
+
+
+
+
+
+

+ Related Products

+
+
+ +
+
+

+ Our Services

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

Odoo + Customization

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

Odoo + Implementation

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

Odoo + Support

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

Hire + Odoo Developer

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

Odoo + Integration

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

Odoo + Migration

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

Odoo + Consultancy

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

Odoo + Implementation

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

Odoo + Licensing Consultancy

+
+
+
+
+
+
+

+ Our Industries

+ +
+
+
+
+
+
+ +

Trading

+

Easily procure and sell your products

+
+
+
+
+ +

POS

+

Easy configuration and convivial experience

+
+
+
+
+ +

+ Education

+

A platform for educational management

+
+
+
+
+ +

+ Manufacturing

+

Plan, track and schedule your operations

+
+
+
+
+ +

E-commerce & + Website

+

Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +

Service + Management

+

Keep track of services and invoice

+
+
+
+
+ +

+ Restaurant

+

Run your bar or restaurant methodically

+
+
+
+
+ +

Hotel + Management

+

An all-inclusive hotel management application

+
+
+
+
+
+
+

+ Support

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

Got + questions or need help? Get in touch.

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

Say hi to + us on WhatsApp!

+
+91 + 99456767686 +
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/timesheets_by_employee/wizard/__init__.py b/timesheets_by_employee/wizard/__init__.py new file mode 100644 index 000000000..5f5ef97f0 --- /dev/null +++ b/timesheets_by_employee/wizard/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Ajith V (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/wizard/timesheet_report.py b/timesheets_by_employee/wizard/timesheet_report.py new file mode 100644 index 000000000..5f9ef09e3 --- /dev/null +++ b/timesheets_by_employee/wizard/timesheet_report.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Ajith V (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): + """Create a Transient model for Wizard""" + _name = 'timesheet.report' + _description = 'Timesheet Report Wizard' + + user_id = fields.Many2one( + 'res.users', + string="Employee", + required=True, help="You can select the employee") + from_date = fields.Date( + string="Starting Date", + help="You can select the starting dates for the PDF report") + to_date = fields.Date( + string="Ending Date", + help="You can select the ending dates for the PDF report") + + 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..ace6bc16e --- /dev/null +++ b/timesheets_by_employee/wizard/timesheet_report_views.xml @@ -0,0 +1,42 @@ + + + + + timesheet.report.view.form + timesheet.report + +
+ + + + + + + + +
+
+
+
+
+
+ + + Timesheet Report + timesheet.report + ir.actions.act_window + form + + new + + + +
diff --git a/work_anniversary_reminder/README.rst b/work_anniversary_reminder/README.rst new file mode 100755 index 000000000..5dbbf5d81 --- /dev/null +++ b/work_anniversary_reminder/README.rst @@ -0,0 +1,39 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Work Anniversary Reminder +========================= +This module helps to Automatically Send Work Anniversary Email to Employee on Their Joining date. + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +Developer: (V16)JANISH BABU EK@cybrosys, + (V17)JANISH BABU EK@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/work_anniversary_reminder/__init__.py b/work_anniversary_reminder/__init__.py new file mode 100755 index 000000000..4311793aa --- /dev/null +++ b/work_anniversary_reminder/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: JANISH BABU (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/work_anniversary_reminder/__manifest__.py b/work_anniversary_reminder/__manifest__.py new file mode 100755 index 000000000..00b5efaf2 --- /dev/null +++ b/work_anniversary_reminder/__manifest__.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: JANISH BABU (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': "Work Anniversary Reminder", + 'version': '17.0.1.0.0', + 'category': 'Human Resources', + 'summary': """Automatically send work anniversary emails to + employees on their joining date.""", + 'description': """Module helps to Automatically Send Work + Anniversary Email to Employee on Their + Joining date by checking the + joining date in their contract form""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'images': ['static/description/banner.jpg'], + 'website': 'https://www.cybrosys.com', + 'depends': ['mail', 'hr_contract'], + 'data': ['data/ir_cron_data.xml', + 'data/mail_template_data.xml', + 'views/hr_employee_views.xml'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/work_anniversary_reminder/data/ir_cron_data.xml b/work_anniversary_reminder/data/ir_cron_data.xml new file mode 100755 index 000000000..5e5244e73 --- /dev/null +++ b/work_anniversary_reminder/data/ir_cron_data.xml @@ -0,0 +1,16 @@ + + + + + + Anniversary Reminder + + 1 + days + -1 + + code + model._cron_anniversary_reminder() + + + diff --git a/work_anniversary_reminder/data/mail_template_data.xml b/work_anniversary_reminder/data/mail_template_data.xml new file mode 100755 index 000000000..2a97179b4 --- /dev/null +++ b/work_anniversary_reminder/data/mail_template_data.xml @@ -0,0 +1,38 @@ + + + + + + Anniversary Wishes...!! + Happy Work Anniversary {{object.name or ''}} + ! + + + {{user.email}} + {{object.work_email}} + + +
+
+

+ Happy +

+
+
+

+ Work Anniversary +

+
+
+

+ +

+
+
+
+
+
+
diff --git a/work_anniversary_reminder/doc/RELEASE_NOTES.md b/work_anniversary_reminder/doc/RELEASE_NOTES.md new file mode 100755 index 000000000..30af777a9 --- /dev/null +++ b/work_anniversary_reminder/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 02.11.2023 +#### Version 17.0.1.0.0 +#### ADD + +- Initial commit for Work Anniversary Reminder diff --git a/work_anniversary_reminder/models/__init__.py b/work_anniversary_reminder/models/__init__.py new file mode 100755 index 000000000..bdbb9b48b --- /dev/null +++ b/work_anniversary_reminder/models/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: JANISH BABU (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 hr_employee diff --git a/work_anniversary_reminder/models/hr_employee.py b/work_anniversary_reminder/models/hr_employee.py new file mode 100755 index 000000000..d8575d8dc --- /dev/null +++ b/work_anniversary_reminder/models/hr_employee.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: JANISH BABU (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 + +"""Inherited hr.employee to add field Joining Date""" + + +class HrEmployee(models.Model): + _inherit = "hr.employee" + + joining_date = fields.Date(string='Joining Date', + help="Employee joining date", + compute='_compute_joining_date') + + @api.depends('contract_id') + def _compute_joining_date(self): + """ Methode for computing the Joining date from Contract """ + for rec in self: + rec.joining_date = min(rec.contract_id.mapped('date_start')) \ + if rec.contract_id else False + + @api.model + def _cron_anniversary_reminder(self): + """Sending wishes email to employees""" + for employee in self.search([]): + today_month = fields.Date.today().month + today_day = fields.Date.today().day + if employee.joining_date and \ + employee.joining_date.day == today_day and \ + employee.joining_date.month == today_month: + mail_template = self.env.ref( + 'work_anniversary_reminder.email_template_anniversary_reminder') + mail_template.send_mail(employee.id, force_send=True) diff --git a/work_anniversary_reminder/static/description/assets/icons/capture (1).png b/work_anniversary_reminder/static/description/assets/icons/capture (1).png new file mode 100644 index 000000000..8824deafc Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/capture (1).png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/check.png b/work_anniversary_reminder/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/check.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/chevron.png b/work_anniversary_reminder/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/chevron.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/cogs.png b/work_anniversary_reminder/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/cogs.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/consultation.png b/work_anniversary_reminder/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/consultation.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/ecom-black.png b/work_anniversary_reminder/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/ecom-black.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/education-black.png b/work_anniversary_reminder/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/education-black.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/hotel-black.png b/work_anniversary_reminder/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/hotel-black.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/img.png b/work_anniversary_reminder/static/description/assets/icons/img.png new file mode 100644 index 000000000..70197f477 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/img.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/license.png b/work_anniversary_reminder/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/license.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/lifebuoy.png b/work_anniversary_reminder/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/lifebuoy.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/manufacturing-black.png b/work_anniversary_reminder/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/manufacturing-black.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/photo-capture.png b/work_anniversary_reminder/static/description/assets/icons/photo-capture.png new file mode 100644 index 000000000..06c111758 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/photo-capture.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/pos-black.png b/work_anniversary_reminder/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/pos-black.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/puzzle.png b/work_anniversary_reminder/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/puzzle.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/restaurant-black.png b/work_anniversary_reminder/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/restaurant-black.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/service-black.png b/work_anniversary_reminder/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/service-black.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/trading-black.png b/work_anniversary_reminder/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/trading-black.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/training.png b/work_anniversary_reminder/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/training.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/update.png b/work_anniversary_reminder/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/update.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/user.png b/work_anniversary_reminder/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/user.png differ diff --git a/work_anniversary_reminder/static/description/assets/icons/wrench.png b/work_anniversary_reminder/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/icons/wrench.png differ diff --git a/work_anniversary_reminder/static/description/assets/misc/Cybrosys R.png b/work_anniversary_reminder/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/misc/Cybrosys R.png differ diff --git a/work_anniversary_reminder/static/description/assets/misc/email.svg b/work_anniversary_reminder/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/work_anniversary_reminder/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/work_anniversary_reminder/static/description/assets/misc/phone.svg b/work_anniversary_reminder/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/work_anniversary_reminder/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/work_anniversary_reminder/static/description/assets/misc/star (1) 2.svg b/work_anniversary_reminder/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/work_anniversary_reminder/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/work_anniversary_reminder/static/description/assets/misc/support (1) 1.svg b/work_anniversary_reminder/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/work_anniversary_reminder/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/work_anniversary_reminder/static/description/assets/misc/support-email.svg b/work_anniversary_reminder/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/work_anniversary_reminder/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/work_anniversary_reminder/static/description/assets/misc/tick-mark.svg b/work_anniversary_reminder/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/work_anniversary_reminder/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/work_anniversary_reminder/static/description/assets/misc/whatsapp 1.svg b/work_anniversary_reminder/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/work_anniversary_reminder/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/work_anniversary_reminder/static/description/assets/misc/whatsapp.svg b/work_anniversary_reminder/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/work_anniversary_reminder/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/work_anniversary_reminder/static/description/assets/modules/1.png b/work_anniversary_reminder/static/description/assets/modules/1.png new file mode 100644 index 000000000..ba1058c42 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/modules/1.png differ diff --git a/work_anniversary_reminder/static/description/assets/modules/2.png b/work_anniversary_reminder/static/description/assets/modules/2.png new file mode 100644 index 000000000..6949185dd Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/modules/2.png differ diff --git a/work_anniversary_reminder/static/description/assets/modules/3.png b/work_anniversary_reminder/static/description/assets/modules/3.png new file mode 100644 index 000000000..4e506f79b Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/modules/3.png differ diff --git a/work_anniversary_reminder/static/description/assets/modules/4.png b/work_anniversary_reminder/static/description/assets/modules/4.png new file mode 100644 index 000000000..e78427938 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/modules/4.png differ diff --git a/work_anniversary_reminder/static/description/assets/modules/5.png b/work_anniversary_reminder/static/description/assets/modules/5.png new file mode 100755 index 000000000..272ec20f9 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/modules/5.png differ diff --git a/work_anniversary_reminder/static/description/assets/modules/6.png b/work_anniversary_reminder/static/description/assets/modules/6.png new file mode 100644 index 000000000..7d5c3154f Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/modules/6.png differ diff --git a/work_anniversary_reminder/static/description/assets/screenshots/1.png b/work_anniversary_reminder/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..917ae4826 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/screenshots/1.png differ diff --git a/work_anniversary_reminder/static/description/assets/screenshots/2.png b/work_anniversary_reminder/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..5d9f206e5 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/screenshots/2.png differ diff --git a/work_anniversary_reminder/static/description/assets/screenshots/3.png b/work_anniversary_reminder/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..42305462d Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/screenshots/3.png differ diff --git a/work_anniversary_reminder/static/description/assets/screenshots/hero.gif b/work_anniversary_reminder/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..3c8376299 Binary files /dev/null and b/work_anniversary_reminder/static/description/assets/screenshots/hero.gif differ diff --git a/work_anniversary_reminder/static/description/banner.jpg b/work_anniversary_reminder/static/description/banner.jpg new file mode 100644 index 000000000..8c70d18ab Binary files /dev/null and b/work_anniversary_reminder/static/description/banner.jpg differ diff --git a/work_anniversary_reminder/static/description/icon.png b/work_anniversary_reminder/static/description/icon.png new file mode 100644 index 000000000..d5ff584ae Binary files /dev/null and b/work_anniversary_reminder/static/description/icon.png differ diff --git a/work_anniversary_reminder/static/description/index.html b/work_anniversary_reminder/static/description/index.html new file mode 100644 index 000000000..647dfac2d --- /dev/null +++ b/work_anniversary_reminder/static/description/index.html @@ -0,0 +1,562 @@ + + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+
+

+ Work Anniversary Reminder

+

+ Automated Employee Based Work Anniversary Reminder. +

+
+ +
+
+
+
+
+

Key Highlights +

+
+
+
+
+
+ +
+
+

Track Employee Joining Date.

+
+
+
+
+
+
+ +
+
+

Automatically Send Employee Anniversary Wishes.

+
+
+
+
+
+
+ +
+
+

Automatic Email.

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

+ Set the Joining date of the Employees.

+
+
+
+
+
+
+ +
+
+

+ Settings >>> Technical >>> Scheduled Actions >>> Anniversary Reminder.

+
+
+
+
+
+
+ +
+
+

+ This is how a greetings email to the Employee will be generated.

+
+
+
+
+
+
+
    +
  • + Track Employee Joining Date. +
  • +
  • + Automatically Send Employee Anniversary Wishes. +
  • +
  • + Track Employee Joining Date. +
  • +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on:02 Nov 2023 +
+

+ + Initial commit for Work Anniversary Reminder.

+
+
+
+
+
+
+
+

Related Products

+
+
+ +
+
+

Our Services

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

Odoo Customization

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

Odoo Implementation

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

Odoo Support

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

Hire Odoo Developer

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

Odoo Integration

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

Odoo Migration

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

Odoo Consultancy

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

Odoo Implementation

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

Odoo Licensing Consultancy

+
+
+
+
+
+
+

Our Industries

+ +
+
+
+
+
+
+ +

Trading

+

Easily procure and sell your products

+
+
+
+
+ +

POS

+

Easy configuration and convivial experience

+
+
+
+
+ +

Education

+

A platform for educational management

+
+
+
+
+ +

Manufacturing

+

Plan, track and schedule your operations

+
+
+
+
+ +

E-commerce & Website

+

Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +

Service Management

+

Keep track of services and invoice

+
+
+
+
+ +

Restaurant

+

Run your bar or restaurant methodically

+
+
+
+
+ +

Hotel Management

+

An all-inclusive hotel management application

+
+
+
+
+
+
+

Support

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

Got questions or need help? Get in touch.

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

Say hi to us on WhatsApp!

+
+91 + 99456767686
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/work_anniversary_reminder/views/hr_employee_views.xml b/work_anniversary_reminder/views/hr_employee_views.xml new file mode 100755 index 000000000..cdf07697f --- /dev/null +++ b/work_anniversary_reminder/views/hr_employee_views.xml @@ -0,0 +1,15 @@ + + + + + hr.employee.view.form.inherit.work.anniversary.reminder + + hr.employee + + + + + + + +