diff --git a/automatic_payroll/README.rst b/automatic_payroll/README.rst new file mode 100644 index 000000000..1af9e8fa7 --- /dev/null +++ b/automatic_payroll/README.rst @@ -0,0 +1,30 @@ +Automatic Payroll +================= +* Generate payslip batches automatically. +* The feature works with the help of scheduler. + +Tech +==== +* [Python] - Models +* [XML] - Odoo views + +Installation +============ +- www.odoo.com/documentation/14.0/setup/install.html +- Install our custom addon + +Bug Tracker +=========== +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Developer: Varsha Vivek, odoo@cybrosys.com + +Maintainer +---------- +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com. + +Contacts +======== +* Cybrosys Technologies diff --git a/automatic_payroll/__init__.py b/automatic_payroll/__init__.py new file mode 100644 index 000000000..9a7e03ede --- /dev/null +++ b/automatic_payroll/__init__.py @@ -0,0 +1 @@ +from . import models \ No newline at end of file diff --git a/automatic_payroll/__manifest__.py b/automatic_payroll/__manifest__.py new file mode 100644 index 000000000..bb47365cc --- /dev/null +++ b/automatic_payroll/__manifest__.py @@ -0,0 +1,18 @@ +{ + 'name': 'Automatic Payroll', + 'version': '14.0.1.0.0', + 'category': 'Generic Modules/Human Resources', + 'description': """Generate payslips automatically""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'maintainer': 'Cybrosys Techno Solutions', + 'depends': ['base', 'hr_payroll_community'], + 'data': ['views/schedule_cron.xml', + 'views/res_config_settings_view.xml'], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/automatic_payroll/doc/RELEASE_NOTES.md b/automatic_payroll/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..6732a8d62 --- /dev/null +++ b/automatic_payroll/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 14.11.2020 +#### Version 14.0.1.0.0 +##### ADD +- Initial Commit \ No newline at end of file diff --git a/automatic_payroll/models/__init__.py b/automatic_payroll/models/__init__.py new file mode 100644 index 000000000..e6aceae90 --- /dev/null +++ b/automatic_payroll/models/__init__.py @@ -0,0 +1,2 @@ +from . import auto_generate_payslips +from . import res_config_settings diff --git a/automatic_payroll/models/auto_generate_payslips.py b/automatic_payroll/models/auto_generate_payslips.py new file mode 100644 index 000000000..235e1ecc6 --- /dev/null +++ b/automatic_payroll/models/auto_generate_payslips.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- +from datetime import date, datetime +from dateutil.relativedelta import relativedelta + +from odoo import api, fields, models, _ +from odoo.exceptions import UserError + + +class HrPayslipRunCron(models.Model): + """ + Automate payslip generation + 1.Month First + 2.Specific Date + 3.Month End + """ + _inherit = 'hr.payslip.run' + + @api.onchange('generate_payslip') + def _check(self): + """Check the options and call the corresponding methods""" + if self.env['ir.config_parameter'].sudo().get_param('generate_payslip'): + if self.env['ir.config_parameter'].sudo().get_param( + 'option', 'first') == 'first': + self.month_first() + elif self.env['ir.config_parameter'].sudo().get_param( + 'option', 'specific') == 'specific': + self.specific_date() + elif self.env['ir.config_parameter'].sudo().get_param( + 'option', 'end') == 'end': + self.month_end() + else: + raise UserError(_("Enable configuration settings")) + + def month_first(self): + """Method for automate month first option""" + today = fields.Date.today() + day = today.day + if day == 1: + self.generate_payslips() + else: + raise UserError(_("Today is not month first")) + pass + + def month_end(self): + """Method for automate month end option""" + today = fields.Date.today() + day_today = today.day + last_date = today + relativedelta(day=1, months=+1, days=-1) + last_day = last_date.day + if day_today == last_day: + self.generate_payslips() + else: + raise UserError(_("Today is not month end")) + pass + + def specific_date(self): + """Method for automate specific day option""" + val = int(self.env['ir.config_parameter'].sudo().get_param('generate_day')) + today = fields.Date.today() + day = today.day + if day == val: + self.generate_payslips() + else: + raise UserError(_("Can't generate payslips today")) + pass + + def generate_payslips(self): + """Method for generate payslip batches and payslips, + before that you must assign ongoing contracts for employees""" + batch_id = self.create([{ + 'name': 'Payslip Batch For ' + date.today().strftime('%B') + + ' ' + str(date.today().year), + 'date_start': fields.Date.to_string(date.today().replace(day=1)), + 'date_end': fields.Date.to_string( + (datetime.now() + relativedelta(months=+1, day=1, days=-1)).date()) + }]) + + generate_payslip = self.env['hr.payslip.employees'] + # print(generate_payslip) + contract_ids = self.env['hr.contract'].search([('state', '=', 'open')]) + employee_ids = [] + for line in contract_ids: + print(line.employee_id.name) + employee_ids.append(line.employee_id) + generate_payslip.create({ + 'employee_ids': [(4, line.employee_id.id)] + }) + # generate_payslip.create([{ + # 'name': line.employee_id.name, + # 'work_phone': line.employee_id.work_phone or None, + # 'work_email': line.employee_id.work_email or None, + # 'department_id': line.employee_id.department_id or None, + # 'job_id': line.employee_id.job_id or None, + # 'parent_id': line.employee_id.parent_id.name or None, + # }]) + print(generate_payslip) + payslips = self.env['hr.payslip'] + [run_data] = batch_id.read( + ['date_start', 'date_end', 'credit_note']) + from_date = run_data.get('date_start') + to_date = run_data.get('date_end') + if not employee_ids: + raise UserError(_("You must select employee(s) to generate payslip(s).")) + for employee in employee_ids: + slip_data = self.env['hr.payslip'].onchange_employee_id(from_date, to_date, employee.id, + contract_id=False) + res = { + 'employee_id': employee.id, + 'name': slip_data['value'].get('name'), + 'struct_id': slip_data['value'].get('struct_id'), + 'contract_id': slip_data['value'].get('contract_id'), + 'payslip_run_id': batch_id.id, + 'input_line_ids': [(0, 0, x) for x in slip_data['value'].get('input_line_ids')], + 'worked_days_line_ids': [ + (0, 0, x) for x in slip_data['value'].get('worked_days_line_ids')], + 'date_from': from_date, + 'date_to': to_date, + 'credit_note': run_data.get('credit_note'), + 'company_id': employee.company_id.id, + } + payslips += self.env['hr.payslip'].create(res) + payslips.compute_sheet() + return {'type': 'ir.actions.act_window_close'} diff --git a/automatic_payroll/models/res_config_settings.py b/automatic_payroll/models/res_config_settings.py new file mode 100644 index 000000000..67f202e57 --- /dev/null +++ b/automatic_payroll/models/res_config_settings.py @@ -0,0 +1,35 @@ +from odoo import api, fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + generate_payslip = fields.Boolean(help="Automatic generation of payslip batches" + " and payslips using cron job (Monthly)") + + option = fields.Selection([ + ('first', 'Month First'), + ('specific', 'Specific date'), + ('end', 'Month End'), + ], string='Option', default='first', help='Option to select the date to generate payslips') + + generate_day = fields.Integer(string="Day", default=1, + help="payslip generated day in a month") + + @api.model + def get_values(self): + """get values from the fields""" + res = super(ResConfigSettings, self).get_values() + res.update( + generate_payslip=self.env['ir.config_parameter'].sudo().get_param('generate_payslip'), + generate_day=int(self.env['ir.config_parameter'].sudo().get_param('generate_day') or 1), + option=self.env['ir.config_parameter'].sudo().get_param('option') or 'first' + ) + return res + + def set_values(self): + """Set values in the fields""" + super(ResConfigSettings, self).set_values() + self.env['ir.config_parameter'].sudo().set_param('generate_payslip', self.generate_payslip) + self.env['ir.config_parameter'].sudo().set_param('generate_day', int(self.generate_day)) + self.env['ir.config_parameter'].sudo().set_param("option", self.option) diff --git a/automatic_payroll/static/description/automatic-payroll.gif b/automatic_payroll/static/description/automatic-payroll.gif new file mode 100644 index 000000000..8f986f6aa Binary files /dev/null and b/automatic_payroll/static/description/automatic-payroll.gif differ diff --git a/automatic_payroll/static/description/automatic_payroll-1.png b/automatic_payroll/static/description/automatic_payroll-1.png new file mode 100644 index 000000000..a02fa17fb Binary files /dev/null and b/automatic_payroll/static/description/automatic_payroll-1.png differ diff --git a/automatic_payroll/static/description/automatic_payroll-2.png b/automatic_payroll/static/description/automatic_payroll-2.png new file mode 100644 index 000000000..900af4fb3 Binary files /dev/null and b/automatic_payroll/static/description/automatic_payroll-2.png differ diff --git a/automatic_payroll/static/description/automatic_payroll-3.png b/automatic_payroll/static/description/automatic_payroll-3.png new file mode 100644 index 000000000..47aa273a4 Binary files /dev/null and b/automatic_payroll/static/description/automatic_payroll-3.png differ diff --git a/automatic_payroll/static/description/automatic_payroll-4.png b/automatic_payroll/static/description/automatic_payroll-4.png new file mode 100644 index 000000000..ff676a3ce Binary files /dev/null and b/automatic_payroll/static/description/automatic_payroll-4.png differ diff --git a/automatic_payroll/static/description/automatic_payroll-5.png b/automatic_payroll/static/description/automatic_payroll-5.png new file mode 100644 index 000000000..2243fcb66 Binary files /dev/null and b/automatic_payroll/static/description/automatic_payroll-5.png differ diff --git a/automatic_payroll/static/description/automatic_payroll-6.png b/automatic_payroll/static/description/automatic_payroll-6.png new file mode 100644 index 000000000..62f19de98 Binary files /dev/null and b/automatic_payroll/static/description/automatic_payroll-6.png differ diff --git a/automatic_payroll/static/description/banner.png b/automatic_payroll/static/description/banner.png new file mode 100644 index 000000000..4d9844fc9 Binary files /dev/null and b/automatic_payroll/static/description/banner.png differ diff --git a/automatic_payroll/static/description/checked.png b/automatic_payroll/static/description/checked.png new file mode 100644 index 000000000..578cedb80 Binary files /dev/null and b/automatic_payroll/static/description/checked.png differ diff --git a/automatic_payroll/static/description/employee_orientation.jpeg b/automatic_payroll/static/description/employee_orientation.jpeg new file mode 100644 index 000000000..067ede9fb Binary files /dev/null and b/automatic_payroll/static/description/employee_orientation.jpeg differ diff --git a/automatic_payroll/static/description/hr_employee_transfer.jpeg b/automatic_payroll/static/description/hr_employee_transfer.jpeg new file mode 100644 index 000000000..1859d8b14 Binary files /dev/null and b/automatic_payroll/static/description/hr_employee_transfer.jpeg differ diff --git a/automatic_payroll/static/description/hr_payslip_monthly_report.jpeg b/automatic_payroll/static/description/hr_payslip_monthly_report.jpeg new file mode 100644 index 000000000..aa8ba62e1 Binary files /dev/null and b/automatic_payroll/static/description/hr_payslip_monthly_report.jpeg differ diff --git a/automatic_payroll/static/description/icon.png b/automatic_payroll/static/description/icon.png new file mode 100644 index 000000000..ea81a4d3c Binary files /dev/null and b/automatic_payroll/static/description/icon.png differ diff --git a/automatic_payroll/static/description/index.html b/automatic_payroll/static/description/index.html new file mode 100644 index 000000000..1151f38fe --- /dev/null +++ b/automatic_payroll/static/description/index.html @@ -0,0 +1,452 @@ + + + + + + + Bootstrap 101 Template + + + + + + +
+
+
+

Automatic Payroll

+

Generate payslip batches automatically.

+
+

Key Highlights

+
    +
  • check Automatic payroll generation for Odoo12 community edition.
  • +
  • check Generate payslip batches via adding all active employees.
  • + +
  • check The feature works with the help of scheduler.
  • + +
  • check Schedule the activity for month first,month end or specific day.
  • + + +
+
+ +
+
+
+
+

Overview

+
+

+ The module brings you an automatic payroll generation function further improvising the standard Odoo HR Payroll application. The module provisions to generate payslip batches automatically once in a month. +

The feature works with the help of scheduler.

+
+

+
+ +
+
+ +
+
+
+
+

Automatic Payroll

+
    +
  • + Available in Odoo 12.0 community edition. +
  • +
  • + The feature works with the help of scheduler. +
  • +
  • + Scheduler would check the options in the configuration settings and automatically generate payslip batches via adding all active employees possessing active contracts. +
  • +
  • + The module helps to generate payslips for month first,month end or specific day in a month. +
  • +
  • + The end user can confirm the generated payslip batch as well as the payslips in draft state. +
  • +
+
+
+
+
+

+ To enable/disable Automatic payroll, go to Payroll > Configuration > Settings > Enable/Disable Automatic Payroll. +

+
+ +
+
+
+

+ Three options are available. +

+
+ +
+
+
+

+ Upon selecting the second option (Specific date), there appears a field to enter specific date of the month. Based on date the scheduler shall generate payslip batches for the month. +

+
+ +
+
+
+

+ The feature works with the help of scheduler. +

+
+ +
+
+
+

+ During execution of scheduler, it would check contract table for active contracts and later create a new payslip batch via adding all active employees. +

+
+ +
+
+ +
+
+
Default 3
+ +
+
+
+ +
+
+
+

Video Demo

+
+

Odoo12 Automatic Payroll Demo

+ + +
+
+
+ +

Suggested Products

+
+ + +
+ + +
+

Our Service

+
+ +
+
+
+

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/automatic_payroll/static/description/oh_appraisal.jpeg b/automatic_payroll/static/description/oh_appraisal.jpeg new file mode 100644 index 000000000..0823d44d3 Binary files /dev/null and b/automatic_payroll/static/description/oh_appraisal.jpeg differ diff --git a/automatic_payroll/static/description/send_email_payslip.jpeg b/automatic_payroll/static/description/send_email_payslip.jpeg new file mode 100644 index 000000000..f585caa20 Binary files /dev/null and b/automatic_payroll/static/description/send_email_payslip.jpeg differ diff --git a/automatic_payroll/static/description/timesheet_payroll.jpeg b/automatic_payroll/static/description/timesheet_payroll.jpeg new file mode 100644 index 000000000..54dadb311 Binary files /dev/null and b/automatic_payroll/static/description/timesheet_payroll.jpeg differ diff --git a/automatic_payroll/views/res_config_settings_view.xml b/automatic_payroll/views/res_config_settings_view.xml new file mode 100644 index 000000000..583a7a2d0 --- /dev/null +++ b/automatic_payroll/views/res_config_settings_view.xml @@ -0,0 +1,35 @@ + + + + res_config_settings_view + res.config.settings + + + +
+
+ +
+
+
+
+
+
+
+ +
\ No newline at end of file diff --git a/automatic_payroll/views/schedule_cron.xml b/automatic_payroll/views/schedule_cron.xml new file mode 100644 index 000000000..a82d9c039 --- /dev/null +++ b/automatic_payroll/views/schedule_cron.xml @@ -0,0 +1,13 @@ + + + + Generate payslip batches and payslips + + code + model._check() + 1 + days + -1 + + + \ No newline at end of file diff --git a/developer_mode/README.rst b/developer_mode/README.rst new file mode 100644 index 000000000..a133246d4 --- /dev/null +++ b/developer_mode/README.rst @@ -0,0 +1,21 @@ +================================ + Automatic Developer Mode v14 +================================ + +Odoo Developers, Keep smiling for the below reasons: + + * Automatically Trigger Developer Mode. + * Separate Group for 'Odoo Developers'. + * Upgrade Modules Easily. + * Recently Upgraded Filter. + +Credits +------- +* `Nilmar Shereef < odoo@cybsosys.com >` +* `Saritha < odoo@cybsosys.com >` + + +Further information +=================== +HTML Description: ``__ + diff --git a/developer_mode/__init__.py b/developer_mode/__init__.py new file mode 100644 index 000000000..5f37fcb4a --- /dev/null +++ b/developer_mode/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies (). +# Author: Cybrosys Techno Solutions () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +from . import controllers diff --git a/developer_mode/__manifest__.py b/developer_mode/__manifest__.py new file mode 100644 index 000000000..c3fdedc21 --- /dev/null +++ b/developer_mode/__manifest__.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies (). +# Author: Cybrosys Techno Solutions () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +{ + 'name': "Automatic Developer Mode", + 'summary': """Automatically Activate Developer Mode""", + 'description': """Automatically Activate Developer Mode""", + 'version': '14.0.1.0.0', + 'author': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'category': 'Extra Tools', + 'depends': ['base', 'web', 'base_setup'], + 'data': [ + 'security/security_data.xml', + 'views/developer_mode_view.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, +} diff --git a/developer_mode/controllers/__init__.py b/developer_mode/controllers/__init__.py new file mode 100644 index 000000000..25f227bc7 --- /dev/null +++ b/developer_mode/controllers/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies (). +# Author: Cybrosys Techno Solutions () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +from . import main diff --git a/developer_mode/controllers/main.py b/developer_mode/controllers/main.py new file mode 100644 index 000000000..700ee6805 --- /dev/null +++ b/developer_mode/controllers/main.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies (). +# Author: Cybrosys Techno Solutions () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +import odoo +from odoo import http, _ +from odoo.http import request +from odoo.addons.web.controllers.main import Home, ensure_db + + +class AutoDeveloperMode(Home): + + def _login_redirect(self, uid, redirect=None): + if redirect: + return redirect + else: + odoo_technician = request.env.user.has_group('developer_mode.odoo_developer_group') + if odoo_technician: + return '/web?debug=1' + else: + return '/web' diff --git a/developer_mode/doc/RELEASE_NOTES.md b/developer_mode/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..14cfb22f5 --- /dev/null +++ b/developer_mode/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 27.10.2020 +#### Version 14.0.1.0.0 +#### ADD +- Initial Commit diff --git a/developer_mode/security/security_data.xml b/developer_mode/security/security_data.xml new file mode 100644 index 000000000..ee75040a7 --- /dev/null +++ b/developer_mode/security/security_data.xml @@ -0,0 +1,12 @@ + + + + + + Odoo Developer + + + + + + diff --git a/developer_mode/static/description/banner.png b/developer_mode/static/description/banner.png new file mode 100644 index 000000000..77caa8c19 Binary files /dev/null and b/developer_mode/static/description/banner.png differ diff --git a/developer_mode/static/description/cybro_logo.png b/developer_mode/static/description/cybro_logo.png new file mode 100644 index 000000000..bb309114c Binary files /dev/null and b/developer_mode/static/description/cybro_logo.png differ diff --git a/developer_mode/static/description/icon.png b/developer_mode/static/description/icon.png new file mode 100644 index 000000000..ed9318969 Binary files /dev/null and b/developer_mode/static/description/icon.png differ diff --git a/developer_mode/static/description/images/account_dynamic_report_banner.png b/developer_mode/static/description/images/account_dynamic_report_banner.png new file mode 100644 index 000000000..b025b5c48 Binary files /dev/null and b/developer_mode/static/description/images/account_dynamic_report_banner.png differ diff --git a/developer_mode/static/description/images/checked.png b/developer_mode/static/description/images/checked.png new file mode 100644 index 000000000..578cedb80 Binary files /dev/null and b/developer_mode/static/description/images/checked.png differ diff --git a/developer_mode/static/description/images/crm_dashboard_banner.gif b/developer_mode/static/description/images/crm_dashboard_banner.gif new file mode 100644 index 000000000..b80a0bfc9 Binary files /dev/null and b/developer_mode/static/description/images/crm_dashboard_banner.gif differ diff --git a/developer_mode/static/description/images/custome_gantt_banner.png b/developer_mode/static/description/images/custome_gantt_banner.png new file mode 100644 index 000000000..edc204b88 Binary files /dev/null and b/developer_mode/static/description/images/custome_gantt_banner.png differ diff --git a/developer_mode/static/description/images/cybro.jpg b/developer_mode/static/description/images/cybro.jpg new file mode 100644 index 000000000..28b019bab Binary files /dev/null and b/developer_mode/static/description/images/cybro.jpg differ diff --git a/developer_mode/static/description/images/dev.jpg b/developer_mode/static/description/images/dev.jpg new file mode 100644 index 000000000..3cef12199 Binary files /dev/null and b/developer_mode/static/description/images/dev.jpg differ diff --git a/developer_mode/static/description/images/developer-mode1.png b/developer_mode/static/description/images/developer-mode1.png new file mode 100644 index 000000000..1a39561f2 Binary files /dev/null and b/developer_mode/static/description/images/developer-mode1.png differ diff --git a/developer_mode/static/description/images/developer-mode2.0.png b/developer_mode/static/description/images/developer-mode2.0.png new file mode 100644 index 000000000..1068f4cd1 Binary files /dev/null and b/developer_mode/static/description/images/developer-mode2.0.png differ diff --git a/developer_mode/static/description/images/developer-mode3.png b/developer_mode/static/description/images/developer-mode3.png new file mode 100644 index 000000000..a25707acb Binary files /dev/null and b/developer_mode/static/description/images/developer-mode3.png differ diff --git a/developer_mode/static/description/images/mobile_service_shop_pro_banner.jpg b/developer_mode/static/description/images/mobile_service_shop_pro_banner.jpg new file mode 100644 index 000000000..7a2e022ca Binary files /dev/null and b/developer_mode/static/description/images/mobile_service_shop_pro_banner.jpg differ diff --git a/developer_mode/static/description/images/report_maker_banner.gif b/developer_mode/static/description/images/report_maker_banner.gif new file mode 100644 index 000000000..db6305f39 Binary files /dev/null and b/developer_mode/static/description/images/report_maker_banner.gif differ diff --git a/developer_mode/static/description/index.html b/developer_mode/static/description/index.html new file mode 100644 index 000000000..3f7426c37 --- /dev/null +++ b/developer_mode/static/description/index.html @@ -0,0 +1,588 @@ + + +
+
+
+

Automatic Developer Mode

+

Developers, Keep up your smile!

+
+

Key Highlights

+
    + +
  • + + Automatically Trigger Developer Mode. +
  • +
  • + + Separate Group for 'Odoo Developers'. +
  • + +
  • + + Upgrade Modules Easily. +
  • + +
+
+
+ +
+
+
+ +
+
+
+ + + +
+
+ +

Overview

+
+

+ This module makes you free from activating developer mode operations repeatedly.When you login, It will trigger the DEVELOPER MODE automatically.It also helps in identification of running DB and make upgradation of modules easier. +

+
+
+ +

Configuration

+
+

+ You have to enable 'Odoo Developer' group for respective users (Except Admin)in settings & + YOU HAVE TO RE-LOGIN AFTER THE MODULE INSTALLATION. +

+
+ + +
+ +

Automatic Developer Mode +

+
+
    +
  • + + Automatically Trigger Developer Mode.
  • +
  • + + Separate Group for 'Odoo Developers'. +
  • +
  • + + Upgrade Modules Easily. +
  • + +
+
+ + + +
+ +
+

Screenshots

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

Suggested Products

+
+ +
+ + +
+

Our Service

+
+ +
+
+
+

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.

+
+
+
+
+
+ + +
+
+
+

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 +
+
+ +
+
+ + +
+
+
+ + +
+
+ +
+ + + + + + + + +
+
+
+
+ diff --git a/developer_mode/views/developer_mode_view.xml b/developer_mode/views/developer_mode_view.xml new file mode 100644 index 000000000..0e814b2af --- /dev/null +++ b/developer_mode/views/developer_mode_view.xml @@ -0,0 +1,20 @@ + + + + + + Modules Kanban + + ir.module.module + + + + + + + + + + + diff --git a/employee_documents_expiry/README.md b/employee_documents_expiry/README.md new file mode 100644 index 000000000..9604d929b --- /dev/null +++ b/employee_documents_expiry/README.md @@ -0,0 +1,40 @@ +Employee Documents +------------------ +Supporting Addon for HR, Manages Employee Related Documents + + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: Nimisha (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..e48f2d890 --- /dev/null +++ b/employee_documents_expiry/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-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..f438b8e1f --- /dev/null +++ b/employee_documents_expiry/__manifest__.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-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': '14.0.1.0.0', + 'summary': """Manages Employee Documents With Expiry Notifications.""", + 'description': """Manages Employee Related Documents with Expiry Notifications.""", + 'category': 'Generic Modules/Human Resources', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': ['base', 'hr'], + 'data': [ + 'security/ir.model.access.csv', + 'views/employee_check_list_view.xml', + 'views/employee_document_view.xml', + ], + 'demo': ['data/data.xml'], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/employee_documents_expiry/data/data.xml b/employee_documents_expiry/data/data.xml new file mode 100644 index 000000000..0583e0bb4 --- /dev/null +++ b/employee_documents_expiry/data/data.xml @@ -0,0 +1,27 @@ + + + + + + Education Certificate + entry + + + Salary Certificate + entry + + + Experience Certificate + entry + + + Experience Certificate + exit + + + Salary Certificate + exit + + + + \ No newline at end of file diff --git a/employee_documents_expiry/doc/RELEASE_NOTES.md b/employee_documents_expiry/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..67f3e0cc2 --- /dev/null +++ b/employee_documents_expiry/doc/RELEASE_NOTES.md @@ -0,0 +1,9 @@ +## Module + +#### 19.10.2020 +#### Version 14.0.1.0.0 +#### ADD +Initial commit for Employee Documents Expiry + + + diff --git a/employee_documents_expiry/models/__init__.py b/employee_documents_expiry/models/__init__.py new file mode 100644 index 000000000..745c3e7f6 --- /dev/null +++ b/employee_documents_expiry/models/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-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_documents +from . import employee_entry_exit_check_list diff --git a/employee_documents_expiry/models/employee_documents.py b/employee_documents_expiry/models/employee_documents.py new file mode 100644 index 000000000..93b87b672 --- /dev/null +++ b/employee_documents_expiry/models/employee_documents.py @@ -0,0 +1,103 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-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 models, fields, api, _ +from odoo.exceptions import Warning + + +class HrEmployeeDocument(models.Model): + _name = 'hr.employee.document' + _description = 'HR Employee Documents' + + def mail_reminder(self): + now = datetime.now() + timedelta(days=1) + date_now = now.date() + match = self.search([]) + for i in match: + if i.expiry_date: + exp_date = i.expiry_date - timedelta(days=7) + if date_now >= exp_date: + mail_content = " Hello " + i.employee_ref.name + ",
Your Document " + i.name + "is going to expire on " + \ + str(i.expiry_date) + ". Please renew it before expiry date" + main_content = { + 'subject': _('Document-%s Expired On %s') % (i.name, i.expiry_date), + 'author_id': self.env.user.partner_id.id, + 'body_html': mail_content, + 'email_to': i.employee_ref.work_email, + } + self.env['mail.mail'].create(main_content).send() + + @api.constrains('expiry_date') + def check_expr_date(self): + for each in self: + exp_date = each.expiry_date + if exp_date < date.today(): + raise Warning('Your Document Is Already Expired.') + + name = fields.Char(string='Document Number', required=True, copy=False) + document_name = fields.Many2one('employee.checklist', string='Document', required=True) + description = fields.Text(string='Description', copy=False) + expiry_date = fields.Date(string='Expiry Date', copy=False) + employee_ref = fields.Many2one('hr.employee', invisible=1, copy=False) + doc_attachment_id = fields.Many2many('ir.attachment', 'doc_attach_rel', '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) + + +class HrEmployee(models.Model): + _inherit = 'hr.employee' + + + def _document_count(self): + for each in self: + document_ids = self.env['hr.employee.document'].search([('employee_ref', '=', each.id)]) + each.document_count = len(document_ids) + + + def document_view(self): + self.ensure_one() + domain = [ + ('employee_ref', '=', self.id)] + return { + 'name': _('Documents'), + 'domain': domain, + 'res_model': 'hr.employee.document', + 'type': 'ir.actions.act_window', + 'view_id': False, + 'view_mode': 'tree,form', + 'view_type': 'form', + 'help': _('''

+ Click to Create for New Documents +

'''), + 'limit': 80, + 'context': "{'default_employee_ref': '%s'}" % self.id + } + + document_count = fields.Integer(compute='_document_count', string='# Documents') + + +class HrEmployeeAttachment(models.Model): + _inherit = 'ir.attachment' + + doc_attach_rel = fields.Many2many('hr.employee.document', 'doc_attachment_id', 'attach_id3', 'doc_id', + string="Attachment", invisible=1) diff --git a/employee_documents_expiry/models/employee_entry_exit_check_list.py b/employee_documents_expiry/models/employee_entry_exit_check_list.py new file mode 100644 index 000000000..4294443dc --- /dev/null +++ b/employee_documents_expiry/models/employee_entry_exit_check_list.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Cybrosys Techno Solutions(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from odoo import models, fields, api + + +class EmployeeEntryDocuments(models.Model): + _name = 'employee.checklist' + _inherit = 'mail.thread' + _description = "Employee Documents" + + def name_get(self): + 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 + + name = fields.Char(string='Document Name', copy=False, required=1) + document_type = fields.Selection([('entry', 'Entry Process'), + ('exit', 'Exit Process'), + ('other', 'Other')], string='Checklist Type', required=1) + + 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..bb52b71f5 --- /dev/null +++ b/employee_documents_expiry/security/ir.model.access.csv @@ -0,0 +1,7 @@ +id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink +access_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/banner.png b/employee_documents_expiry/static/description/banner.png new file mode 100644 index 000000000..18b4a37ec Binary files /dev/null and b/employee_documents_expiry/static/description/banner.png 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..2264d69e2 Binary files /dev/null and b/employee_documents_expiry/static/description/icon.png differ diff --git a/employee_documents_expiry/static/description/images/banner_lifeline_for_task.jpeg b/employee_documents_expiry/static/description/images/banner_lifeline_for_task.jpeg new file mode 100644 index 000000000..4a467ea22 Binary files /dev/null and b/employee_documents_expiry/static/description/images/banner_lifeline_for_task.jpeg differ diff --git a/employee_documents_expiry/static/description/images/banner_project_report_xls_pdf.png b/employee_documents_expiry/static/description/images/banner_project_report_xls_pdf.png new file mode 100644 index 000000000..3c430a7eb Binary files /dev/null and b/employee_documents_expiry/static/description/images/banner_project_report_xls_pdf.png differ diff --git a/employee_documents_expiry/static/description/images/banner_project_status_report.png b/employee_documents_expiry/static/description/images/banner_project_status_report.png new file mode 100644 index 000000000..d1b689710 Binary files /dev/null and b/employee_documents_expiry/static/description/images/banner_project_status_report.png differ diff --git a/employee_documents_expiry/static/description/images/banner_subtask.jpeg b/employee_documents_expiry/static/description/images/banner_subtask.jpeg new file mode 100644 index 000000000..f2b224110 Binary files /dev/null and b/employee_documents_expiry/static/description/images/banner_subtask.jpeg differ diff --git a/employee_documents_expiry/static/description/images/banner_task_deadline_reminder.jpeg b/employee_documents_expiry/static/description/images/banner_task_deadline_reminder.jpeg new file mode 100644 index 000000000..998679818 Binary files /dev/null and b/employee_documents_expiry/static/description/images/banner_task_deadline_reminder.jpeg differ diff --git a/employee_documents_expiry/static/description/images/banner_task_statusbar.jpeg b/employee_documents_expiry/static/description/images/banner_task_statusbar.jpeg new file mode 100644 index 000000000..2c57cbb7b Binary files /dev/null and b/employee_documents_expiry/static/description/images/banner_task_statusbar.jpeg differ diff --git a/employee_documents_expiry/static/description/images/checked.png b/employee_documents_expiry/static/description/images/checked.png new file mode 100644 index 000000000..578cedb80 Binary files /dev/null and b/employee_documents_expiry/static/description/images/checked.png differ diff --git a/employee_documents_expiry/static/description/images/cybrosys.png b/employee_documents_expiry/static/description/images/cybrosys.png new file mode 100644 index 000000000..d76b5bafb Binary files /dev/null and b/employee_documents_expiry/static/description/images/cybrosys.png differ diff --git a/employee_documents_expiry/static/description/images/doc.png b/employee_documents_expiry/static/description/images/doc.png new file mode 100644 index 000000000..0934c84b4 Binary files /dev/null and b/employee_documents_expiry/static/description/images/doc.png differ diff --git a/employee_documents_expiry/static/description/images/doc1.png b/employee_documents_expiry/static/description/images/doc1.png new file mode 100644 index 000000000..57e6f3f72 Binary files /dev/null and b/employee_documents_expiry/static/description/images/doc1.png differ diff --git a/employee_documents_expiry/static/description/images/doc2.png b/employee_documents_expiry/static/description/images/doc2.png new file mode 100644 index 000000000..497b30889 Binary files /dev/null and b/employee_documents_expiry/static/description/images/doc2.png differ diff --git a/employee_documents_expiry/static/description/images/doc3.png b/employee_documents_expiry/static/description/images/doc3.png new file mode 100644 index 000000000..a28faf3e0 Binary files /dev/null and b/employee_documents_expiry/static/description/images/doc3.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..119f09c2c --- /dev/null +++ b/employee_documents_expiry/static/description/index.html @@ -0,0 +1,310 @@ +
cybrosys-logo
+
+
+
+

Employee Documents

+

Manages Employee Related Documents

+
+

Key Highlights

+
    +
  • Managing Documents of Employees
  • +
  • Documents Types
  • +
  • Expiry Date for Documents
  • +
  • Validation for Expiry Date
  • +
  • Mail Notification Based on Expiry Date
  • + +
+
+
+
+ +
+
+
+
+ +
+
+ +

Overview

+
+

+ Each and every detail associated with an employee is useful for any organization for better Human resource management. So the employee documents with such necessary information must be saved and used accordingly. 'Employee Documents' is a useful tool that can help you to store and manage the employee related documents like certificates, appraisal reports, passport, license etc. The application also allows you to set an alert message on reaching the expiration/any other related dates of a document (like an expiration of passport)

+
+
+ +

Employee Documents

+
+
    +
  • + Managing Documents of Employees +
  • + +
  • + Documents Types +
  • + +
  • + Expiry Date for Documents +
  • + +
  • + Validation for Expiry Date +
  • + +
  • + Mail Notification Based on Expiry Date +
  • +
+
+ +
+
+

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/employee_documents_expiry/views/employee_check_list_view.xml b/employee_documents_expiry/views/employee_check_list_view.xml new file mode 100644 index 000000000..c698be1ac --- /dev/null +++ b/employee_documents_expiry/views/employee_check_list_view.xml @@ -0,0 +1,34 @@ + + + + + employee.checklist.form + employee.checklist + +
+ + + + + + +
+ + +
+
+
+
+ + + employee.checklist.tree + employee.checklist + + + + + + + + +
\ No newline at end of file diff --git a/employee_documents_expiry/views/employee_document_view.xml b/employee_documents_expiry/views/employee_document_view.xml new file mode 100644 index 000000000..5b0dc0cec --- /dev/null +++ b/employee_documents_expiry/views/employee_document_view.xml @@ -0,0 +1,67 @@ + + + + + HR Employee Data Expiration + + code + model.mail_reminder() + 1 + days + -1 + + + + hr.employee.document.form + hr.employee.document + +
+ + + + + + + + + + + + + + + + + + + +
+
+
+ + + hr.employee.document.tree + hr.employee.document + + + + + + + + + + + hr.employee.form.view + hr.employee + + +
+ +
+
+
+ +
\ No newline at end of file diff --git a/product_brand_inventory/README.md b/product_brand_inventory/README.md new file mode 100644 index 000000000..e111befbd --- /dev/null +++ b/product_brand_inventory/README.md @@ -0,0 +1,31 @@ +Product Brand in Inventory +========================== + +Installation +============ +- www.odoo.com/documentation/14.0/setup/install.html +- Install our custom addon + +License +======= +GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3) +(http://www.gnu.org/licenses/agpl.html) + +Bug Tracker +=========== +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Credits +======= +* Cybrosys Techno Solutions + + +Developer: Afras Habis - odoo@cybrosys.com + +Maintainer +---------- + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com. + diff --git a/product_brand_inventory/__init__.py b/product_brand_inventory/__init__.py new file mode 100644 index 000000000..f43dc8d9c --- /dev/null +++ b/product_brand_inventory/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +from . import models diff --git a/product_brand_inventory/__manifest__.py b/product_brand_inventory/__manifest__.py new file mode 100644 index 000000000..6932f74d4 --- /dev/null +++ b/product_brand_inventory/__manifest__.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies(). +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### +{ + 'name': 'Product Brand in Inventory', + 'version': '14.0.1.0.0', + 'category': 'Warehouse', + 'summary': 'Product Brand in Inventory', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'images': ['static/description/banner.png'], + 'website': 'https://www.cybrosys.com', + 'depends': ['stock'], + 'data': [ + 'views/brand_views.xml', + 'security/ir.model.access.csv', + ], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, + +} diff --git a/product_brand_inventory/doc/RELEASE_NOTES.md b/product_brand_inventory/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..813c05539 --- /dev/null +++ b/product_brand_inventory/doc/RELEASE_NOTES.md @@ -0,0 +1,5 @@ +## Module + +#### 29.11.2020 +#### Version 14.0.1.0.0 +#### ADD diff --git a/product_brand_inventory/models/__init__.py b/product_brand_inventory/models/__init__.py new file mode 100644 index 000000000..79145f8f0 --- /dev/null +++ b/product_brand_inventory/models/__init__.py @@ -0,0 +1 @@ +from . import brand \ No newline at end of file diff --git a/product_brand_inventory/models/brand.py b/product_brand_inventory/models/brand.py new file mode 100644 index 000000000..d0aceb034 --- /dev/null +++ b/product_brand_inventory/models/brand.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +from odoo import models,fields,api + + +class ProductBrand(models.Model): + _inherit = 'product.template' + + brand_id = fields.Many2one('product.brand',string='Brand') + + +class BrandProduct(models.Model): + _name = 'product.brand' + + + name= fields.Char(String="Name") + brand_image = fields.Binary() + member_ids = fields.One2many('product.template', 'brand_id') + product_count = fields.Char(String='Product Count', compute='get_count_products', store=True) + + @api.depends('member_ids') + def get_count_products(self): + self.product_count = len(self.member_ids) + + +class BrandReportStock(models.Model): + _inherit = 'stock.quant' + + brand_id = fields.Many2one(related='product_id.brand_id', + string='Brand', store=True, readonly=True) + + diff --git a/product_brand_inventory/security/ir.model.access.csv b/product_brand_inventory/security/ir.model.access.csv new file mode 100644 index 000000000..6c654dda8 --- /dev/null +++ b/product_brand_inventory/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_product_brand,access_product_brand,model_product_brand,,1,1,1,1 \ No newline at end of file diff --git a/product_brand_inventory/static/description/banner.png b/product_brand_inventory/static/description/banner.png new file mode 100644 index 000000000..525083a35 Binary files /dev/null and b/product_brand_inventory/static/description/banner.png differ diff --git a/product_brand_inventory/static/description/icon.png b/product_brand_inventory/static/description/icon.png new file mode 100644 index 000000000..8099ed628 Binary files /dev/null and b/product_brand_inventory/static/description/icon.png differ diff --git a/product_brand_inventory/static/description/images/1.jpeg b/product_brand_inventory/static/description/images/1.jpeg new file mode 100644 index 000000000..ccb8e1556 Binary files /dev/null and b/product_brand_inventory/static/description/images/1.jpeg differ diff --git a/product_brand_inventory/static/description/images/2.jpeg b/product_brand_inventory/static/description/images/2.jpeg new file mode 100644 index 000000000..2625f7727 Binary files /dev/null and b/product_brand_inventory/static/description/images/2.jpeg differ diff --git a/product_brand_inventory/static/description/images/3.jpeg b/product_brand_inventory/static/description/images/3.jpeg new file mode 100644 index 000000000..5dfdf2c2b Binary files /dev/null and b/product_brand_inventory/static/description/images/3.jpeg differ diff --git a/product_brand_inventory/static/description/images/4.jpeg b/product_brand_inventory/static/description/images/4.jpeg new file mode 100644 index 000000000..ec8264c0b Binary files /dev/null and b/product_brand_inventory/static/description/images/4.jpeg differ diff --git a/product_brand_inventory/static/description/images/5.jpeg b/product_brand_inventory/static/description/images/5.jpeg new file mode 100644 index 000000000..e10c28799 Binary files /dev/null and b/product_brand_inventory/static/description/images/5.jpeg differ diff --git a/product_brand_inventory/static/description/images/6.jpeg b/product_brand_inventory/static/description/images/6.jpeg new file mode 100644 index 000000000..529143e4e Binary files /dev/null and b/product_brand_inventory/static/description/images/6.jpeg differ diff --git a/product_brand_inventory/static/description/images/brandinv1.png b/product_brand_inventory/static/description/images/brandinv1.png new file mode 100644 index 000000000..2e68b67e4 Binary files /dev/null and b/product_brand_inventory/static/description/images/brandinv1.png differ diff --git a/product_brand_inventory/static/description/images/brandinv2.png b/product_brand_inventory/static/description/images/brandinv2.png new file mode 100644 index 000000000..769dcc5dd Binary files /dev/null and b/product_brand_inventory/static/description/images/brandinv2.png differ diff --git a/product_brand_inventory/static/description/images/brandinv3.png b/product_brand_inventory/static/description/images/brandinv3.png new file mode 100644 index 000000000..c21768adb Binary files /dev/null and b/product_brand_inventory/static/description/images/brandinv3.png differ diff --git a/product_brand_inventory/static/description/images/brandinv4.png b/product_brand_inventory/static/description/images/brandinv4.png new file mode 100644 index 000000000..9eced4baf Binary files /dev/null and b/product_brand_inventory/static/description/images/brandinv4.png differ diff --git a/product_brand_inventory/static/description/images/brandinv5.png b/product_brand_inventory/static/description/images/brandinv5.png new file mode 100644 index 000000000..33e19c906 Binary files /dev/null and b/product_brand_inventory/static/description/images/brandinv5.png differ diff --git a/product_brand_inventory/static/description/images/brandinv6.png b/product_brand_inventory/static/description/images/brandinv6.png new file mode 100644 index 000000000..53164bea7 Binary files /dev/null and b/product_brand_inventory/static/description/images/brandinv6.png differ diff --git a/product_brand_inventory/static/description/images/checked.png b/product_brand_inventory/static/description/images/checked.png new file mode 100644 index 000000000..578cedb80 Binary files /dev/null and b/product_brand_inventory/static/description/images/checked.png differ diff --git a/product_brand_inventory/static/description/images/cybrosys.png b/product_brand_inventory/static/description/images/cybrosys.png new file mode 100644 index 000000000..d76b5bafb Binary files /dev/null and b/product_brand_inventory/static/description/images/cybrosys.png differ diff --git a/product_brand_inventory/static/description/images/enable.png b/product_brand_inventory/static/description/images/enable.png new file mode 100644 index 000000000..c38dc2d38 Binary files /dev/null and b/product_brand_inventory/static/description/images/enable.png differ diff --git a/product_brand_inventory/static/description/images/paytm.gif b/product_brand_inventory/static/description/images/paytm.gif new file mode 100644 index 000000000..77b34a395 Binary files /dev/null and b/product_brand_inventory/static/description/images/paytm.gif differ diff --git a/product_brand_inventory/static/description/index.html b/product_brand_inventory/static/description/index.html new file mode 100644 index 000000000..c023f54d4 --- /dev/null +++ b/product_brand_inventory/static/description/index.html @@ -0,0 +1,334 @@ +
cybrosys-logo
+
+
+
+

Product Brand in Inventory

+
+

Key Highlights

+
    +
  • Manage the Product Brands Easily
  • +
+
+
+
+
+
+
+
+ +
+
+ +

Overview

+
+

+ This module allows the odoo users to manage their product brands easily . +

+
+
+ +

Product Brand

+
+
    +
  • + Easy adding of products to Product Brand. +
  • +
+
    +
  • + Product Brand inside Products. +
  • +
+
    +
  • + Group By Product Brand. +
  • +
+
    +
  • + Product Brand in Pivot view. +
  • +
+
+ +
+
+

Screenshots

+
+
+
+ +
+
+
+
+
+ +

Video

+
+
+

Product Brand Manager

+ +
+ Cybrosys Cover Video +
+
+
+ +
+
    +
+
+
+
+
+
+
+

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/product_brand_inventory/views/brand_views.xml b/product_brand_inventory/views/brand_views.xml new file mode 100644 index 000000000..424a7589d --- /dev/null +++ b/product_brand_inventory/views/brand_views.xml @@ -0,0 +1,82 @@ + + + + Brand Name + product.template + + + + + + + + + + Product Brand + product.brand + tree,form + + + Product Brand + product.brand + +
+ + +
+
\ No newline at end of file diff --git a/website_product_attachments/views/template.xml b/website_product_attachments/views/template.xml new file mode 100644 index 000000000..3a1cb8eb4 --- /dev/null +++ b/website_product_attachments/views/template.xml @@ -0,0 +1,17 @@ + + + + \ No newline at end of file diff --git a/website_repeat_sale/README.rst b/website_repeat_sale/README.rst new file mode 100644 index 000000000..a1b789620 --- /dev/null +++ b/website_repeat_sale/README.rst @@ -0,0 +1,43 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Website Reorder +=============== + +Website Reorder + +Installation +============ +- www.odoo.com/documentation/13.0/setup/install.html +- Install our custom addon + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: + Meera K @ Cybrosys + +Contacts +-------- +* Mail 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/website_repeat_sale/__init__.py b/website_repeat_sale/__init__.py new file mode 100755 index 000000000..53a7eae14 --- /dev/null +++ b/website_repeat_sale/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-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 controllers diff --git a/website_repeat_sale/__manifest__.py b/website_repeat_sale/__manifest__.py new file mode 100644 index 000000000..08996b3b7 --- /dev/null +++ b/website_repeat_sale/__manifest__.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-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': "Website Reorder", + 'version': '14.0.1.0.0', + 'summary': """Add products from sale history of customers to cart """, + 'description': """Add products from sale history of customers to cart """, + 'author': "Cybrosys Techno Solutions", + 'company': "Cybrosys Techno Solutions", + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'category': 'eCommerce', + 'depends': ['website_sale'], + 'license': 'AGPL-3', + 'data': [ + 'views/view.xml', + ], + 'images': ['static/description/banner.png'], + 'installable': True, + 'auto_install': False, +} diff --git a/website_repeat_sale/controllers/__init__.py b/website_repeat_sale/controllers/__init__.py new file mode 100644 index 000000000..5decb7193 --- /dev/null +++ b/website_repeat_sale/controllers/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-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 main \ No newline at end of file diff --git a/website_repeat_sale/controllers/main.py b/website_repeat_sale/controllers/main.py new file mode 100644 index 000000000..22f546dd1 --- /dev/null +++ b/website_repeat_sale/controllers/main.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-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 http +from odoo.http import request + + +class WebSaleOrderRepeat(http.Controller): + + @http.route('/order/repeat', type='http', auth="public", website=True) + def repeat_sale_order(self, **kwargs): + """Update products to cart when a user clicks reorder button""" + order_id = kwargs.get('id') + repeat_order_id = request.env['sale.order'].sudo().browse( + int(order_id)) + sale_order = request.website.sale_get_order(force_create=True) + if sale_order.state != 'draft': + request.session['sale_order_id'] = None + sale_order = request.website.sale_get_order(force_create=True) + add_qty = 0 + set_qty = 0 + for line1 in repeat_order_id.order_line: + if line1.product_id: + if sale_order.order_line: + for line2 in sale_order.order_line: + if line2.product_id == line1.product_id: + add_qty = line1.product_uom_qty + line2.product_uom_qty + set_qty = add_qty + break + else: + add_qty = line1.product_uom_qty + set_qty = add_qty + else: + add_qty = line1.product_uom_qty + set_qty = add_qty + + sale_order._cart_update( + product_id=int(line1.product_id.id), + add_qty=add_qty, + set_qty=set_qty, + ) + return request.redirect("/shop/cart") + diff --git a/website_repeat_sale/doc/RELEASE_NOTES.md b/website_repeat_sale/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..69117ebbd --- /dev/null +++ b/website_repeat_sale/doc/RELEASE_NOTES.md @@ -0,0 +1,9 @@ +## Module + +#### 04.11.2020 +#### Version 14.0.1.0.0 +##### ADD + +- Initial Commit for website_repeat_sale + + diff --git a/website_repeat_sale/static/description/banner.png b/website_repeat_sale/static/description/banner.png new file mode 100644 index 000000000..3c4396a79 Binary files /dev/null and b/website_repeat_sale/static/description/banner.png differ diff --git a/website_repeat_sale/static/description/icon.png b/website_repeat_sale/static/description/icon.png new file mode 100644 index 000000000..2d49d1d98 Binary files /dev/null and b/website_repeat_sale/static/description/icon.png differ diff --git a/website_repeat_sale/static/description/images/banner.png b/website_repeat_sale/static/description/images/banner.png new file mode 100644 index 000000000..61d6a81a2 Binary files /dev/null and b/website_repeat_sale/static/description/images/banner.png differ diff --git a/website_repeat_sale/static/description/images/barcode.jpeg b/website_repeat_sale/static/description/images/barcode.jpeg new file mode 100644 index 000000000..529143e4e Binary files /dev/null and b/website_repeat_sale/static/description/images/barcode.jpeg differ diff --git a/website_repeat_sale/static/description/images/checked.png b/website_repeat_sale/static/description/images/checked.png new file mode 100644 index 000000000..578cedb80 Binary files /dev/null and b/website_repeat_sale/static/description/images/checked.png differ diff --git a/website_repeat_sale/static/description/images/credit_exceed.png b/website_repeat_sale/static/description/images/credit_exceed.png new file mode 100644 index 000000000..e35c8df65 Binary files /dev/null and b/website_repeat_sale/static/description/images/credit_exceed.png differ diff --git a/website_repeat_sale/static/description/images/customer_credit.png b/website_repeat_sale/static/description/images/customer_credit.png new file mode 100644 index 000000000..036c91d9a Binary files /dev/null and b/website_repeat_sale/static/description/images/customer_credit.png differ diff --git a/website_repeat_sale/static/description/images/cybrosys.png b/website_repeat_sale/static/description/images/cybrosys.png new file mode 100644 index 000000000..d76b5bafb Binary files /dev/null and b/website_repeat_sale/static/description/images/cybrosys.png differ diff --git a/website_repeat_sale/static/description/images/multiple_products.png b/website_repeat_sale/static/description/images/multiple_products.png new file mode 100644 index 000000000..3a2051a87 Binary files /dev/null and b/website_repeat_sale/static/description/images/multiple_products.png differ diff --git a/website_repeat_sale/static/description/images/product_recom.png b/website_repeat_sale/static/description/images/product_recom.png new file mode 100644 index 000000000..6b124fb63 Binary files /dev/null and b/website_repeat_sale/static/description/images/product_recom.png differ diff --git a/website_repeat_sale/static/description/images/product_to_quota.png b/website_repeat_sale/static/description/images/product_to_quota.png new file mode 100644 index 000000000..322f18f64 Binary files /dev/null and b/website_repeat_sale/static/description/images/product_to_quota.png differ diff --git a/website_repeat_sale/static/description/images/repeat-sale-order.png b/website_repeat_sale/static/description/images/repeat-sale-order.png new file mode 100644 index 000000000..c77a47078 Binary files /dev/null and b/website_repeat_sale/static/description/images/repeat-sale-order.png differ diff --git a/website_repeat_sale/static/description/images/screenshot-01.png b/website_repeat_sale/static/description/images/screenshot-01.png new file mode 100644 index 000000000..96f3cb8ec Binary files /dev/null and b/website_repeat_sale/static/description/images/screenshot-01.png differ diff --git a/website_repeat_sale/static/description/images/screenshot-02.png b/website_repeat_sale/static/description/images/screenshot-02.png new file mode 100644 index 000000000..2e2d86aad Binary files /dev/null and b/website_repeat_sale/static/description/images/screenshot-02.png differ diff --git a/website_repeat_sale/static/description/images/screenshot-03.png b/website_repeat_sale/static/description/images/screenshot-03.png new file mode 100644 index 000000000..5e2537c46 Binary files /dev/null and b/website_repeat_sale/static/description/images/screenshot-03.png differ diff --git a/website_repeat_sale/static/description/index.html b/website_repeat_sale/static/description/index.html new file mode 100644 index 000000000..ac5d83f22 --- /dev/null +++ b/website_repeat_sale/static/description/index.html @@ -0,0 +1,565 @@ +
+ cybrosys-logo
+
+
+
+

Website + Reorder

+

Repeat a sale order + quickly from sale order history(my/orders) of Customer.

+
+

Key Highlights

+
    +
  • check + Repeat a sale order quickly from sale order history(my/orders) of Customer. + Added a button in 'my/orders' and in sale order preview form. +
  • +
+
+
+
+
+
+
+
+ +
+
+ +

Overview

+
+

+ Repeat a sale order quickly from sale order history(my/orders) of + Customer. + Added a button in 'my/orders' and in sale order preview form. +

+
+
+ +

Repeat a sale order from sale order history

+
+
    +
  • + checkUsers can + add all the products in a sale order to the cart from the sale order history of the user . +
  • +
+
+ +
+
+

+ Screenshots

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

Suggested + Products

+
+ +
+
+

Our + Service

+
+ +
+
+
+

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.

+
+
+
+
+
+ +
+
+
+

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/website_repeat_sale/views/view.xml b/website_repeat_sale/views/view.xml new file mode 100644 index 000000000..1ea052dd6 --- /dev/null +++ b/website_repeat_sale/views/view.xml @@ -0,0 +1,25 @@ + + + + + \ No newline at end of file