diff --git a/front_office_management/README.rst b/front_office_management/README.rst new file mode 100644 index 000000000..1d0ee91e3 --- /dev/null +++ b/front_office_management/README.rst @@ -0,0 +1,21 @@ +=========================== +Front Office Management v14 +=========================== + +Helps You To Manage Front Office Operations. + +Installation +============ + +Just install the module. + +Configuration +============= + +Nothing to configure. + +Credits +======= +Anusha P P @ cybrosys, anusha@cybrosys.in +Niyas Raphy @ cybrosys, niyas@cybrosys.in +Vinaya S B @ cybrosys diff --git a/front_office_management/__init__.py b/front_office_management/__init__.py new file mode 100644 index 000000000..ff9cce844 --- /dev/null +++ b/front_office_management/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies(). +# Author: Anusha P 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/front_office_management/__manifest__.py b/front_office_management/__manifest__.py new file mode 100644 index 000000000..597ead70f --- /dev/null +++ b/front_office_management/__manifest__.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies(). +# Author: Anusha P P (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +{ + 'name': "Front Office Management", + 'version': '14.0.1.0.0', + 'summary': """Manage Front Office Operations:Visitors, Devices Carrying Register, Actions""", + 'description': """Helps You To Manage Front Office Operations, Odoo14""", + 'author': "Cybrosys Techno Solutions", + 'maintainer': 'Cybrosys Techno Solutions', + 'company': "Cybrosys Techno Solutions", + 'website': "https://www.cybrosys.com", + 'category': 'Industries', + 'depends': ['base', 'hr'], + 'data': [ + 'views/fo_visit.xml', + 'views/fo_visitor.xml', + 'views/fo_property_counter.xml', + 'report/report.xml', + 'report/fo_property_label.xml', + 'report/fo_visitor_label.xml', + 'report/visitors_report.xml', + 'security/fo_security.xml', + 'security/ir.model.access.csv', + ], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, +} diff --git a/front_office_management/doc/RELEASE_NOTES.md b/front_office_management/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..fc7517d2d --- /dev/null +++ b/front_office_management/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 03.10.2020 +#### Version 14.0.1.0.0 +##### ADD +- Migrated to version 14 diff --git a/front_office_management/models/__init__.py b/front_office_management/models/__init__.py new file mode 100644 index 000000000..1737d20c2 --- /dev/null +++ b/front_office_management/models/__init__.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies(). +# Author: Anusha P 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 fo_visitor +from . import fo_property_counter +from . import fo_visit + + + + + + diff --git a/front_office_management/models/fo_property_counter.py b/front_office_management/models/fo_property_counter.py new file mode 100644 index 000000000..7d8983a16 --- /dev/null +++ b/front_office_management/models/fo_property_counter.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields, api,_ +from odoo.exceptions import UserError + + +class VisitDetails(models.Model): + _name = 'fo.property.counter' + _inherit = 'mail.thread' + _rec_name = 'employee' + _description = 'Property Details' + + employee = fields.Many2one('hr.employee', string="Employee", required=True) + date = fields.Date(string="Date", required=True) + visitor_belongings = fields.One2many('fo.belongings', 'belongings_id_fov_employee', string="Personal Belongings", + copy=False) + state = fields.Selection([ + ('draft', 'Draft'), + ('prop_in', 'Taken In'), + ('prop_out', 'Taken out'), + ('cancel', 'Cancelled'), + ], track_visibility='onchange', default='draft', + help='If the employee taken the belongings to the company change state to ""Taken In""' + 'when he/she leave office change the state to ""Taken out""') + + def action_cancel(self): + self.state = "cancel" + + def action_prop_in(self): + count = 0 + number = 0 + for data in self.visitor_belongings: + if not data.property_count: + raise UserError(_('Please Add the Count.')) + if data.permission == '1': + count += 1 + number = data.number + if number == count: + raise UserError(_('No property can be taken in.')) + else: + self.state = 'prop_in' + + def action_prop_out(self): + self.state = "prop_out" + + + + + diff --git a/front_office_management/models/fo_visit.py b/front_office_management/models/fo_visit.py new file mode 100644 index 000000000..7eb18c188 --- /dev/null +++ b/front_office_management/models/fo_visit.py @@ -0,0 +1,102 @@ +# -*- coding: utf-8 -*- +import datetime +from odoo import models, fields, api, _ + + +class VisitDetails(models.Model): + _name = 'fo.visit' + _inherit = ['mail.thread'] + _description = 'Visit' + + name = fields.Char(string="sequence", default=lambda self: _('New')) + visitor = fields.Many2one("fo.visitor", string='Visitor') + phone = fields.Char(string="Phone", required=True) + email = fields.Char(string="Email", required=True) + reason = fields.Many2many('fo.purpose', string='Purpose Of Visit', required=True, + help='Enter the reason for visit') + visitor_belongings = fields.One2many('fo.belongings', 'belongings_id_fov_visitor', string="Personal Belongings", + help='Add the belongings details here.') + check_in_date = fields.Datetime(string="Check In Time", help='Visitor check in time automatically' + ' fills when he checked in to the office.') + check_out_date = fields.Datetime(string="Check Out Time", help='Visitor check out time automatically ' + 'fills when he checked out from the office.') + visiting_person = fields.Many2one('hr.employee', string="Meeting With") + department = fields.Many2one('hr.department', string="Department") + state = fields.Selection([ + ('draft', 'Draft'), + ('check_in', 'Checked In'), + ('check_out', 'Checked Out'), + ('cancel', 'Cancelled'), + ], track_visibility='onchange', default='draft') + + @api.model + def create(self, vals): + if vals: + vals['name'] = self.env['ir.sequence'].next_by_code('fo.visit') or _('New') + result = super(VisitDetails, self).create(vals) + return result + + def action_cancel(self): + self.state = "cancel" + + def action_check_in(self): + self.state = "check_in" + self.check_in_date = datetime.datetime.now() + + def action_check_out(self): + self.state = "check_out" + self.check_out_date = datetime.datetime.now() + + @api.onchange('visitor') + def visitor_details(self): + if self.visitor: + if self.visitor.phone: + self.phone = self.visitor.phone + if self.visitor.email: + self.email = self.visitor.email + + @api.onchange('visiting_person') + def get_employee_dpt(self): + if self.visiting_person: + self.department = self.visiting_person.department_id + + +class PersonalBelongings(models.Model): + _name = 'fo.belongings' + + property_name = fields.Char(string="Property", help='Employee belongings name') + property_count = fields.Char(string="Count", help='Count of property') + number = fields.Integer(compute='get_number', store=True, string="Sl") + belongings_id_fov_visitor = fields.Many2one('fo.visit', string="Belongings") + belongings_id_fov_employee = fields.Many2one('fo.property.counter', string="Belongings") + permission = fields.Selection([ + ('0', 'Allowed'), + ('1', 'Not Allowed'), + ('2', 'Allowed With Permission'), + ], 'Permission', required=True, index=True, default='0', track_visibility='onchange') + + @api.depends('belongings_id_fov_visitor', 'belongings_id_fov_employee') + def get_number(self): + for visit in self.mapped('belongings_id_fov_visitor'): + number = 1 + for line in visit.visitor_belongings: + line.number = number + number += 1 + for visit in self.mapped('belongings_id_fov_employee'): + number = 1 + for line in visit.visitor_belongings: + line.number = number + number += 1 + + +class VisitPurpose(models.Model): + _name = 'fo.purpose' + + name = fields.Char(string='Purpose', required=True, help='Meeting purpose in short term.eg:Meeting.') + description = fields.Text(string='Description Of Purpose', help='Description for the Purpose.') + + + + + + diff --git a/front_office_management/models/fo_visitor.py b/front_office_management/models/fo_visitor.py new file mode 100644 index 000000000..5e3778886 --- /dev/null +++ b/front_office_management/models/fo_visitor.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +from odoo import models, fields, api + + +class VisitorDetails(models.Model): + _name = 'fo.visitor' + + name = fields.Char(string="Visitor", required=True) + visitor_image = fields.Binary(string='Image', attachment=True) + street = fields.Char(string="Street") + street2 = fields.Char(string="Street2") + zip = fields.Char(change_default=True) + city = fields.Char() + state_id = fields.Many2one("res.country.state", string='State', ondelete='restrict') + country_id = fields.Many2one('res.country', string='Country', ondelete='restrict') + phone = fields.Char(string="Phone", required=True) + email = fields.Char(string="Email", required=True) + id_proof = fields.Many2one('id.proof', string="ID Proof") + id_proof_no = fields.Char(string="ID Number", help='Id proof number') + company_info = fields.Many2one('res.partner', string="Company", help='Visiting persons company details') + visit_count = fields.Integer(compute='_no_visit_count', string='# Visits') + + _sql_constraints = [ + ('field_uniq_email_and_id_proof', 'unique (email,id_proof)', "Please give the correct data !"), + ] + + def _no_visit_count(self): + data = self.env['fo.visit'].search([('visitor', '=', self.ids), ('state', '!=', 'cancel')]).ids + self.visit_count = len(data) + + +class VisitorProof(models.Model): + _name = 'id.proof' + _rec_name = 'id_proof' + + id_proof = fields.Char(string="Name") + code = fields.Char(string="Code") + + + + + + + + diff --git a/front_office_management/report/fo_property_label.xml b/front_office_management/report/fo_property_label.xml new file mode 100644 index 000000000..48868f198 --- /dev/null +++ b/front_office_management/report/fo_property_label.xml @@ -0,0 +1,57 @@ + + + + + + \ No newline at end of file diff --git a/front_office_management/report/fo_visitor_label.xml b/front_office_management/report/fo_visitor_label.xml new file mode 100644 index 000000000..ffcbd3395 --- /dev/null +++ b/front_office_management/report/fo_visitor_label.xml @@ -0,0 +1,70 @@ + + + + + + \ No newline at end of file diff --git a/front_office_management/report/report.xml b/front_office_management/report/report.xml new file mode 100644 index 000000000..129d9a6a1 --- /dev/null +++ b/front_office_management/report/report.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/front_office_management/report/visitors_report.xml b/front_office_management/report/visitors_report.xml new file mode 100644 index 000000000..ddc335807 --- /dev/null +++ b/front_office_management/report/visitors_report.xml @@ -0,0 +1,64 @@ + + + + + + diff --git a/front_office_management/security/fo_security.xml b/front_office_management/security/fo_security.xml new file mode 100644 index 000000000..d0b1da4d1 --- /dev/null +++ b/front_office_management/security/fo_security.xml @@ -0,0 +1,17 @@ + + + + + + Reception + 0 + + + + + Receptionist + + + + + \ No newline at end of file diff --git a/front_office_management/security/ir.model.access.csv b/front_office_management/security/ir.model.access.csv new file mode 100644 index 000000000..9caaabf7f --- /dev/null +++ b/front_office_management/security/ir.model.access.csv @@ -0,0 +1,14 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_fo_visit_receptionist,fo.visit,model_fo_visit,front_office_management.group_receptionist,1,1,1,1 +access_fo_visitor_receptionist,fo_visitor,model_fo_visitor,front_office_management.group_receptionist,1,1,1,1 +access_fo_belongings_receptionist,fo.belongings,model_fo_belongings,front_office_management.group_receptionist,1,1,1,1 +access_id_proof_receptionist,id.proof,model_id_proof,front_office_management.group_receptionist,1,1,1,1 +access_fo_property_counter_receptionist,fo.property.counter,model_fo_property_counter,front_office_management.group_receptionist,1,1,1,1 +access_fo_purpose_receptionist,fo.purpose,model_fo_purpose,front_office_management.group_receptionist,1,1,1,1 + + + + + + + diff --git a/front_office_management/static/description/banner.png b/front_office_management/static/description/banner.png new file mode 100644 index 000000000..d62e74a72 Binary files /dev/null and b/front_office_management/static/description/banner.png differ diff --git a/front_office_management/static/description/icon.png b/front_office_management/static/description/icon.png new file mode 100644 index 000000000..db8f5573f Binary files /dev/null and b/front_office_management/static/description/icon.png differ diff --git a/front_office_management/static/description/images/banner_lifeline_for_task.jpeg b/front_office_management/static/description/images/banner_lifeline_for_task.jpeg new file mode 100644 index 000000000..4a467ea22 Binary files /dev/null and b/front_office_management/static/description/images/banner_lifeline_for_task.jpeg differ diff --git a/front_office_management/static/description/images/banner_project_report_xls_pdf.png b/front_office_management/static/description/images/banner_project_report_xls_pdf.png new file mode 100644 index 000000000..3c430a7eb Binary files /dev/null and b/front_office_management/static/description/images/banner_project_report_xls_pdf.png differ diff --git a/front_office_management/static/description/images/banner_project_status_report.png b/front_office_management/static/description/images/banner_project_status_report.png new file mode 100644 index 000000000..d1b689710 Binary files /dev/null and b/front_office_management/static/description/images/banner_project_status_report.png differ diff --git a/front_office_management/static/description/images/banner_subtask.jpeg b/front_office_management/static/description/images/banner_subtask.jpeg new file mode 100644 index 000000000..f2b224110 Binary files /dev/null and b/front_office_management/static/description/images/banner_subtask.jpeg differ diff --git a/front_office_management/static/description/images/banner_task_deadline_reminder.jpeg b/front_office_management/static/description/images/banner_task_deadline_reminder.jpeg new file mode 100644 index 000000000..998679818 Binary files /dev/null and b/front_office_management/static/description/images/banner_task_deadline_reminder.jpeg differ diff --git a/front_office_management/static/description/images/banner_task_statusbar.jpeg b/front_office_management/static/description/images/banner_task_statusbar.jpeg new file mode 100644 index 000000000..2c57cbb7b Binary files /dev/null and b/front_office_management/static/description/images/banner_task_statusbar.jpeg differ diff --git a/front_office_management/static/description/images/checked.png b/front_office_management/static/description/images/checked.png new file mode 100644 index 000000000..578cedb80 Binary files /dev/null and b/front_office_management/static/description/images/checked.png differ diff --git a/front_office_management/static/description/images/cybrosys.png b/front_office_management/static/description/images/cybrosys.png new file mode 100644 index 000000000..d76b5bafb Binary files /dev/null and b/front_office_management/static/description/images/cybrosys.png differ diff --git a/front_office_management/static/description/images/property counter.png b/front_office_management/static/description/images/property counter.png new file mode 100644 index 000000000..89220d93c Binary files /dev/null and b/front_office_management/static/description/images/property counter.png differ diff --git a/front_office_management/static/description/images/property label.png b/front_office_management/static/description/images/property label.png new file mode 100644 index 000000000..10c64cfbd Binary files /dev/null and b/front_office_management/static/description/images/property label.png differ diff --git a/front_office_management/static/description/images/today_s visit.png b/front_office_management/static/description/images/today_s visit.png new file mode 100644 index 000000000..d331c9dba Binary files /dev/null and b/front_office_management/static/description/images/today_s visit.png differ diff --git a/front_office_management/static/description/images/visit.png b/front_office_management/static/description/images/visit.png new file mode 100644 index 000000000..8f7ce018f Binary files /dev/null and b/front_office_management/static/description/images/visit.png differ diff --git a/front_office_management/static/description/images/visitor creation.png b/front_office_management/static/description/images/visitor creation.png new file mode 100644 index 000000000..738de73fe Binary files /dev/null and b/front_office_management/static/description/images/visitor creation.png differ diff --git a/front_office_management/static/description/images/visitor pass.png b/front_office_management/static/description/images/visitor pass.png new file mode 100644 index 000000000..bb165b2c1 Binary files /dev/null and b/front_office_management/static/description/images/visitor pass.png differ diff --git a/front_office_management/static/description/images/visitor report.png b/front_office_management/static/description/images/visitor report.png new file mode 100644 index 000000000..86cec9ad6 Binary files /dev/null and b/front_office_management/static/description/images/visitor report.png differ diff --git a/front_office_management/static/description/images/visitor.png b/front_office_management/static/description/images/visitor.png new file mode 100644 index 000000000..96e53528a Binary files /dev/null and b/front_office_management/static/description/images/visitor.png differ diff --git a/front_office_management/static/description/index.html b/front_office_management/static/description/index.html new file mode 100644 index 000000000..b21aec699 --- /dev/null +++ b/front_office_management/static/description/index.html @@ -0,0 +1,600 @@ +
+ cybrosys-logo
+
+
+
+

Front Office Management

+

Manages Visitors and Employee + Belongings

+
+

Key Highlights

+
    +
  • Manage visitors. +
  • +
  • Issue Visitor Pass. +
  • +
  • Keep Check in, Check out Details + of Visitors. +
  • +
  • Manage Visitor Belongings. +
  • +
  • Print Report Of visitor. +
  • +
  • Manage Employee Belongings. +
  • +
  • Print Property Label. +
  • +
+
+
+
+ +
+
+
+
+ +
+
+ +

Overview

+
+

+ This app will help you to manage the visitors coming to your office by issuing entry passes + and handling their belongings. The app can also manage the belongings of your + employees.

+
+
+ +

Front Office Management

+
+
    + +

    + Manage visitors. +

    + +

    + Issue Visitor + Pass. +

    + +

    + Keep Check in, + Check out Details of Visitors. +

    + + +

    + Manage Visitor + Belongings. +

    + +

    + Print Report Of + visitor. +

    + +

    + Manage Employee + Belongings. +

    +

    + Print Property Label. +

    + + +
+
+ +
+
+

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/front_office_management/views/fo_property_counter.xml b/front_office_management/views/fo_property_counter.xml new file mode 100644 index 000000000..d21cf6dee --- /dev/null +++ b/front_office_management/views/fo_property_counter.xml @@ -0,0 +1,90 @@ + + + + + Property Counter + fo.property.counter + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+
+ + + Property Counter + fo.property.counter + + + + + + + + + + Property Counter + fo.property.counter + tree,form + +

Record Personal Belongings. +

+
+
+ + + +
+
\ No newline at end of file diff --git a/front_office_management/views/fo_visit.xml b/front_office_management/views/fo_visit.xml new file mode 100644 index 000000000..e2ec81712 --- /dev/null +++ b/front_office_management/views/fo_visit.xml @@ -0,0 +1,186 @@ + + + + + Visits + fo.visit + +
+
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ + + Visits + fo.visit + + + + + + + + + + + + Visits + fo.visit + tree,form + +

Create Visits. +

+

+ The check in time will be automatically filled when the visitor check in to the office. +

+

+ The check out time automatically filled when the visitor check out from office. +

+
+
+ + + Today's Visits + fo.visit + tree,form + [('check_in_date', '>=',((context_today()-datetime.timedelta(days=0)).strftime('%Y-%m-%d 00:00:00'))), + ('check_in_date', '<=',((context_today()-datetime.timedelta(days=0)).strftime('%Y-%m-%d 23:59:59')))] + + + + + Visits + fo.visit + VID + 3 + + + + + Belongings + fo.belongings + +
+ + + + + + + + + + +
+
+
+ + + ID Proof + id.proof + +
+ + + + + + + + + + +
+
+
+ + + + + Visiting Purpose + fo.purpose + +
+ + + + + + + + + + +
+
+
+
+
\ No newline at end of file diff --git a/front_office_management/views/fo_visitor.xml b/front_office_management/views/fo_visitor.xml new file mode 100644 index 000000000..a638d316a --- /dev/null +++ b/front_office_management/views/fo_visitor.xml @@ -0,0 +1,119 @@ + + + + + Visitors + fo.visitor + +
+ +
+ +
+ +
+

+ + + + +
+ +
+

+
+ + + + + + + + + + +
+
+
+
+ + + fo.visitor.kanban + fo.visitor + + + + + +
+
+ +
+
+ +
    +
  • Name :
  • +
  • Phone:
  • +
+
+
+
+
+
+
+
+
+ + + + Visitors + fo.visitor + tree + + + + + + + + + + + Visitors + ir.actions.act_window + fo.visitor + kanban,tree,form + + +

+ Click to Create New Visitor. +

+
+
+ + + + + + + +
+
\ No newline at end of file diff --git a/sale_product_image/README.rst b/sale_product_image/README.rst new file mode 100644 index 000000000..893fad350 --- /dev/null +++ b/sale_product_image/README.rst @@ -0,0 +1,45 @@ +Sale Order Line Images +====================== +Order Line Images In Sale + +Installation +============ + - www.odoo.com/documentation/14.0/setup/install.html + - Install our custom addon + +Configuration +============= + + - No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer v13: Anusha @ Cybrosys +* Developer v14: Vinaya @ Cybrosys + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ + diff --git a/sale_product_image/__init__.py b/sale_product_image/__init__.py new file mode 100644 index 000000000..6215ac966 --- /dev/null +++ b/sale_product_image/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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 +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from . import models diff --git a/sale_product_image/__manifest__.py b/sale_product_image/__manifest__.py new file mode 100644 index 000000000..3e7421273 --- /dev/null +++ b/sale_product_image/__manifest__.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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 +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + "name": "Sale Order Line Images", + "summary": "Order Line Images In Sale and Sale Report", + "version": "14.0.1.0.0", + "category": 'Sales', + "website": "https://www.cybrosys.com", + "description": """Order Line Images In Sale and Sale Report, odoo 14, order line images""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + "depends": [ + 'sale_management', + ], + "data": [ + 'views/sale_order_line_image.xml', + 'views/res_config_settings.xml', + 'report/sale_order_report.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/sale_product_image/doc/RELEASE_NOTES.md b/sale_product_image/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..9fd966cd0 --- /dev/null +++ b/sale_product_image/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 03.10.2020 +#### Version 14.0.1.0.0 +##### ADD +- Initial commit for Sale Order Line Images diff --git a/sale_product_image/models/__init__.py b/sale_product_image/models/__init__.py new file mode 100644 index 000000000..4a1cd0931 --- /dev/null +++ b/sale_product_image/models/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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 +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import sale_order_line_image +from . import res_config_settings diff --git a/sale_product_image/models/res_config_settings.py b/sale_product_image/models/res_config_settings.py new file mode 100644 index 000000000..dda4adc1e --- /dev/null +++ b/sale_product_image/models/res_config_settings.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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 +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from odoo import fields, models, api + + +class ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + show_product_image_in_sale_report = fields.Boolean(string="Show Product Image", default=False) + + @api.model + def set_values(self): + self.env['ir.config_parameter'].sudo().set_param('sale_product_image.show_product_image_in_sale_report', + self.show_product_image_in_sale_report) + res = super(ResConfigSettings, self).set_values() + return res + + def get_values(self): + res = super(ResConfigSettings, self).get_values() + param = self.env['ir.config_parameter'].sudo().get_param( + 'sale_product_image.show_product_image_in_sale_report', + self.show_product_image_in_sale_report) + res.update( + show_product_image_in_sale_report=param + ) + return res diff --git a/sale_product_image/models/sale_order_line_image.py b/sale_product_image/models/sale_order_line_image.py new file mode 100644 index 000000000..a99387c14 --- /dev/null +++ b/sale_product_image/models/sale_order_line_image.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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 +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class SaleOrderLine(models.Model): + _inherit = 'sale.order.line' + + order_line_image = fields.Binary(string="Image", + related="product_id.image_1920") diff --git a/sale_product_image/report/sale_order_report.xml b/sale_product_image/report/sale_order_report.xml new file mode 100644 index 000000000..91cc4eba1 --- /dev/null +++ b/sale_product_image/report/sale_order_report.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/sale_product_image/static/description/banner.png b/sale_product_image/static/description/banner.png new file mode 100644 index 000000000..f9f0f964c Binary files /dev/null and b/sale_product_image/static/description/banner.png differ diff --git a/sale_product_image/static/description/icon.png b/sale_product_image/static/description/icon.png new file mode 100644 index 000000000..1e99216ed Binary files /dev/null and b/sale_product_image/static/description/icon.png differ diff --git a/sale_product_image/static/description/images/banner_barcode_scanning.jpeg b/sale_product_image/static/description/images/banner_barcode_scanning.jpeg new file mode 100644 index 000000000..529143e4e Binary files /dev/null and b/sale_product_image/static/description/images/banner_barcode_scanning.jpeg differ diff --git a/sale_product_image/static/description/images/banner_currency_total.png b/sale_product_image/static/description/images/banner_currency_total.png new file mode 100644 index 000000000..6153ed719 Binary files /dev/null and b/sale_product_image/static/description/images/banner_currency_total.png differ diff --git a/sale_product_image/static/description/images/banner_customer_sequence.jpeg b/sale_product_image/static/description/images/banner_customer_sequence.jpeg new file mode 100644 index 000000000..7451342d6 Binary files /dev/null and b/sale_product_image/static/description/images/banner_customer_sequence.jpeg differ diff --git a/sale_product_image/static/description/images/banner_previous_rates.jpeg b/sale_product_image/static/description/images/banner_previous_rates.jpeg new file mode 100644 index 000000000..e10c28799 Binary files /dev/null and b/sale_product_image/static/description/images/banner_previous_rates.jpeg differ diff --git a/sale_product_image/static/description/images/banner_product_branding.png b/sale_product_image/static/description/images/banner_product_branding.png new file mode 100644 index 000000000..aa12beabb Binary files /dev/null and b/sale_product_image/static/description/images/banner_product_branding.png differ diff --git a/sale_product_image/static/description/images/banner_product_expiry.jpeg b/sale_product_image/static/description/images/banner_product_expiry.jpeg new file mode 100644 index 000000000..84a872d44 Binary files /dev/null and b/sale_product_image/static/description/images/banner_product_expiry.jpeg differ diff --git a/sale_product_image/static/description/images/checked.png b/sale_product_image/static/description/images/checked.png new file mode 100644 index 000000000..578cedb80 Binary files /dev/null and b/sale_product_image/static/description/images/checked.png differ diff --git a/sale_product_image/static/description/images/cybrosys.png b/sale_product_image/static/description/images/cybrosys.png new file mode 100644 index 000000000..d76b5bafb Binary files /dev/null and b/sale_product_image/static/description/images/cybrosys.png differ diff --git a/sale_product_image/static/description/images/sale_order_line_image.png b/sale_product_image/static/description/images/sale_order_line_image.png new file mode 100644 index 000000000..4efb6a009 Binary files /dev/null and b/sale_product_image/static/description/images/sale_order_line_image.png differ diff --git a/sale_product_image/static/description/images/sale_order_line_image1.png b/sale_product_image/static/description/images/sale_order_line_image1.png new file mode 100644 index 000000000..81f183a8e Binary files /dev/null and b/sale_product_image/static/description/images/sale_order_line_image1.png differ diff --git a/sale_product_image/static/description/images/sale_order_line_image2.png b/sale_product_image/static/description/images/sale_order_line_image2.png new file mode 100644 index 000000000..441ee0ad3 Binary files /dev/null and b/sale_product_image/static/description/images/sale_order_line_image2.png differ diff --git a/sale_product_image/static/description/images/sale_order_line_image_3.png b/sale_product_image/static/description/images/sale_order_line_image_3.png new file mode 100644 index 000000000..5ef1feb17 Binary files /dev/null and b/sale_product_image/static/description/images/sale_order_line_image_3.png differ diff --git a/sale_product_image/static/description/index.html b/sale_product_image/static/description/index.html new file mode 100644 index 000000000..733615aa1 --- /dev/null +++ b/sale_product_image/static/description/index.html @@ -0,0 +1,508 @@ +
+ cybrosys-logo
+
+
+
+

Sale Order Line Images

+

Order Line Image In Sale Order.

+
+

Key Highlights

+
    +
  • + Product images in order line. +
  • +
  • + Print product images in report. +
  • +
+
+
+
+
+
+
+
+ +
+
+ +

Overview

+
+

+ This app allows you see the product images in sale order line and also allow us + to print the product image in report. +

+
+
+ +

Features

+
+
    +
  • + Order line product images. +
  • +
  • + Print product images in report. +
  • +
  • + Configure the Image printing Option. +
  • +
+
+ +
+
+

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/sale_product_image/views/res_config_settings.xml b/sale_product_image/views/res_config_settings.xml new file mode 100644 index 000000000..4bce0e43f --- /dev/null +++ b/sale_product_image/views/res_config_settings.xml @@ -0,0 +1,23 @@ + + + + res.config.settings.view.form.inherit.sale + res.config.settings + + + +
+
+ +
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/sale_product_image/views/sale_order_line_image.xml b/sale_product_image/views/sale_order_line_image.xml new file mode 100644 index 000000000..8cb061643 --- /dev/null +++ b/sale_product_image/views/sale_order_line_image.xml @@ -0,0 +1,16 @@ + + + + + sale.order.inherit.form.view + sale.order + + + + + + + + + \ No newline at end of file