diff --git a/barcode_scanning_sale_purchase/README.rst b/barcode_scanning_sale_purchase/README.rst new file mode 100644 index 000000000..4a017bd4d --- /dev/null +++ b/barcode_scanning_sale_purchase/README.rst @@ -0,0 +1,48 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--1-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Barcode scanning support for sale and Purchase v14 +================================================== + +This module will help you to use barcode scanner in sales and purchase. + +Depends +======= +[sale_management] addon Odoo +[purchase] addon Odoo + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: Sreejith P @ cybrosys, Contact: odoo@cybrosys.com +* Version 14: Muhammed P @ 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/barcode_scanning_sale_purchase/__init__.py b/barcode_scanning_sale_purchase/__init__.py new file mode 100644 index 000000000..da16ad3c5 --- /dev/null +++ b/barcode_scanning_sale_purchase/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Sreejith 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/barcode_scanning_sale_purchase/__manifest__.py b/barcode_scanning_sale_purchase/__manifest__.py new file mode 100644 index 000000000..b4083619f --- /dev/null +++ b/barcode_scanning_sale_purchase/__manifest__.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies(). +# +# 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': 'Barcode scanning support for sale and Purchase', + 'version': '14.0.1.0.0', + 'category': 'Sales', + 'summary': 'This module will help you to use barcode scanner in sales and purchase.', + 'author': 'Cybrosys Techno solutions', + 'company': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['purchase', 'sale_management'], + 'data': [ + 'views/sale_order_line.xml', + 'views/purchase_order_line.xml', + ], + 'installable': True, + 'application': False, + 'auto_install': False, + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', +} diff --git a/barcode_scanning_sale_purchase/doc/RELEASE_NOTES.md b/barcode_scanning_sale_purchase/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..43d2642f1 --- /dev/null +++ b/barcode_scanning_sale_purchase/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 08.10.2020 +#### Version 14.0.1.0.0 +##### ADD +- Initial Commit \ No newline at end of file diff --git a/barcode_scanning_sale_purchase/models/__init__.py b/barcode_scanning_sale_purchase/models/__init__.py new file mode 100644 index 000000000..ba1911358 --- /dev/null +++ b/barcode_scanning_sale_purchase/models/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Sreejith P () +# +# 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 sale_order +from . import purchase_order diff --git a/barcode_scanning_sale_purchase/models/purchase_order.py b/barcode_scanning_sale_purchase/models/purchase_order.py new file mode 100644 index 000000000..b335ad518 --- /dev/null +++ b/barcode_scanning_sale_purchase/models/purchase_order.py @@ -0,0 +1,16 @@ +from odoo import api, models, fields + + +class PurchaseOrderLines(models.Model): + _inherit = "purchase.order.line" + + barcode_scan = fields.Char(string='Product Barcode', help="Here you can provide the barcode for the product") + + @api.onchange('barcode_scan') + def _onchange_barcode_scan(self): + product_rec = self.env['product.product'] + if self.barcode_scan: + product = product_rec.search([('barcode', '=', self.barcode_scan)]) + self.product_id = product.id + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/barcode_scanning_sale_purchase/models/sale_order.py b/barcode_scanning_sale_purchase/models/sale_order.py new file mode 100644 index 000000000..98e246af9 --- /dev/null +++ b/barcode_scanning_sale_purchase/models/sale_order.py @@ -0,0 +1,16 @@ +from odoo import api, models, fields + + +class SaleOrderLines(models.Model): + _inherit = 'sale.order.line' + + barcode_scan = fields.Char(string='Product Barcode', help="Here you can provide the barcode for the product") + + @api.onchange('barcode_scan') + def _onchange_barcode_scan(self): + product_rec = self.env['product.product'] + if self.barcode_scan: + product = product_rec.search([('barcode', '=', self.barcode_scan)]) + self.product_id = product.id + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/barcode_scanning_sale_purchase/static/description/banner.png b/barcode_scanning_sale_purchase/static/description/banner.png new file mode 100644 index 000000000..42a7f18f4 Binary files /dev/null and b/barcode_scanning_sale_purchase/static/description/banner.png differ diff --git a/barcode_scanning_sale_purchase/static/description/icon.png b/barcode_scanning_sale_purchase/static/description/icon.png new file mode 100644 index 000000000..a5ce6523b Binary files /dev/null and b/barcode_scanning_sale_purchase/static/description/icon.png differ diff --git a/barcode_scanning_sale_purchase/static/description/images/banner_lifeline_for_task.jpeg b/barcode_scanning_sale_purchase/static/description/images/banner_lifeline_for_task.jpeg new file mode 100644 index 000000000..4a467ea22 Binary files /dev/null and b/barcode_scanning_sale_purchase/static/description/images/banner_lifeline_for_task.jpeg differ diff --git a/barcode_scanning_sale_purchase/static/description/images/banner_project_report_xls_pdf.png b/barcode_scanning_sale_purchase/static/description/images/banner_project_report_xls_pdf.png new file mode 100644 index 000000000..3c430a7eb Binary files /dev/null and b/barcode_scanning_sale_purchase/static/description/images/banner_project_report_xls_pdf.png differ diff --git a/barcode_scanning_sale_purchase/static/description/images/banner_project_status_report.png b/barcode_scanning_sale_purchase/static/description/images/banner_project_status_report.png new file mode 100644 index 000000000..d1b689710 Binary files /dev/null and b/barcode_scanning_sale_purchase/static/description/images/banner_project_status_report.png differ diff --git a/barcode_scanning_sale_purchase/static/description/images/banner_subtask.jpeg b/barcode_scanning_sale_purchase/static/description/images/banner_subtask.jpeg new file mode 100644 index 000000000..f2b224110 Binary files /dev/null and b/barcode_scanning_sale_purchase/static/description/images/banner_subtask.jpeg differ diff --git a/barcode_scanning_sale_purchase/static/description/images/banner_task_deadline_reminder.jpeg b/barcode_scanning_sale_purchase/static/description/images/banner_task_deadline_reminder.jpeg new file mode 100644 index 000000000..998679818 Binary files /dev/null and b/barcode_scanning_sale_purchase/static/description/images/banner_task_deadline_reminder.jpeg differ diff --git a/barcode_scanning_sale_purchase/static/description/images/banner_task_statusbar.jpeg b/barcode_scanning_sale_purchase/static/description/images/banner_task_statusbar.jpeg new file mode 100644 index 000000000..2c57cbb7b Binary files /dev/null and b/barcode_scanning_sale_purchase/static/description/images/banner_task_statusbar.jpeg differ diff --git a/barcode_scanning_sale_purchase/static/description/images/barcode.png b/barcode_scanning_sale_purchase/static/description/images/barcode.png new file mode 100644 index 000000000..1a7ca54be Binary files /dev/null and b/barcode_scanning_sale_purchase/static/description/images/barcode.png differ diff --git a/barcode_scanning_sale_purchase/static/description/images/barcode1.png b/barcode_scanning_sale_purchase/static/description/images/barcode1.png new file mode 100644 index 000000000..e1ac7557f Binary files /dev/null and b/barcode_scanning_sale_purchase/static/description/images/barcode1.png differ diff --git a/barcode_scanning_sale_purchase/static/description/images/barcode2.png b/barcode_scanning_sale_purchase/static/description/images/barcode2.png new file mode 100644 index 000000000..e3a976b4a Binary files /dev/null and b/barcode_scanning_sale_purchase/static/description/images/barcode2.png differ diff --git a/barcode_scanning_sale_purchase/static/description/images/barcode3.png b/barcode_scanning_sale_purchase/static/description/images/barcode3.png new file mode 100644 index 000000000..f3ef8b2bb Binary files /dev/null and b/barcode_scanning_sale_purchase/static/description/images/barcode3.png differ diff --git a/barcode_scanning_sale_purchase/static/description/images/checked.png b/barcode_scanning_sale_purchase/static/description/images/checked.png new file mode 100644 index 000000000..578cedb80 Binary files /dev/null and b/barcode_scanning_sale_purchase/static/description/images/checked.png differ diff --git a/barcode_scanning_sale_purchase/static/description/images/cybrosys.png b/barcode_scanning_sale_purchase/static/description/images/cybrosys.png new file mode 100644 index 000000000..d76b5bafb Binary files /dev/null and b/barcode_scanning_sale_purchase/static/description/images/cybrosys.png differ diff --git a/barcode_scanning_sale_purchase/static/description/index.html b/barcode_scanning_sale_purchase/static/description/index.html new file mode 100644 index 000000000..dfc30b82a --- /dev/null +++ b/barcode_scanning_sale_purchase/static/description/index.html @@ -0,0 +1,297 @@ +
cybrosys-logo
+
+
+
+

Barcode scanning support for sale and Purchase

+

This module will help you to use barcode scanner in sales and purchase module.

+
+

Key Highlights

+
    +
  • Use barcode in Sales order
  • +
  • Use barcode in Purchase order
  • +
+
+
+
+ +
+
+
+
+ +
+
+ +

Overview

+
+

+ A module that can use in sales and purchase for barcode scanning.

+
+
+ +

Barcode scanning support for sale and Purchase

+
+
    +
  • + Use barcode in Sales order +
  • + +
  • + Use barcode in Purchase order +
  • +
+
+ +
+
+

Screenshots

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

Suggested Products

+
+ +
+
+

Our Service

+
+ +
+
+
+

Our Industries

+
+ +
+
+
+ +
+
+

Trading

+

Easily procure and sell your products.

+
+
+
+
+ +
+
+

Manufacturing

+

Plan, track and schedule your operations.

+
+
+
+
+ +
+
+

Restaurant

+

Run your bar or restaurant methodical.

+
+
+
+
+ +
+
+

POS

+

Easy configuring and convivial selling.

+
+
+
+
+ +
+
+

E-commerce & Website

+

Mobile friendly, awe-inspiring product pages.

+
+
+
+
+ +
+
+

Hotel Management

+

An all-inclusive hotel management application.

+
+
+
+
+ +
+
+

Education

+

A Collaborative platform for educational management.

+
+
+
+
+ +
+
+

Service Management

+

Keep track of services and invoice accordingly.

+
+
+
+
+
+ +
+
+
+

Need Any Help?

+
+

If you have anything to share with us based on your use of this module, please let us know. We are ready to offer our support.

+
+

Email us

+

odoo@cybrosys.com / info@cybrosys.com

+
+
+

Contact Us

+ www.cybrosys.com +
+
+
+
+
+
+
+
+
+ +
+ + + + + + + +
+
+
+ \ No newline at end of file diff --git a/barcode_scanning_sale_purchase/views/purchase_order_line.xml b/barcode_scanning_sale_purchase/views/purchase_order_line.xml new file mode 100644 index 000000000..1b4fc9519 --- /dev/null +++ b/barcode_scanning_sale_purchase/views/purchase_order_line.xml @@ -0,0 +1,15 @@ + + + + + purchase.order.form.inherit + purchase.order + + + + + + + + + \ No newline at end of file diff --git a/barcode_scanning_sale_purchase/views/sale_order_line.xml b/barcode_scanning_sale_purchase/views/sale_order_line.xml new file mode 100644 index 000000000..7c4872fc7 --- /dev/null +++ b/barcode_scanning_sale_purchase/views/sale_order_line.xml @@ -0,0 +1,15 @@ + + + + + sale.order.form.inherit + sale.order + + + + + + + + + diff --git a/employee_orientation/README.rst b/employee_orientation/README.rst new file mode 100644 index 000000000..8c10f2927 --- /dev/null +++ b/employee_orientation/README.rst @@ -0,0 +1,47 @@ +Employee Orientation v14 +======================== +This module developed to manage employee orientation&training programs. + + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developers: Anusha @cybrosys, odoo@cybrosys.com + Niyas V11 @cybrosys, odoo@cybrosys.com + Kavya Raveendran V12 odoo@cybrosys.com + Nimisha Murali V13 @cybrosys odoo@cybrosys.com + Muhammed P V14 @cybrosys 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_orientation/__init__.py b/employee_orientation/__init__.py new file mode 100644 index 000000000..bba0631a1 --- /dev/null +++ b/employee_orientation/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from . import models +from . import wizard diff --git a/employee_orientation/__manifest__.py b/employee_orientation/__manifest__.py new file mode 100644 index 000000000..40e48e163 --- /dev/null +++ b/employee_orientation/__manifest__.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies(). +# +# 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 Orientation & Training", + 'version': '14.0.1.0.0', + 'category': "Generic Modules/Human Resources", + 'summary': """Employee Orientation/Training Program""", + 'description':'Complete Employee Orientation/Training Program', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['base', 'hr'], + 'data': [ + 'views/orientation_checklist_line.xml', + 'views/employee_orientation.xml', + 'views/orientation_checklist.xml', + 'views/orientation_checklists_request.xml', + 'views/orientation_checklist_sequence.xml', + 'views/orientation_request_mail_template.xml', + 'views/print_pack_certificates_template.xml', + 'views/report.xml', + 'views/employee_training.xml', + 'security/ir.model.access.csv', + ], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/employee_orientation/doc/RELEASE_NOTES.md b/employee_orientation/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..f3e661a6e --- /dev/null +++ b/employee_orientation/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 08.10.2020 +#### Version 14.0.1.0.0 +#### ADD +Initial Commit \ No newline at end of file diff --git a/employee_orientation/models/__init__.py b/employee_orientation/models/__init__.py new file mode 100644 index 000000000..75fb79bf4 --- /dev/null +++ b/employee_orientation/models/__init__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from . import orientation_checklist_line +from . import orientation_checklist +from . import employee_orientation +from . import orientation_checklist_request +from . import employee_training +from . import report diff --git a/employee_orientation/models/employee_orientation.py b/employee_orientation/models/employee_orientation.py new file mode 100644 index 000000000..be6196bac --- /dev/null +++ b/employee_orientation/models/employee_orientation.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models, _ + + +class Orientation(models.Model): + _name = 'employee.orientation' + _description = "Employee Orientation" + _inherit = 'mail.thread' + + name = fields.Char(string='Employee Orientation', readonly=True, default=lambda self: _('New')) + employee_name = fields.Many2one('hr.employee', string='Employee', size=32, required=True) + department = fields.Many2one('hr.department', string='Department', related='employee_name.department_id', + required=True) + date = fields.Datetime(string="Date") + # date = fields.Datetime.to_string(dateText) + responsible_user = fields.Many2one('res.users', string='Responsible User') + employee_company = fields.Many2one('res.company', string='Company', required=True, + default=lambda self: self.env.user.company_id) + parent_id = fields.Many2one('hr.employee', string='Manager', related='employee_name.parent_id') + job_id = fields.Many2one('hr.job', string='Job Title', related='employee_name.job_id', + domain="[('department_id', '=', department)]") + orientation_id = fields.Many2one('orientation.checklist', string='Orientation Checklist', + domain="[('checklist_department','=', department)]", required=True) + note_id = fields.Text('Description') + orientation_request = fields.One2many('orientation.request', 'request_orientation', string='Orientation Request') + state = fields.Selection([ + ('draft', 'Draft'), + ('confirm', 'Confirmed'), + ('cancel', 'Canceled'), + ('complete', 'Completed'), + ], string='Status', readonly=True, copy=False, index=True, track_visibility='onchange', default='draft') + + def confirm_orientation(self): + self.write({'state': 'confirm'}) + for values in self.orientation_id.checklist_line_id: + self.env['orientation.request'].create({ + 'request_name': values.line_name, + 'request_orientation': self.id, + 'partner_id': values.responsible_user.id, + 'request_date': self.date, + 'employee_id': self.employee_name.id, + }) + + def cancel_orientation(self): + for request in self.orientation_request: + request.state = 'cancel' + self.write({'state': 'cancel'}) + + def complete_orientation(self): + force_complete = False + for request in self.orientation_request: + if request.state == 'new': + force_complete = True + if force_complete: + return { + 'name': 'Complete Orientation', + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'orientation.force.complete', + 'type': 'ir.actions.act_window', + 'context': {'default_orientation_id': self.id}, + 'target': 'new', + } + self.write({'state': 'complete'}) + + @api.model + def create(self, vals): + vals['name'] = self.env['ir.sequence'].next_by_code('employee.orientation') + result = super(Orientation, self).create(vals) + return result diff --git a/employee_orientation/models/employee_training.py b/employee_orientation/models/employee_training.py new file mode 100644 index 000000000..ebd5affe4 --- /dev/null +++ b/employee_orientation/models/employee_training.py @@ -0,0 +1,124 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from dateutil.relativedelta import relativedelta +from datetime import datetime, timedelta +from odoo import api, fields, models, _ + + +class HrEmployee(models.Model): + _inherit = 'hr.employee' + + certificates = fields.Boolean(default=True, string="Certificates") + + +class EmployeeTraining(models.Model): + _name = 'employee.training' + _rec_name = 'program_name' + _description = "Employee Training" + _inherit = 'mail.thread' + + program_name = fields.Char(string='Training Program', required=True) + program_department = fields.Many2one('hr.department', string='Department', required=True) + program_convener = fields.Many2one('res.users', string='Responsible User', size=32, required=True) + training_id = fields.One2many('hr.employee', string='Employee Details', compute="employee_details") + note_id = fields.Text('Description') + date_from = fields.Datetime(string="Date From") + date_to = fields.Datetime(string="Date To") + user_id = fields.Many2one('res.users', string='users', default=lambda self: self.env.user) + company_id = fields.Many2one('res.company', string='Company', required=True, + default=lambda self: self.env.user.company_id) + + state = fields.Selection([ + ('new', 'New'), + ('confirm', 'Confirmed'), + ('cancel', 'Canceled'), + ('complete', 'Completed'), + ('print', 'Print'), + ], string='Status', readonly=True, copy=False, index=True, track_visibility='onchange', default='new') + + @api.onchange('program_department') + def employee_details(self): + datas = self.env['hr.employee'].search([('department_id', '=', self.program_department.id)]) + self.training_id = datas + + def print_event(self): + self.ensure_one() + started_date = datetime.strftime(self.create_date, "%Y-%m-%d ") + duration = (self.write_date - self.create_date).days + pause = relativedelta(hours=0) + difference = relativedelta(self.write_date, self.create_date) - pause + hours = difference.hours + minutes = difference.minutes + data = { + 'dept_id': self.program_department.id, + 'program_name': self.program_name, + 'company_name': self.company_id.name, + 'date_to': started_date, + 'duration': duration, + 'hours': hours, + 'minutes': minutes, + 'program_convener': self.program_convener.name, + + } + return self.env.ref('employee_orientation.print_pack_certificates').report_action(self, data=data) + + def complete_event(self): + self.write({'state': 'complete'}) + + def confirm_event(self): + self.write({'state': 'confirm'}) + + def cancel_event(self): + self.write({'state': 'cancel'}) + + def confirm_send_mail(self): + self.ensure_one() + ir_model_data = self.env['ir.model.data'] + try: + template_id = ir_model_data.get_object_reference('employee_orientation', 'orientation_training_mailer')[1] + except ValueError: + template_id = False + try: + compose_form_id = ir_model_data.get_object_reference('mail', 'email_compose_message_wizard_form')[1] + except ValueError: + compose_form_id = False + ctx = dict(self.env.context or {}) + ctx.update({ + 'default_model': 'employee.training', + 'default_res_id': self.ids[0], + 'default_use_template': bool(template_id), + 'default_template_id': template_id, + 'default_composition_mode': 'comment', + }) + + return { + 'name': _('Compose Email'), + 'type': 'ir.actions.act_window', + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'mail.compose.message', + 'views': [(compose_form_id, 'form')], + 'view_id': compose_form_id, + 'target': 'new', + 'context': ctx, + } diff --git a/employee_orientation/models/orientation_checklist.py b/employee_orientation/models/orientation_checklist.py new file mode 100644 index 000000000..cc7ba4be0 --- /dev/null +++ b/employee_orientation/models/orientation_checklist.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from odoo import models, fields, _ + + +class OrientationChecklist(models.Model): + _name = 'orientation.checklist' + _description = "Checklist" + _rec_name = 'checklist_name' + _inherit = 'mail.thread' + + checklist_name = fields.Char(string='Name', required=True) + checklist_department = fields.Many2one('hr.department', string='Department', required=True) + active = fields.Boolean(string='Active', default=True, + help="Set active to false to hide the Orientation Checklist without removing it.") + checklist_line_id = fields.Many2many('checklist.line', 'checklist_line_rel', String="Checklist") + + + + + + + diff --git a/employee_orientation/models/orientation_checklist_line.py b/employee_orientation/models/orientation_checklist_line.py new file mode 100644 index 000000000..8ac5de189 --- /dev/null +++ b/employee_orientation/models/orientation_checklist_line.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from odoo import models, fields + + +class ChecklistLine(models.Model): + _name = 'checklist.line' + _rec_name = 'line_name' + + line_name = fields.Char(string='Name', required=True) + responsible_user = fields.Many2one('res.users', string='Responsible User', required=True) diff --git a/employee_orientation/models/orientation_checklist_request.py b/employee_orientation/models/orientation_checklist_request.py new file mode 100644 index 000000000..5fd12f82d --- /dev/null +++ b/employee_orientation/models/orientation_checklist_request.py @@ -0,0 +1,88 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from odoo import models, fields, api +from odoo.tools.translate import _ + + +class OrientationChecklistRequest(models.Model): + _name = 'orientation.request' + _description = "Employee Orientation Request" + _rec_name = 'request_name' + _inherit = 'mail.thread' + + request_name = fields.Char(string='Name') + request_orientation = fields.Many2one('employee.orientation', string='Employee Orientation') + employee_company = fields.Many2one('res.company', string='Company', required=True, + default=lambda self: self.env.user.company_id) + partner_id = fields.Many2one('res.users', string='Responsible User') + request_date = fields.Date(string="Date") + employee_id = fields.Many2one('hr.employee', string='Employee') + request_expected_date = fields.Date(string="Expected Date") + attachment_id_1 = fields.Many2many('ir.attachment', 'orientation_rel_1', string="Attachment") + note_id = fields.Text('Description') + user_id = fields.Many2one('res.users', string='users', default=lambda self: self.env.user) + company_id = fields.Many2one('res.company', string='Company', required=True, + default=lambda self: self.env.user.company_id) + state = fields.Selection([ + ('new', 'New'), + ('cancel', 'Cancel'), + ('complete', 'Completed'), + ], string='Status', readonly=True, copy=False, index=True, track_visibility='onchange', default='new') + + def confirm_send_mail(self): + self.ensure_one() + ir_model_data = self.env['ir.model.data'] + try: + template_id = ir_model_data.get_object_reference('employee_orientation', 'orientation_request_mailer')[1] + except ValueError: + template_id = False + try: + compose_form_id = ir_model_data.get_object_reference('mail', 'email_compose_message_wizard_form')[1] + except ValueError: + compose_form_id = False + ctx = dict(self.env.context or {}) + ctx.update({ + 'default_model': 'orientation.request', + 'default_res_id': self.ids[0], + 'default_use_template': bool(template_id), + 'default_template_id': template_id, + 'default_composition_mode': 'comment', + }) + + return { + 'name': _('Compose Email'), + 'type': 'ir.actions.act_window', + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'mail.compose.message', + 'views': [(compose_form_id, 'form')], + 'view_id': compose_form_id, + 'target': 'new', + 'context': ctx, + } + + def confirm_request(self): + self.write({'state': "complete"}) + + def cancel_request(self): + self.write({'state': "cancel"}) diff --git a/employee_orientation/models/report.py b/employee_orientation/models/report.py new file mode 100644 index 000000000..905bc180c --- /dev/null +++ b/employee_orientation/models/report.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, models, _ + + +class PackingReportValues(models.AbstractModel): + _name = 'report.employee_orientation.print_pack_template' + + @api.model + def _get_report_values(self, docids, data=None): + + lst = [] + empl_obj = self.env['hr.employee'].search([('department_id', '=', data['dept_id'])]) + + for line in empl_obj: + lst.append({ + 'name': line.name, + 'department_id': line.department_id.name, + 'program_name': data['program_name'], + 'company_name': data['company_name'], + 'date_to': data['date_to'], + 'program_convener': data['program_convener'], + 'duration': data['duration'], + 'hours': data['hours'], + 'minutes': data['minutes'], + }) + + return { + 'data': lst, + } + diff --git a/employee_orientation/security/ir.model.access.csv b/employee_orientation/security/ir.model.access.csv new file mode 100644 index 000000000..6f736f265 --- /dev/null +++ b/employee_orientation/security/ir.model.access.csv @@ -0,0 +1,8 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_user_orientation_request,orientation.request,model_orientation_request,hr.group_hr_user,1,1,1,1 +access_user_checklist_line,checklist.line,model_checklist_line,hr.group_hr_user,1,1,1,1 +access_user_employee_orientation,employee.orientation,model_employee_orientation,hr.group_hr_user,1,1,1,1 +access_manager_employee_orientation_request,orientation.checklist,model_orientation_checklist,hr.group_hr_user,1,1,1,1 +access_user_employee_training,employee.training,model_employee_training,hr.group_hr_user,1,1,1,1 +access_manager_employee_training,employee.training,model_employee_training,base.group_user,1,1,0,0 +access_manager_orientation_request,orientation.request,model_orientation_request,base.group_user,1,1,0,0 diff --git a/employee_orientation/static/description/banner.png b/employee_orientation/static/description/banner.png new file mode 100644 index 000000000..3f55899dc Binary files /dev/null and b/employee_orientation/static/description/banner.png differ diff --git a/employee_orientation/static/description/cybro_logo.png b/employee_orientation/static/description/cybro_logo.png new file mode 100644 index 000000000..bb309114c Binary files /dev/null and b/employee_orientation/static/description/cybro_logo.png differ diff --git a/employee_orientation/static/description/employee-orientation-cybrosys-1.jpg b/employee_orientation/static/description/employee-orientation-cybrosys-1.jpg new file mode 100644 index 000000000..aade2933b Binary files /dev/null and b/employee_orientation/static/description/employee-orientation-cybrosys-1.jpg differ diff --git a/employee_orientation/static/description/employee-orientation-cybrosys-10.jpg b/employee_orientation/static/description/employee-orientation-cybrosys-10.jpg new file mode 100644 index 000000000..f0dcf463a Binary files /dev/null and b/employee_orientation/static/description/employee-orientation-cybrosys-10.jpg differ diff --git a/employee_orientation/static/description/employee-orientation-cybrosys-2.jpg b/employee_orientation/static/description/employee-orientation-cybrosys-2.jpg new file mode 100644 index 000000000..d4f002b37 Binary files /dev/null and b/employee_orientation/static/description/employee-orientation-cybrosys-2.jpg differ diff --git a/employee_orientation/static/description/employee-orientation-cybrosys-3.jpg b/employee_orientation/static/description/employee-orientation-cybrosys-3.jpg new file mode 100644 index 000000000..c9ab87270 Binary files /dev/null and b/employee_orientation/static/description/employee-orientation-cybrosys-3.jpg differ diff --git a/employee_orientation/static/description/employee-orientation-cybrosys-4.jpg b/employee_orientation/static/description/employee-orientation-cybrosys-4.jpg new file mode 100644 index 000000000..464b5efc3 Binary files /dev/null and b/employee_orientation/static/description/employee-orientation-cybrosys-4.jpg differ diff --git a/employee_orientation/static/description/employee-orientation-cybrosys-5.jpg b/employee_orientation/static/description/employee-orientation-cybrosys-5.jpg new file mode 100644 index 000000000..7bc1019cb Binary files /dev/null and b/employee_orientation/static/description/employee-orientation-cybrosys-5.jpg differ diff --git a/employee_orientation/static/description/employee-orientation-cybrosys-6.jpg b/employee_orientation/static/description/employee-orientation-cybrosys-6.jpg new file mode 100644 index 000000000..791f04b6f Binary files /dev/null and b/employee_orientation/static/description/employee-orientation-cybrosys-6.jpg differ diff --git a/employee_orientation/static/description/employee-orientation-cybrosys-7.jpg b/employee_orientation/static/description/employee-orientation-cybrosys-7.jpg new file mode 100644 index 000000000..0d929d618 Binary files /dev/null and b/employee_orientation/static/description/employee-orientation-cybrosys-7.jpg differ diff --git a/employee_orientation/static/description/employee-orientation-cybrosys-8.jpg b/employee_orientation/static/description/employee-orientation-cybrosys-8.jpg new file mode 100644 index 000000000..342789969 Binary files /dev/null and b/employee_orientation/static/description/employee-orientation-cybrosys-8.jpg differ diff --git a/employee_orientation/static/description/employee-orientation-cybrosys-9.jpg b/employee_orientation/static/description/employee-orientation-cybrosys-9.jpg new file mode 100644 index 000000000..bae3f34fc Binary files /dev/null and b/employee_orientation/static/description/employee-orientation-cybrosys-9.jpg differ diff --git a/employee_orientation/static/description/hr_orientation_1.png b/employee_orientation/static/description/hr_orientation_1.png new file mode 100644 index 000000000..e375839a9 Binary files /dev/null and b/employee_orientation/static/description/hr_orientation_1.png differ diff --git a/employee_orientation/static/description/hr_orientation_10.png b/employee_orientation/static/description/hr_orientation_10.png new file mode 100644 index 000000000..743282f1d Binary files /dev/null and b/employee_orientation/static/description/hr_orientation_10.png differ diff --git a/employee_orientation/static/description/hr_orientation_11.png b/employee_orientation/static/description/hr_orientation_11.png new file mode 100644 index 000000000..ffc196c5c Binary files /dev/null and b/employee_orientation/static/description/hr_orientation_11.png differ diff --git a/employee_orientation/static/description/hr_orientation_12.png b/employee_orientation/static/description/hr_orientation_12.png new file mode 100644 index 000000000..c2651e81a Binary files /dev/null and b/employee_orientation/static/description/hr_orientation_12.png differ diff --git a/employee_orientation/static/description/hr_orientation_13.png b/employee_orientation/static/description/hr_orientation_13.png new file mode 100644 index 000000000..ed1019dd3 Binary files /dev/null and b/employee_orientation/static/description/hr_orientation_13.png differ diff --git a/employee_orientation/static/description/hr_orientation_2.png b/employee_orientation/static/description/hr_orientation_2.png new file mode 100644 index 000000000..9933f04b7 Binary files /dev/null and b/employee_orientation/static/description/hr_orientation_2.png differ diff --git a/employee_orientation/static/description/hr_orientation_3.png b/employee_orientation/static/description/hr_orientation_3.png new file mode 100644 index 000000000..20ad10e6d Binary files /dev/null and b/employee_orientation/static/description/hr_orientation_3.png differ diff --git a/employee_orientation/static/description/hr_orientation_4.png b/employee_orientation/static/description/hr_orientation_4.png new file mode 100644 index 000000000..51f32e194 Binary files /dev/null and b/employee_orientation/static/description/hr_orientation_4.png differ diff --git a/employee_orientation/static/description/hr_orientation_5.png b/employee_orientation/static/description/hr_orientation_5.png new file mode 100644 index 000000000..daf06ed33 Binary files /dev/null and b/employee_orientation/static/description/hr_orientation_5.png differ diff --git a/employee_orientation/static/description/hr_orientation_6.png b/employee_orientation/static/description/hr_orientation_6.png new file mode 100644 index 000000000..567fd4ed3 Binary files /dev/null and b/employee_orientation/static/description/hr_orientation_6.png differ diff --git a/employee_orientation/static/description/hr_orientation_7.png b/employee_orientation/static/description/hr_orientation_7.png new file mode 100644 index 000000000..3d9c9882b Binary files /dev/null and b/employee_orientation/static/description/hr_orientation_7.png differ diff --git a/employee_orientation/static/description/hr_orientation_8.png b/employee_orientation/static/description/hr_orientation_8.png new file mode 100644 index 000000000..0658c57ed Binary files /dev/null and b/employee_orientation/static/description/hr_orientation_8.png differ diff --git a/employee_orientation/static/description/hr_orientation_9.png b/employee_orientation/static/description/hr_orientation_9.png new file mode 100644 index 000000000..2253f5e6a Binary files /dev/null and b/employee_orientation/static/description/hr_orientation_9.png differ diff --git a/employee_orientation/static/description/icon.png b/employee_orientation/static/description/icon.png new file mode 100644 index 000000000..360c45077 Binary files /dev/null and b/employee_orientation/static/description/icon.png differ diff --git a/employee_orientation/static/description/index.html b/employee_orientation/static/description/index.html new file mode 100644 index 000000000..a691a9076 --- /dev/null +++ b/employee_orientation/static/description/index.html @@ -0,0 +1,389 @@ + +
+
+

+ Employee Orientation & Training +

+

+ Manage Employee Orientation And Training Programs +

+
+ Cybrosys Technologies +
+ +
+ cybrosys technologies
+
+
+
+
+
+

+ Overview +

+

+ Employee orientation/training is the process by which an employee acquires the necessary skills, + knowledge, behaviors, and contacts to effectively transition into a new organization.It can enhance + the overall satisfaction of employees and can encourage a positive attitude about the employer. + Employees view companies that offer meaningful benefits as more caring and engaged with their needs. + This may help reduce turnover and increase productivity. +

+
+
+ +
+
+

+ Features +

+

+ + Makes the Employee Orientation Program easier. +

+

+ + Systematical Workflow. +

+ + Allows to Create Employee Training Programs. +

+

+ + Email Notification for each Responsible person.

+

+ + Certificates for training program attendees +

+
+
+
+
+

+ Orientation Checklist +

+ + + + +
+ +
+

+ Orientation Checklist Line +

+ + + + +
+ +
+

+ Employee Orientation +

+ + + + +
+ +
+

+ Automatic creation of checklist lines +

+ + + + +
+ +
+

+ Orientation Request +

+

+ + Confirming orientation will create orientation requests automatically. +

+
+ +
+

+ + Orientation requests with the corresponding employee orientation are added +

+
+ +
+

+ Email Template +

+ + + + +
+ +
+

+ Employee Training +

+ + + + +
+ +
+

+ Email Template +

+ + + + +
+ +
+

+ Print Certificates +

+ + + + +
+ +
+
+
+ + +
+ +
+
+ +
+ +
+ +
\ No newline at end of file diff --git a/employee_orientation/views/employee_orientation.xml b/employee_orientation/views/employee_orientation.xml new file mode 100644 index 000000000..1b9937d88 --- /dev/null +++ b/employee_orientation/views/employee_orientation.xml @@ -0,0 +1,111 @@ + + + + + employee.orientation.tree + employee.orientation + + + + + + + + + + + + + employee.orientation.form + employee.orientation + +
+
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+
+ + employee.orientation.search + employee.orientation + + + + + + + + + + + + + + Employee Orientation + ir.actions.act_window + employee.orientation + tree,form + + [] + {} + + + Create Employee Orientation. + + + + +
+
diff --git a/employee_orientation/views/employee_training.xml b/employee_orientation/views/employee_training.xml new file mode 100644 index 000000000..a91685810 --- /dev/null +++ b/employee_orientation/views/employee_training.xml @@ -0,0 +1,105 @@ + + + + + employee.training.tree + employee.training + + + + + + + + + + + employee.training.form + employee.training + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+
+ + employee.training.search + employee.training + + + + + + + + + Employee Training Program + ir.actions.act_window + employee.training + tree,form + + [] + {} + + + Create Employee Training Program. + + + + + + hr.employee.inherit.form + hr.employee + + 30 + + + + + + +
+
diff --git a/employee_orientation/views/orientation_checklist.xml b/employee_orientation/views/orientation_checklist.xml new file mode 100644 index 000000000..ff8aa628b --- /dev/null +++ b/employee_orientation/views/orientation_checklist.xml @@ -0,0 +1,85 @@ + + + + + orientation.checklist.tree + orientation.checklist + + + + + + + + + + + orientation.checklist.form + orientation.checklist + + +
+ + + + + + + + + + + + + + + + + +
+ + +
+
+
+
+ + orientation.checklist.search + orientation.checklist + + + + + + + + + + + + + + + Orientation Checklist + ir.actions.act_window + orientation.checklist + tree,form + + [] + {'search_default_active': True} + + + Create Orientation Checklists. + + + + + +
+
diff --git a/employee_orientation/views/orientation_checklist_line.xml b/employee_orientation/views/orientation_checklist_line.xml new file mode 100644 index 000000000..754fd25c8 --- /dev/null +++ b/employee_orientation/views/orientation_checklist_line.xml @@ -0,0 +1,84 @@ + + + + + checklist.line.tree + checklist.line + + + + + + + + + + checklist.line.form + checklist.line + + +
+ + + + + + +
+
+
+ + checklist.line.search + checklist.line + + + + + + + + + + + + + + + Orientation Checklist Line + ir.actions.act_window + checklist.line + tree,form + + [] + {} + + + Create Orientation Checklists Lines. + + + + + + + + + + +
+
diff --git a/employee_orientation/views/orientation_checklist_sequence.xml b/employee_orientation/views/orientation_checklist_sequence.xml new file mode 100644 index 000000000..4a8268817 --- /dev/null +++ b/employee_orientation/views/orientation_checklist_sequence.xml @@ -0,0 +1,14 @@ + + + + + + + Employee Orientation + employee.orientation + OR + 3 + + + + \ No newline at end of file diff --git a/employee_orientation/views/orientation_checklists_request.xml b/employee_orientation/views/orientation_checklists_request.xml new file mode 100644 index 000000000..75b3af155 --- /dev/null +++ b/employee_orientation/views/orientation_checklists_request.xml @@ -0,0 +1,83 @@ + + + + + orientation.request.tree + orientation.request + + + + + + + + + + + orientation.request.form + orientation.request + +
+
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+
+ + orientation.request.search + orientation.request + + + + + + + + + + + + + Orientation Request + ir.actions.act_window + orientation.request + tree,form + + [] + {} + + + Create Orientation Requests. + + + + +
+
diff --git a/employee_orientation/views/orientation_request_mail_template.xml b/employee_orientation/views/orientation_request_mail_template.xml new file mode 100644 index 000000000..56d609efb --- /dev/null +++ b/employee_orientation/views/orientation_request_mail_template.xml @@ -0,0 +1,90 @@ + + + + + Employee Orientation Request + ${(object.user_id.email or object.company_id.email)|safe} + ${(object.partner_id.email)} + Employee Orientation Request + + + +

Hello ${object.partner_id.name},

+

You are requested to conduct orientation program listed below.

+

Check Line: ${object.request_name}

+

Employee: ${object.employee_id.name}

+ %if object.request_expected_date: +

Expected Date: ${object.request_expected_date}

+ % endif +
+

Thank you!

+
+
+

+ ${object.company_id.name}

+
+
+ + ${object.company_id.partner_id.sudo().with_context(show_address=True, html_format=True).name_get()[0][1] | safe} + + % if object.company_id.phone: +
+ Phone:  ${object.company_id.phone} +
+ % endif + % if object.company_id.website: + + %endif +

+
+ + ]]> +
+
+ + Employee Training program + ${(object.user_id.email or object.company_id.email)} + ${(object.program_convener.email)|safe} + Employee Training Request + + + +

Hello ${object.program_convener.name},

+

You are requested to conduct ${object.program_name} Training program for ${object.program_department.name} department + % if object.from_date and object.to_date: + from ${object.from_date} to ${object.to_date} + % endif + .

+
+

Thank you!

+
+
+

+ ${object.company_id.name}

+
+
+ + ${object.company_id.partner_id.sudo().with_context(show_address=True, html_format=True).name_get()[0][1] | safe} + + % if object.company_id.phone: +
+ Phone:  ${object.company_id.phone} +
+ % endif + % if object.company_id.website: + + %endif +

+
+ + ]]> +
+
+
+
\ No newline at end of file diff --git a/employee_orientation/views/print_pack_certificates_template.xml b/employee_orientation/views/print_pack_certificates_template.xml new file mode 100644 index 000000000..39b853fde --- /dev/null +++ b/employee_orientation/views/print_pack_certificates_template.xml @@ -0,0 +1,25 @@ + + + + \ No newline at end of file diff --git a/employee_orientation/views/report.xml b/employee_orientation/views/report.xml new file mode 100644 index 000000000..87feb56fd --- /dev/null +++ b/employee_orientation/views/report.xml @@ -0,0 +1,12 @@ + + + + + Certificates + employee.training + qweb-pdf + employee_orientation.print_pack_template + employee_orientation.print_pack_template + + + diff --git a/employee_orientation/wizard/__init__.py b/employee_orientation/wizard/__init__.py new file mode 100644 index 000000000..72c16ef89 --- /dev/null +++ b/employee_orientation/wizard/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from . import orientation_complete diff --git a/employee_orientation/wizard/orientation_complete.py b/employee_orientation/wizard/orientation_complete.py new file mode 100644 index 000000000..5c4fff6ae --- /dev/null +++ b/employee_orientation/wizard/orientation_complete.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from odoo import api, fields, models, _ + + +class OrientationForceComplete(models.TransientModel): + _name = 'orientation.force.complete' + + name = fields.Char() + orientation_id = fields.Many2one('employee.orientation', string='Orientation') + orientation_lines = fields.One2many('orientation.request', string='Orientation Lines', compute='pending_lines') + + @api.onchange('orientation_id') + def pending_lines(self): + pending = [] + + for data in self.orientation_id.orientation_request: + if data.state == 'new': + pending.append(data.id) + self.update({'orientation_lines': pending}) + + def force_complete(self): + for line in self.orientation_lines: + if line.state != 'cancel': + line.state = 'complete' + self.orientation_id.write({'state': 'complete'}) + + + diff --git a/employee_orientation/wizard/orientation_complete.xml b/employee_orientation/wizard/orientation_complete.xml new file mode 100644 index 000000000..b86022b1a --- /dev/null +++ b/employee_orientation/wizard/orientation_complete.xml @@ -0,0 +1,23 @@ + + + + + orientation.force.complete.form + orientation.force.complete + +
+

+ Please make sure that orientations programs are already done. +

+ +
+
+
\ No newline at end of file diff --git a/timesheets_by_employee/README.rst b/timesheets_by_employee/README.rst new file mode 100644 index 000000000..568c60be3 --- /dev/null +++ b/timesheets_by_employee/README.rst @@ -0,0 +1,44 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--1-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Timesheets by Employees v14 +=========================== + +This module allows to print the timesheets of selected employee. + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: Kavya Raveendran @ cybrosys, Contact: odoo@cybrosys.com +* Version 14: Muhammed P @cybrosys,Contact: odoo@cybrosys.com + +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..cbb15e031 --- /dev/null +++ b/timesheets_by_employee/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Kavya Raveendran (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +from . import report +from . import wizard diff --git a/timesheets_by_employee/__manifest__.py b/timesheets_by_employee/__manifest__.py new file mode 100644 index 000000000..4c3c2fced --- /dev/null +++ b/timesheets_by_employee/__manifest__.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2020-TODAY Cybrosys Technologies(). +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +{ + 'name': 'Timesheet PDF Report', + 'version': '14.0.1.0.0', + "category": "Generic Modules/Human Resources", + 'sequence': 25, + 'summary': 'Timesheet PDF Report of Employees', + 'description': 'Timesheet PDF Report of Employees', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['hr_timesheet'], + 'data': [ + 'security/ir.model.access.csv', + 'report/report_timesheets.xml', + 'report/timesheet_pdf.xml', + 'wizard/timesheet_wizard.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/timesheets_by_employee/doc/RELEASE_NOTES.md b/timesheets_by_employee/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..3b63cefc3 --- /dev/null +++ b/timesheets_by_employee/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 09.10.2020 +#### Version 14.0.1.0.0 +##### ADD +Initial commit for timesheet_by_employee \ No newline at end of file diff --git a/timesheets_by_employee/report/__init__.py b/timesheets_by_employee/report/__init__.py new file mode 100644 index 000000000..3def8d3bf --- /dev/null +++ b/timesheets_by_employee/report/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Kavya Raveendran (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +from . import report_timesheets diff --git a/timesheets_by_employee/report/report_timesheets.py b/timesheets_by_employee/report/report_timesheets.py new file mode 100644 index 000000000..6c94d83c6 --- /dev/null +++ b/timesheets_by_employee/report/report_timesheets.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Kavya Raveendran (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +from odoo import models, fields, api + + +class ReportTimesheet(models.AbstractModel): + _name = 'report.timesheets_by_employee.report_timesheets' + + def get_timesheets(self, docs): + """input : name of employee and the starting date and ending date + output: timesheets by that particular employee within that period and the total duration""" + + if docs.from_date and docs.to_date: + rec = self.env['account.analytic.line'].search([('user_id', '=', docs.employee[0].id), + ('date', '>=', docs.from_date), + ('date', '<=', docs.to_date)]) + elif docs.from_date: + rec = self.env['account.analytic.line'].search([('user_id', '=', docs.employee[0].id), + ('date', '>=', docs.from_date)]) + elif docs.to_date: + rec = self.env['account.analytic.line'].search([('user_id', '=', docs.employee[0].id), + ('date', '<=', docs.to_date)]) + else: + rec = self.env['account.analytic.line'].search([('user_id', '=', docs.employee[0].id)]) + records = [] + total = 0 + for r in rec: + vals = {'project': r.project_id.name, + 'user': r.user_id.partner_id.name, + 'duration': r.unit_amount, + 'date': r.date, + } + total += r.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.wizard'].browse(self.env.context.get('active_id')) + identification = [] + for i in self.env['hr.employee'].search([('user_id', '=', docs.employee[0].id)]): + if i: + identification.append({'id': i.id, 'name': i.name}) + timesheets = self.get_timesheets(docs) + company_name = self.env['res.company'].search([('name', '=', docs.employee[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.from_date: + period = " To " + str(docs.to_date) + if len(identification) > 1: + return { + 'doc_ids': self.ids, + # 'doc_model': self.model, + 'docs': docs, + 'timesheets': timesheets[0], + 'total': timesheets[1], + 'company': company_name, + 'identification': identification, + 'period': period, + } + else: + return { + 'doc_ids': self.ids, + # 'doc_model': self.model, + 'docs': docs, + 'timesheets': timesheets[0], + 'total': timesheets[1], + 'identification': identification, + 'company': company_name, + 'period': period, + } diff --git a/timesheets_by_employee/report/report_timesheets.xml b/timesheets_by_employee/report/report_timesheets.xml new file mode 100644 index 000000000..69bd1e989 --- /dev/null +++ b/timesheets_by_employee/report/report_timesheets.xml @@ -0,0 +1,42 @@ + + + + \ No newline at end of file diff --git a/timesheets_by_employee/report/timesheet_pdf.xml b/timesheets_by_employee/report/timesheet_pdf.xml new file mode 100644 index 000000000..fd8572f56 --- /dev/null +++ b/timesheets_by_employee/report/timesheet_pdf.xml @@ -0,0 +1,12 @@ + + + + + Timesheets + timesheet.wizard + qweb-pdf + timesheets_by_employee.report_timesheets + timesheets_by_employee.report_timesheets + + + 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..479db27b6 --- /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_wizard,timesheet.wizard,model_timesheet_wizard,,1,1,1,1 diff --git a/timesheets_by_employee/static/description/banner.png b/timesheets_by_employee/static/description/banner.png new file mode 100644 index 000000000..12adf4771 Binary files /dev/null and b/timesheets_by_employee/static/description/banner.png differ diff --git a/timesheets_by_employee/static/description/cybro_logo.png b/timesheets_by_employee/static/description/cybro_logo.png new file mode 100644 index 000000000..bb309114c Binary files /dev/null and b/timesheets_by_employee/static/description/cybro_logo.png differ diff --git a/timesheets_by_employee/static/description/icon.png b/timesheets_by_employee/static/description/icon.png new file mode 100644 index 000000000..8696e03a6 Binary files /dev/null and b/timesheets_by_employee/static/description/icon.png differ diff --git a/timesheets_by_employee/static/description/icosadan.png b/timesheets_by_employee/static/description/icosadan.png new file mode 100644 index 000000000..ee52f55b3 Binary files /dev/null and b/timesheets_by_employee/static/description/icosadan.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..393594f65 --- /dev/null +++ b/timesheets_by_employee/static/description/index.html @@ -0,0 +1,346 @@ +
+
+

+ Timesheet PDF Report of Employee +

+

+ Print timesheets of selected employees +

+
+ Cybrosys Technologies +
+ +
+ cybrosys technologies
+
+
+
+ +
+
+

+ Overview +

+

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

+

+ Configuration +

+

+ No additional configuration required. +

+
+
+ +
+
+

+ Features +

+

+ + Print the timesheets of selected employees. +

+

+ + Perform period wise grouping of timesheet lines. +

+
+
+ +
+
+

+ Screenshots +

+

+ + Timesheets -> Reporting -> Print Timesheets +

+
+ +
+

+ + Generate Timesheet Report Wizard with Dates. +

+
+ +
+

+ + PDF Report of Employee Timesheet. +

+
+ +
+
+
+ + +
+
+ cybrosys technologies +
+
+
+
+

+ Our Services +

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

+ + Odoo Support +

+ +
+ +
+
+
+
+
+

+ Our Industries +

+
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + Trading + +

+

+ Easily procure and sell your products. +

+
+ +
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + Manufacturing +

+

+ Plan, track and schedule your operations. +

+
+ +
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + Restaurant +

+

+ Run your bar or restaurant methodical. +

+
+ +
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + POS +

+

+ Easy configuring and convivial selling. +

+
+ +
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + E-commerce & Website +

+

+ Mobile friendly, awe-inspiring product pages. +

+
+
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + Hotel Management +

+

+ An all-inclusive hotel management application. +

+
+
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + Education +

+

+ A Collaborative platform for educational management. +

+
+
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + Service Management +

+

+ Keep track of services and invoice accordingly. +

+
+
+
+
+
+
+ +
diff --git a/timesheets_by_employee/static/description/timesheet-by-employee-cybrosys-1.png b/timesheets_by_employee/static/description/timesheet-by-employee-cybrosys-1.png new file mode 100644 index 000000000..341895446 Binary files /dev/null and b/timesheets_by_employee/static/description/timesheet-by-employee-cybrosys-1.png differ diff --git a/timesheets_by_employee/static/description/timesheet-by-employee-cybrosys-2.png b/timesheets_by_employee/static/description/timesheet-by-employee-cybrosys-2.png new file mode 100644 index 000000000..34fa94122 Binary files /dev/null and b/timesheets_by_employee/static/description/timesheet-by-employee-cybrosys-2.png differ diff --git a/timesheets_by_employee/static/description/timesheet-by-employee-cybrosys-3.png b/timesheets_by_employee/static/description/timesheet-by-employee-cybrosys-3.png new file mode 100644 index 000000000..c1789a893 Binary files /dev/null and b/timesheets_by_employee/static/description/timesheet-by-employee-cybrosys-3.png differ diff --git a/timesheets_by_employee/wizard/__init__.py b/timesheets_by_employee/wizard/__init__.py new file mode 100644 index 000000000..6c2d54310 --- /dev/null +++ b/timesheets_by_employee/wizard/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Kavya Raveendran (odoo@cybrosys.com) +# you can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# It is forbidden to publish, distribute, sublicense, or sell copies +# of the Software or modified copies of the Software. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## +from . import timesheet_employee diff --git a/timesheets_by_employee/wizard/timesheet_employee.py b/timesheets_by_employee/wizard/timesheet_employee.py new file mode 100644 index 000000000..b581b2a54 --- /dev/null +++ b/timesheets_by_employee/wizard/timesheet_employee.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Kavya Raveendran (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +from odoo import models, fields + + +class EmployeeTimesheet(models.TransientModel): + _name = 'timesheet.wizard' + + employee = fields.Many2one('res.users', string="Employee", required=True) + from_date = fields.Date(string="Starting Date") + to_date = fields.Date(string="Ending Date") + + def print_timesheet(self): + """Redirects to the report with the values obtained from the wizard + 'data['form']': name of employee and the date duration""" + data = { + 'start_date': self.from_date, + 'end_date': self.to_date, + 'employee': self.employee.id + } + return self.env.ref('timesheets_by_employee.action_report_print_timesheets').report_action(self, data=data) + diff --git a/timesheets_by_employee/wizard/timesheet_wizard.xml b/timesheets_by_employee/wizard/timesheet_wizard.xml new file mode 100644 index 000000000..e0d7d77ad --- /dev/null +++ b/timesheets_by_employee/wizard/timesheet_wizard.xml @@ -0,0 +1,39 @@ + + + + + timesheet.wizard + timesheet.wizard + +
+ + + + + + + + +
+
+
+
+
+
+ + + timesheet.wizard + timesheet.wizard + ir.actions.act_window + form + + new + + +
+
+ + +