diff --git a/front_office_management/README.rst b/front_office_management/README.rst new file mode 100644 index 000000000..5692033d8 --- /dev/null +++ b/front_office_management/README.rst @@ -0,0 +1,46 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Front Office Management +============================ +Helps You To Manage Front Office Operations. + +Configuration +============= +* Install the module and set the permission for Reception + +License +------- +Affero General Public License, Version 3 (AGPL v3). +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: (V17) Ammu Raj, Contact : odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/front_office_management/__init__.py b/front_office_management/__init__.py new file mode 100644 index 000000000..d4013ea10 --- /dev/null +++ b/front_office_management/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (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..803a6df4d --- /dev/null +++ b/front_office_management/__manifest__.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (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': '17.0.1.0.0', + 'summary': "Manage Front Office Operations:Visitors, Devices Carrying" + "Register, Actions", + 'description': """Helps You To Manage Front Office Operations, Odoo 17""", + 'author': "Cybrosys Techno Solutions", + 'maintainer': 'Cybrosys Techno Solutions', + 'company': "Cybrosys Techno Solutions", + 'website': "https://www.cybrosys.com", + 'category': 'Industries', + 'depends': ['base', 'hr'], + 'data': [ + 'data/front_office_management_sequence.xml', + 'security/fo_security.xml', + 'security/ir.model.access.csv', + 'views/fo_visit_views.xml', + 'views/id_proof_views.xml', + 'views/fo_purpose_views.xml', + 'views/fo_visitor_views.xml', + 'views/fo_property_counter_views.xml', + 'report/front_office_management_reports.xml', + 'report/property_label_templates.xml', + 'report/visitor_label_templates.xml', + 'report/visitors_report_templates.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': True, + +} diff --git a/front_office_management/data/front_office_management_sequence.xml b/front_office_management/data/front_office_management_sequence.xml new file mode 100644 index 000000000..43f622cba --- /dev/null +++ b/front_office_management/data/front_office_management_sequence.xml @@ -0,0 +1,10 @@ + + + + Visits + fo.visit + VID + 3 + + + diff --git a/front_office_management/doc/RELEASE_NOTES.md b/front_office_management/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..d73659494 --- /dev/null +++ b/front_office_management/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 07.03.2024 +#### Version 17.0.1.0.0 +#### ADD + +- Initial commit for Front Office Management diff --git a/front_office_management/models/__init__.py b/front_office_management/models/__init__.py new file mode 100644 index 000000000..982496485 --- /dev/null +++ b/front_office_management/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (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_property_counter +from . import fo_visit +from . import fo_visitor +from . import id_proof 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..bee3a6d36 --- /dev/null +++ b/front_office_management/models/fo_property_counter.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import api, fields, models, _ +from odoo.exceptions import UserError + + +class FoPropertyCounter(models.Model): + """Manages the property reaches in office""" + _name = 'fo.property.counter' + _inherit = 'mail.thread' + _description = 'Property Counter' + _rec_name = 'employee_id' + + employee_id = fields.Many2one('hr.employee', string="Employee", + required=True, + help="Select the owner of the property") + date = fields.Date(string="Date", required=True, + help='The date in which property collected') + belonging_ids = fields.One2many('fo.belongings', + 'property_counter_id', + string="Personal Belongings", copy=False, + help='Personal Belongings of visitor ') + state = fields.Selection([('draft', 'Draft'), + ('prop_in', 'Taken In'), + ('prop_out', 'Taken out'), + ('cancel', 'Cancelled')], + tracking=True, default='draft', + help='If the employee gives 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): + """For cancelling the property""" + self.state = "cancel" + + def action_prop_in(self): + """Action when taking in a property""" + count = 0 + number = 0 + for data in self.belonging_ids: + 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): + """Action when taking out the property""" + self.state = "prop_out" + + +class FoBelongings(models.Model): + """The details of property entered to the office""" + _name = 'fo.belongings' + _description = 'Fo Belongings' + + property_name = fields.Char(string="Property", + help='The name of the Property') + property_count = fields.Char(string="Count", help='Count of property') + number = fields.Integer(compute='_compute_number', store=True, string="Sl", + help='Serial number') + visit_id = fields.Many2one('fo.visit', string="Belongings", + help='The Visitors to the Office') + property_counter_id = fields.Many2one('fo.property.counter', + string="Belongings") + permission = fields.Selection([('0', 'Allowed'), + ('1', 'Not Allowed'), + ('2', 'Allowed With Permission'), + ], string='Permission', required=True, + index=True, default='0', tracking=True, + help='The permissions for the belongings') + + @api.depends('visit_id', 'property_counter_id') + def _compute_number(self): + """Creates serial number when adding the property""" + for visit in self.mapped('visit_id'): + number = 1 + for line in visit.belonging_ids: + line.number = number + number += 1 + for visit in self.mapped('property_counter_id'): + number = 1 + for line in visit.belonging_ids: + line.number = number + number += 1 diff --git a/front_office_management/models/fo_visit.py b/front_office_management/models/fo_visit.py new file mode 100644 index 000000000..4df42fd7b --- /dev/null +++ b/front_office_management/models/fo_visit.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +import datetime +from odoo import api, fields, models, _ + + +class FoVisit(models.Model): + """Manages the details of visitors to the Office""" + _name = 'fo.visit' + _inherit = ['mail.thread'] + _description = 'Visit' + + name = fields.Char(string="Sequence", default=lambda self: _('New'), + help='Sequence number for the visiting') + visitor_id = fields.Many2one("fo.visitor", string='Visitor', + help='Select the visitor') + phone = fields.Char(string="Phone", required=True, + help='Phone number of the visitor') + email = fields.Char(string="Email", required=True, + help='Email of the Visitor') + reason_ids = fields.Many2many('fo.purpose', string='Purpose Of Visit', + required=True, + help='Enter the reason for visit') + belonging_ids = fields.One2many('fo.belongings', + 'visit_id', + string="Personal Belongings", + help='Add the belongings details of' + 'employee here.') + check_in_date = fields.Datetime(string="Check In Time", readonly=True, + help='Visitor check in time automatically' + 'fills when he checked in to the' + 'office') + check_out_date = fields.Datetime(string="Check Out Time", readonly=True, + help='Visitor check out time automatically' + 'fills when he checked out from' + 'office') + employee_id = fields.Many2one('hr.employee', string="Meeting With") + department_id = fields.Many2one('hr.department', string="Department") + state = fields.Selection([('draft', 'Draft'), + ('check_in', 'Checked In'), + ('check_out', 'Checked Out'), + ('cancel', 'Cancelled'), + ], tracking=True, default='draft', + help='Status of the visitor') + + @api.model_create_multi + def create(self, vals_list): + """Creating sequence""" + for vals in vals_list: + if not vals.get('name') or vals['name'] == _('New'): + vals['name'] = self.env['ir.sequence'].next_by_code( + 'fo.visit') or _('New') + return super().create(vals_list) + + def action_cancel(self): + """Action for cancelling the visitor""" + self.state = "cancel" + + def action_check_in(self): + """Action for checking in the visitor""" + self.state = "check_in" + self.check_in_date = datetime.datetime.now() + + def action_check_out(self): + """Action for checking out the visitor""" + self.state = "check_out" + self.check_out_date = datetime.datetime.now() + + @api.onchange('visitor_id') + def _onchange_visitor_id(self): + """Selecting the""" + if self.visitor_id: + if self.visitor_id.phone: + self.phone = self.visitor_id.phone + if self.visitor_id.email: + self.email = self.visitor_id.email + + @api.onchange('employee_id') + def _onchange_employee_id(self): + if self.employee_id: + self.department_id = self.employee_id.department_id + + +class VisitPurpose(models.Model): + _name = 'fo.purpose' + _description = 'Visit 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..7083c1bc1 --- /dev/null +++ b/front_office_management/models/fo_visitor.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models + + +class FoVisitor(models.Model): + """The Details of the Visitor""" + _name = 'fo.visitor' + _description = 'Fo Visitor' + + name = fields.Char(string="Visitor", required=True, + help='The name of the visitor') + visitor_image = fields.Binary(string='Image', attachment=True, + help='Picture of the visitor') + street = fields.Char(string="Street", help='The street from where he come') + street2 = fields.Char(string="Street2", + help='The second street from where he come') + zip = fields.Char(change_default=True, help='Zip code where he belongs') + city = fields.Char(string='City', help='The city of the visitor') + state_id = fields.Many2one("res.country.state", string='State', + ondelete='restrict', help='State of visitor') + country_id = fields.Many2one('res.country', string='Country', + ondelete='restrict', + help='Country of the visitor') + phone = fields.Char(string="Phone", required=True, + help='Phone number of the visitor') + email = fields.Char(string="Email", required=True, + help='Email of the visitor') + proof_id = fields.Many2one('id.proof', string="ID Proof", + help='Id proof the visitor') + id_proof_no = fields.Char(string="ID Number", + help='Id proof number of visitor') + company_info_id = fields.Many2one('res.partner', string="Company", + help='Visiting persons company details') + visit_count = fields.Integer(compute='_compute_visit_count', + string='# Visits', + help='The number of times the person visited' + 'office') + + _sql_constraints = [ + ('field_uniq_email_and_id_proof', 'unique (email,proof_id)', + "Please give the correct data!")] + + def _compute_visit_count(self): + """Will compute the number of times a person visited the office""" + data = self.env['fo.visit'].search( + [('visitor_id', 'in', self.ids), ('state', '!=', 'cancel')]).ids + self.visit_count = len(data) diff --git a/front_office_management/models/id_proof.py b/front_office_management/models/id_proof.py new file mode 100644 index 000000000..ae1804115 --- /dev/null +++ b/front_office_management/models/id_proof.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import models, fields + + +class IdProof(models.Model): + _name = 'id.proof' + _rec_name = 'id_proof' + _description = 'Id Proof' + + id_proof = fields.Char(string="Name", help='Name of the proof') + code = fields.Char(string="Code", help='Code for the proof') diff --git a/front_office_management/report/front_office_management_reports.xml b/front_office_management/report/front_office_management_reports.xml new file mode 100644 index 000000000..deead6b95 --- /dev/null +++ b/front_office_management/report/front_office_management_reports.xml @@ -0,0 +1,33 @@ + + + + Visitor Pass + fo.visit + qweb-pdf + front_office_management.report_visitor_label + front_office_management.report_visitor_label + 'Visitor Pass' + + report + + + Visitors Report + fo.visit + qweb-pdf + front_office_management.report_visitor_report + front_office_management.report_visitor_report + 'Visitors Report' + + report + + + Property Label + fo.property.counter + qweb-pdf + front_office_management.report_property_label + front_office_management.report_property_label + 'Property Label' + + report + + diff --git a/front_office_management/report/property_label_templates.xml b/front_office_management/report/property_label_templates.xml new file mode 100644 index 000000000..d61e5ece3 --- /dev/null +++ b/front_office_management/report/property_label_templates.xml @@ -0,0 +1,88 @@ + + + + diff --git a/front_office_management/report/visitor_label_templates.xml b/front_office_management/report/visitor_label_templates.xml new file mode 100644 index 000000000..5a4adf948 --- /dev/null +++ b/front_office_management/report/visitor_label_templates.xml @@ -0,0 +1,120 @@ + + + + diff --git a/front_office_management/report/visitors_report_templates.xml b/front_office_management/report/visitors_report_templates.xml new file mode 100644 index 000000000..6dfcb27bc --- /dev/null +++ b/front_office_management/report/visitors_report_templates.xml @@ -0,0 +1,113 @@ + + + + diff --git a/front_office_management/security/fo_security.xml b/front_office_management/security/fo_security.xml new file mode 100644 index 000000000..ac4cf382f --- /dev/null +++ b/front_office_management/security/fo_security.xml @@ -0,0 +1,13 @@ + + + + + Reception + 0 + + + + Receptionist + + + 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..961844e7d --- /dev/null +++ b/front_office_management/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_fo_visit_receptionist,access.fo.visit.receptionist,model_fo_visit,front_office_management.group_receptionist,1,1,1,1 +access_fo_visitor_receptionist,access.fo_visitor.receptionist,model_fo_visitor,front_office_management.group_receptionist,1,1,1,1 +access_fo_belongings_receptionist,access.fo.belongings.receptionist,model_fo_belongings,front_office_management.group_receptionist,1,1,1,1 +access_id_proof_receptionist,access.id.proof.receptionist,model_id_proof,front_office_management.group_receptionist,1,1,1,1 +access_fo_property_counter_receptionist,access.fo.property.counter.receptionist,model_fo_property_counter,front_office_management.group_receptionist,1,1,1,1 +access_fo_purpose_receptionist,access.fo.purpose.receptionist,model_fo_purpose,front_office_management.group_receptionist,1,1,1,1 diff --git a/front_office_management/static/description/assets/icons/capture (1).png b/front_office_management/static/description/assets/icons/capture (1).png new file mode 100644 index 000000000..8824deafc Binary files /dev/null and b/front_office_management/static/description/assets/icons/capture (1).png differ diff --git a/front_office_management/static/description/assets/icons/check.png b/front_office_management/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/front_office_management/static/description/assets/icons/check.png differ diff --git a/front_office_management/static/description/assets/icons/chevron.png b/front_office_management/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/front_office_management/static/description/assets/icons/chevron.png differ diff --git a/front_office_management/static/description/assets/icons/cogs.png b/front_office_management/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/front_office_management/static/description/assets/icons/cogs.png differ diff --git a/front_office_management/static/description/assets/icons/consultation.png b/front_office_management/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/front_office_management/static/description/assets/icons/consultation.png differ diff --git a/front_office_management/static/description/assets/icons/ecom-black.png b/front_office_management/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/front_office_management/static/description/assets/icons/ecom-black.png differ diff --git a/front_office_management/static/description/assets/icons/education-black.png b/front_office_management/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/front_office_management/static/description/assets/icons/education-black.png differ diff --git a/front_office_management/static/description/assets/icons/hotel-black.png b/front_office_management/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/front_office_management/static/description/assets/icons/hotel-black.png differ diff --git a/front_office_management/static/description/assets/icons/img.png b/front_office_management/static/description/assets/icons/img.png new file mode 100644 index 000000000..70197f477 Binary files /dev/null and b/front_office_management/static/description/assets/icons/img.png differ diff --git a/front_office_management/static/description/assets/icons/license.png b/front_office_management/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/front_office_management/static/description/assets/icons/license.png differ diff --git a/front_office_management/static/description/assets/icons/lifebuoy.png b/front_office_management/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/front_office_management/static/description/assets/icons/lifebuoy.png differ diff --git a/front_office_management/static/description/assets/icons/manufacturing-black.png b/front_office_management/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/front_office_management/static/description/assets/icons/manufacturing-black.png differ diff --git a/front_office_management/static/description/assets/icons/photo-capture.png b/front_office_management/static/description/assets/icons/photo-capture.png new file mode 100644 index 000000000..06c111758 Binary files /dev/null and b/front_office_management/static/description/assets/icons/photo-capture.png differ diff --git a/front_office_management/static/description/assets/icons/pos-black.png b/front_office_management/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/front_office_management/static/description/assets/icons/pos-black.png differ diff --git a/front_office_management/static/description/assets/icons/puzzle.png b/front_office_management/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/front_office_management/static/description/assets/icons/puzzle.png differ diff --git a/front_office_management/static/description/assets/icons/restaurant-black.png b/front_office_management/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/front_office_management/static/description/assets/icons/restaurant-black.png differ diff --git a/front_office_management/static/description/assets/icons/service-black.png b/front_office_management/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/front_office_management/static/description/assets/icons/service-black.png differ diff --git a/front_office_management/static/description/assets/icons/trading-black.png b/front_office_management/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/front_office_management/static/description/assets/icons/trading-black.png differ diff --git a/front_office_management/static/description/assets/icons/training.png b/front_office_management/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/front_office_management/static/description/assets/icons/training.png differ diff --git a/front_office_management/static/description/assets/icons/update.png b/front_office_management/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/front_office_management/static/description/assets/icons/update.png differ diff --git a/front_office_management/static/description/assets/icons/user.png b/front_office_management/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/front_office_management/static/description/assets/icons/user.png differ diff --git a/front_office_management/static/description/assets/icons/wrench.png b/front_office_management/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/front_office_management/static/description/assets/icons/wrench.png differ diff --git a/front_office_management/static/description/assets/misc/Cybrosys R.png b/front_office_management/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/front_office_management/static/description/assets/misc/Cybrosys R.png differ diff --git a/front_office_management/static/description/assets/misc/email.svg b/front_office_management/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/front_office_management/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/front_office_management/static/description/assets/misc/phone.svg b/front_office_management/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/front_office_management/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/front_office_management/static/description/assets/misc/star (1) 2.svg b/front_office_management/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/front_office_management/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/front_office_management/static/description/assets/misc/support (1) 1.svg b/front_office_management/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/front_office_management/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/front_office_management/static/description/assets/misc/support-email.svg b/front_office_management/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/front_office_management/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/front_office_management/static/description/assets/misc/tick-mark.svg b/front_office_management/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/front_office_management/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/front_office_management/static/description/assets/misc/whatsapp 1.svg b/front_office_management/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/front_office_management/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/front_office_management/static/description/assets/misc/whatsapp.svg b/front_office_management/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/front_office_management/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/front_office_management/static/description/assets/modules/1.png b/front_office_management/static/description/assets/modules/1.png new file mode 100644 index 000000000..ba1058c42 Binary files /dev/null and b/front_office_management/static/description/assets/modules/1.png differ diff --git a/front_office_management/static/description/assets/modules/2.png b/front_office_management/static/description/assets/modules/2.png new file mode 100644 index 000000000..6949185dd Binary files /dev/null and b/front_office_management/static/description/assets/modules/2.png differ diff --git a/front_office_management/static/description/assets/modules/3.png b/front_office_management/static/description/assets/modules/3.png new file mode 100644 index 000000000..4e506f79b Binary files /dev/null and b/front_office_management/static/description/assets/modules/3.png differ diff --git a/front_office_management/static/description/assets/modules/4.png b/front_office_management/static/description/assets/modules/4.png new file mode 100644 index 000000000..e78427938 Binary files /dev/null and b/front_office_management/static/description/assets/modules/4.png differ diff --git a/front_office_management/static/description/assets/modules/5.png b/front_office_management/static/description/assets/modules/5.png new file mode 100755 index 000000000..272ec20f9 Binary files /dev/null and b/front_office_management/static/description/assets/modules/5.png differ diff --git a/front_office_management/static/description/assets/modules/6.png b/front_office_management/static/description/assets/modules/6.png new file mode 100644 index 000000000..7d5c3154f Binary files /dev/null and b/front_office_management/static/description/assets/modules/6.png differ diff --git a/front_office_management/static/description/assets/screenshots/1.png b/front_office_management/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..f049f0073 Binary files /dev/null and b/front_office_management/static/description/assets/screenshots/1.png differ diff --git a/front_office_management/static/description/assets/screenshots/2.png b/front_office_management/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..756e39cd5 Binary files /dev/null and b/front_office_management/static/description/assets/screenshots/2.png differ diff --git a/front_office_management/static/description/assets/screenshots/3.png b/front_office_management/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..d811a60ca Binary files /dev/null and b/front_office_management/static/description/assets/screenshots/3.png differ diff --git a/front_office_management/static/description/assets/screenshots/4.png b/front_office_management/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..ff2e01db8 Binary files /dev/null and b/front_office_management/static/description/assets/screenshots/4.png differ diff --git a/front_office_management/static/description/assets/screenshots/5.png b/front_office_management/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..ea3ba144d Binary files /dev/null and b/front_office_management/static/description/assets/screenshots/5.png differ diff --git a/front_office_management/static/description/assets/screenshots/6.png b/front_office_management/static/description/assets/screenshots/6.png new file mode 100644 index 000000000..b1e5e0429 Binary files /dev/null and b/front_office_management/static/description/assets/screenshots/6.png differ diff --git a/front_office_management/static/description/assets/screenshots/7.png b/front_office_management/static/description/assets/screenshots/7.png new file mode 100644 index 000000000..2dc245272 Binary files /dev/null and b/front_office_management/static/description/assets/screenshots/7.png differ diff --git a/front_office_management/static/description/assets/screenshots/hero.gif b/front_office_management/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..94fe4018d Binary files /dev/null and b/front_office_management/static/description/assets/screenshots/hero.gif differ diff --git a/front_office_management/static/description/banner.png b/front_office_management/static/description/banner.png new file mode 100644 index 000000000..2bf2249b2 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..0e246e32a Binary files /dev/null and b/front_office_management/static/description/icon.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..64757dc40 --- /dev/null +++ b/front_office_management/static/description/index.html @@ -0,0 +1,661 @@ + + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+
+

+ Front Office Management

+

+ 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. +

+
+ +
+
+
+
+
+

Key Highlights +

+
+
+
+
+
+ +
+
+

Manage visitors

+
+
+
+
+
+
+ +
+
+

Keep Check in, Check out Details of Visitors.

+
+
+
+
+
+
+ +
+
+

Issue Visitor Pass.

+
+
+
+
+
+
+ +
+
+

Manage Visitor Belongings.

+
+
+
+
+
+
+ +
+
+

Manage Employee Belongings.

+
+
+
+
+
+
+ +
+
+

Print Property Label.

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

+ Add the User as Receptionist from the Settings-->User. Then only you can view the App.

+
+
+
+
+
+
+ +
+
+

+ Create Visitors by clicking the Visitors menu.

+
+
+
+
+
+
+ +
+
+

+ Add visiting details in Visits. +

+
+
+
+
+
+
+ +
+
+

+ Visitor Pass - Go to Visitor Management -> Visits -> Print -> Visitor Pass. +

+
+
+
+
+
+
+ +
+
+

+ Visitor Report - Go to Visitor Management -> Visits -> Print -> Visitors Report. +

+
+
+
+
+
+
+ +
+
+

+ Employee Belongings
+ Here you can specify the field 'Permission' with the values of Allowed,Not Allowed and Allowed with permission. +

+
+
+
+
+
+
+ +
+
+

+ Property Label
+ Print the properties name that are not allowed to enter to the office. +

+
+
+
+
+
+
+
    +
  • + Easy to manage the Front Office system. +
  • +
  • + Manage Employees and Visitor Belongings. +
  • +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on:17th April 2024 +
+

+ + Initial Commit for Manufacturing (MRP) Timesheet.

+
+
+
+
+
+
+
+

Related Products

+
+
+ +
+
+

Our Services

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

Odoo Customization

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

Odoo Implementation

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

Odoo Support

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

Hire Odoo Developer

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

Odoo Integration

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

Odoo Migration

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

Odoo Consultancy

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

Odoo Implementation

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

Odoo Licensing Consultancy

+
+
+
+
+
+
+

Our Industries

+ +
+
+
+
+
+
+ +

Trading

+

Easily procure and sell your products

+
+
+
+
+ +

POS

+

Easy configuration and convivial experience

+
+
+
+
+ +

Education

+

A platform for educational management

+
+
+
+
+ +

Manufacturing

+

Plan, track and schedule your operations

+
+
+
+
+ +

E-commerce & Website

+

Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +

Service Management

+

Keep track of services and invoice

+
+
+
+
+ +

Restaurant

+

Run your bar or restaurant methodically

+
+
+
+
+ +

Hotel Management

+

An all-inclusive hotel management application

+
+
+
+
+
+
+

Support

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

Got questions or need help? Get in touch.

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

Say hi to us on WhatsApp!

+
+91 + 99456767686
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/front_office_management/views/fo_property_counter_views.xml b/front_office_management/views/fo_property_counter_views.xml new file mode 100644 index 000000000..b9209c266 --- /dev/null +++ b/front_office_management/views/fo_property_counter_views.xml @@ -0,0 +1,94 @@ + + + + + fo.property.counter.view.form + fo.property.counter + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+
+ + + fo.property.counter.view.tree + fo.property.counter + + + + + + + + + + + Property Counter + fo.property.counter + tree,form + +

Record Personal Belongings.

+
+
+ + + +
diff --git a/front_office_management/views/fo_purpose_views.xml b/front_office_management/views/fo_purpose_views.xml new file mode 100644 index 000000000..bba0adcf8 --- /dev/null +++ b/front_office_management/views/fo_purpose_views.xml @@ -0,0 +1,22 @@ + + + + + Visiting Purpose + fo.purpose + +
+ + + + + + + + + + +
+
+
+
diff --git a/front_office_management/views/fo_visit_views.xml b/front_office_management/views/fo_visit_views.xml new file mode 100644 index 000000000..9d831c98e --- /dev/null +++ b/front_office_management/views/fo_visit_views.xml @@ -0,0 +1,142 @@ + + + + + fo.visit.view.form + fo.visit + +
+
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ + + fo.visit.view.tree + 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')))] + + + + Belongings + fo.belongings + +
+ + + + + + + + + + +
+
+
+
diff --git a/front_office_management/views/fo_visitor_views.xml b/front_office_management/views/fo_visitor_views.xml new file mode 100644 index 000000000..461ebabf7 --- /dev/null +++ b/front_office_management/views/fo_visitor_views.xml @@ -0,0 +1,158 @@ + + + + + fo.visitor.view.form + fo.visitor + +
+ +
+ +
+ +
+

+ + + + +
+ +
+

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

+ Click to Create New Visitor. +

+
+
+ + + + + + + +
diff --git a/front_office_management/views/id_proof_views.xml b/front_office_management/views/id_proof_views.xml new file mode 100644 index 000000000..e11b76fce --- /dev/null +++ b/front_office_management/views/id_proof_views.xml @@ -0,0 +1,22 @@ + + + + + id_proof_view_form + id.proof + +
+ + + + + + + + + + +
+
+
+