diff --git a/base_machine_repair_management/README.rst b/base_machine_repair_management/README.rst new file mode 100755 index 000000000..585d3f19f --- /dev/null +++ b/base_machine_repair_management/README.rst @@ -0,0 +1,47 @@ +.. image:: https://img.shields.io/badge/license-LGPL--3-green.svg + :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 + +Base Machine Repair Management +============================== +* Machine Repair Management system is an application which is used to maintain the repairs of machine. It is also allow users to take machine requests through website and these requests are created in the backend .Also we can manage the job order,machine diagnosis and maintained the team. + +Configuration +============= +* No additional configurations needed + +License +------- +General Public License, Version 3 (LGPL v3). +(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developers: (V17) Dhanya B ,Contacts: 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/base_machine_repair_management/__init__.py b/base_machine_repair_management/__init__.py new file mode 100644 index 000000000..53eefeaa1 --- /dev/null +++ b/base_machine_repair_management/__init__.py @@ -0,0 +1,26 @@ +"""base_machine_repair_management""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import controllers +from . import models +from . import report +from . import wizard diff --git a/base_machine_repair_management/__manifest__.py b/base_machine_repair_management/__manifest__.py new file mode 100644 index 000000000..aa79a945a --- /dev/null +++ b/base_machine_repair_management/__manifest__.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + 'name': 'Machine Repair Management', + 'version': '17.0.1.0.0', + 'category': 'Sales,Website ,Human Resources ,Project', + 'summary': """Machine repair management is used manage the repair + requests ,machine diagnosis work orders and reports for repairing etc""", + 'description': """Machine Repair Management system is an application which is + used to maintain the repairs of machine. It is also allow users to take + machine requests through website and these requests are created in the + backend .Also we can manage the job order,machine diagnosis and maintained + the team.""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['website', 'hr', 'project', 'sale', 'contacts'], + 'data': [ + 'security/base_machine_repair_management_groups.xml', + 'security/ir.model.access.csv', + 'data/ir_sequence_data.xml', + 'data/ir_actions_server.xml', + 'data/mail_data.xml', + 'report/repair_report_templates.xml', + 'report/machine_repair_report.xml', + 'views/customer_portal_templates.xml', + 'views/customer_review_templates.xml', + 'views/machine_diagnosis_views.xml', + 'views/machine_repair_views.xml', + 'views/machine_service_type_views.xml', + 'views/machine_service_views.xml', + 'views/machine_workorder_views.xml', + 'views/product_views.xml', + 'views/repair_team_views.xml', + 'views/res_partner_views.xml', + 'views/sale_order_views.xml', + 'views/website_repair_templates.xml', + 'wizard/repair_report_views.xml', + 'views/base_machine_repair_management_menus.xml', + ], + 'images': ['static/description/banner.jpg'], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/base_machine_repair_management/controllers/__init__.py b/base_machine_repair_management/controllers/__init__.py new file mode 100644 index 000000000..f0579dfaf --- /dev/null +++ b/base_machine_repair_management/controllers/__init__.py @@ -0,0 +1,24 @@ +"""Base machine repair management""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import base_machine_repair_management +from . import portal diff --git a/base_machine_repair_management/controllers/base_machine_repair_management.py b/base_machine_repair_management/controllers/base_machine_repair_management.py new file mode 100644 index 000000000..9735f0e33 --- /dev/null +++ b/base_machine_repair_management/controllers/base_machine_repair_management.py @@ -0,0 +1,95 @@ +"""Machine Repair management""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import http +from odoo.http import request + + +class RepairRequest(http.Controller): + """This is used for manage the repair requests""" + + @http.route(['/repair'], type='http', auth="public", website=True) + def get_request(self): + """function to get the repair request form""" + vals = ({ + 'machine': request.env['product.product'].sudo().search( + [('is_machine', '=', True)]), + 'service_id': request.env['machine.service'].sudo().search([]), + 'customer_id': request.env['res.partner'].search( + []), + }) + return request.render( + "base_machine_repair_management.repair_request_form", vals) + + @http.route('/create/repair_request', type='http', methods=['POST'], auth="public", website=True, csrf=False) + def submit_form_request(self, **POST): + """function to redirect the submitted response page""" + if POST.get('customer_id') not in request.env['res.partner'].sudo().search([]).ids: + customer = request.env['res.partner'].sudo().create({ + 'name': POST.get('customer_id'), + 'email': POST.get('email'), + 'phone': POST.get('phone') + }) + POST.update({'customer_id': customer.id, 'name': 'Repair from Website'}) + if POST: + request.env['machine.repair'].sudo().create(POST) + return request.redirect('/contactus-thank-you') + + @http.route(['/review'], type='http', auth="public", website=True) + def get_customer_review(self): + """function to redirect the review form""" + comments = ({ + 'customer_rating': request.env['machine.repair'].sudo().search( + [('customer_id', '!=', False), ('customer_rating', '!=', False), + ('customer_comments', '!=', False)]) + }) + return request.render( + "base_machine_repair_management.repair_review_form", comments) + + @http.route('/create/repair_reviews', methods=['POST'], type='http', + auth="public", website=True, csrf=False) + def submit_form(self, **POST): + """This is used to submit the user reviews""" + if POST: + vals = request.env['machine.repair'].sudo().search( + [('customer_id', '=', request.env.user.name)]) + if POST.get('good') == 'on': + vals.write({ + 'customer_rating': 'Good', + 'customer_comments': POST['repair_review_comment'] + }) + elif POST.get('poor') == 'on': + vals.write({ + 'customer_rating': 'Poor', + 'customer_comments': POST['repair_review_comment'] + }) + elif POST.get('average') == 'on': + vals.write({ + 'customer_rating': 'Average', + 'customer_comments': POST['repair_review_comment'] + }) + elif POST.get('excellent') == 'on': + vals.sudo().write({ + 'customer_rating': 'Excellent', + 'customer_comments': POST['repair_review_comment'] + }) + return request.redirect('/contactus-thank-you') diff --git a/base_machine_repair_management/controllers/portal.py b/base_machine_repair_management/controllers/portal.py new file mode 100644 index 000000000..ea3efc00d --- /dev/null +++ b/base_machine_repair_management/controllers/portal.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import http, _ +from odoo.exceptions import AccessError, MissingError +from odoo.http import request +from odoo.addons.portal.controllers.portal import CustomerPortal +from odoo.addons.portal.controllers.portal import pager as portal_pager + + +class PortalRepair(CustomerPortal): + """Portal for customers""" + + def _prepare_home_portal_values(self, counters): + """This is used to prepare the portal values""" + values = super()._prepare_home_portal_values(counters) + if 'repair_count' in counters: + repair_count = request.env['machine.repair'].search_count( + self._get_repair_domain()) \ + if request.env['machine.repair'].check_access_rights('read', + raise_exception=False) else 0 + values['repair_count'] = repair_count + return values + + def _repair_get_page_view_values(self, repair, access_token, **kwargs): + """This is used to view the repair page""" + values = { + 'page_name': 'repair', + 'repair': repair, + } + return self._get_page_view_values(repair, access_token, values, + 'my_repair_history', False, **kwargs) + + def _get_repair_domain(self): + """This used add the domain for the page view""" + return [('state', 'in', ['new', 'closed']), + ('customer_id', '=', request.env.user.name)] + + @http.route(['/my/repair', '/my/repair/page/'], type='http', + auth="user", website=True) + def portal_my_repair(self, page=1, date_begin=None, date_end=None, + sort=None): + """This is used to view the all repairs""" + values = self._prepare_portal_layout_values() + machine_repair = request.env['machine.repair'].search([]) + domain = self._get_repair_domain() + searchbar_sorting = { + 'state': {'label': _('Status'), 'repair': 'state'}, + } + if not sort: + sort = 'state' + repair_count = machine_repair.search_count(domain) + pager = portal_pager( + url="/my/repair", + url_args={'date_begin': date_begin, 'date_end': date_end, + 'sort': sort}, + total=repair_count, + page=page, + step=self._items_per_page + ) + repair = machine_repair.search(domain, + limit=self._items_per_page, + offset=pager['offset']) + request.session['my_repair_history'] = repair.ids[:100] + values.update({ + 'date': date_begin, + 'machine_repair': repair_count, + 'repair': machine_repair, + 'page_name': 'repair', + 'pager': pager, + 'default_url': '/my/repair', + 'searchbar_sorting': searchbar_sorting, + 'sort': sort, + + }) + return request.render( + "base_machine_repair_management.portal_my_repair_request", values) + + @http.route(['/my/repair/'], type='http', auth="public", + website=True) + def portal_my_repair_detail(self, repair_id, access_token=None, + **kw): + """This is used to view a specified view of a repair""" + try: + repair_sudo = self._document_check_access('machine.repair', + repair_id, access_token) + except (AccessError, MissingError): + return request.redirect('/my') + values = self._repair_get_page_view_values(repair_sudo, access_token, + **kw) + return request.render( + "base_machine_repair_management.portal_repair_page", values) diff --git a/base_machine_repair_management/data/ir_actions_server.xml b/base_machine_repair_management/data/ir_actions_server.xml new file mode 100644 index 000000000..150138497 --- /dev/null +++ b/base_machine_repair_management/data/ir_actions_server.xml @@ -0,0 +1,16 @@ + + + + + Repair Request Report + + + form + code + + action = records.action_print_repair_request_report() + + + diff --git a/base_machine_repair_management/data/ir_sequence_data.xml b/base_machine_repair_management/data/ir_sequence_data.xml new file mode 100644 index 000000000..d36019c70 --- /dev/null +++ b/base_machine_repair_management/data/ir_sequence_data.xml @@ -0,0 +1,23 @@ + + + + + + Repair Sequence + machine.diagnosis + DGS/ + 3 + 1 + 1 + + + + Repair Sequence + machine.repair + MRP/ + 3 + 1 + 1 + + + diff --git a/base_machine_repair_management/data/mail_data.xml b/base_machine_repair_management/data/mail_data.xml new file mode 100644 index 000000000..44e49a014 --- /dev/null +++ b/base_machine_repair_management/data/mail_data.xml @@ -0,0 +1,31 @@ + + + + + + Repair Request Closed: Send by email + + {{object.customer_id.email}} + {{ object.email}} + Machine Repair Request Closing (Ref{{object.repair_seq}}) + +
+

+ +
+
+ Here is your repair request with reference + + is closed on + +
+
+
+
+ Do not hesitate to contact us if you have any questions. +

+
+
+
+
+
diff --git a/base_machine_repair_management/doc/RELEASE_NOTES.md b/base_machine_repair_management/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..c202c6390 --- /dev/null +++ b/base_machine_repair_management/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 24.04.2024 +#### Version 17.0.1.0.0 +#### ADD +- Initial commit for Base Machine Repair Management diff --git a/base_machine_repair_management/models/__init__.py b/base_machine_repair_management/models/__init__.py new file mode 100644 index 000000000..bfb365b18 --- /dev/null +++ b/base_machine_repair_management/models/__init__.py @@ -0,0 +1,34 @@ +"""Machine Repair management""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import machine_consume +from . import machine_diagnosis +from . import machine_repair +from . import machine_service_type +from . import machine_services +from . import machine_workorder +from . import product_product +from . import repair_team +from . import repair_timesheet +from . import res_partner +from . import sale_order +from . import team_member diff --git a/base_machine_repair_management/models/machine_consume.py b/base_machine_repair_management/models/machine_consume.py new file mode 100644 index 000000000..0287c5b23 --- /dev/null +++ b/base_machine_repair_management/models/machine_consume.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class MachineConsume(models.Model): + """This is the class for machine consume""" + _name = 'machine.consume' + _description = "Machine Consume" + _rec_name = "consume_id" + + consume_id = fields.Many2one('machine.repair', string="Consumer", + help="Consumer of the repair") + machine_id = fields.Many2one('product.product', string='Machine', + help="Machine for consume", + domain=[('is_machine', '=', True)]) + qty = fields.Float(string='Quantity', help="Quantity of the machine") + uom = fields.Many2one('uom.uom', string="Uom", help="Machine uom") + dia_estimate_id = fields.Many2one('machine.diagnosis', + string="Machine Diagnosis", + help="Diagnosis of machine") + hour = fields.Float(string='Duration', help="Duration for the machine") diff --git a/base_machine_repair_management/models/machine_diagnosis.py b/base_machine_repair_management/models/machine_diagnosis.py new file mode 100644 index 000000000..4bf80ffe2 --- /dev/null +++ b/base_machine_repair_management/models/machine_diagnosis.py @@ -0,0 +1,92 @@ +"""Machine Diagnosis""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models + + +class MachineDiagnosis(models.Model): + """The class is used for the machine diagnosis""" + + _name = 'machine.diagnosis' + _description = "Machine Diagnosis" + _rec_name = 'diagnosis_seq' + + project_id = fields.Many2one('project.project', string='Project', + help="The project name") + customer_id = fields.Many2one('res.partner', string="Customer", + help="the customer for the project", + required=True) + deadline = fields.Date(string='DeadLine', help="Deadline for the project", + required=True ) + diagnosis_seq = fields.Char(string='Diagnosis Sequence', required=True, + copy=False, + help="Sequence number for diagnosis", + readonly=True, index=True, + default=lambda self: 'New') + note = fields.Html(string="Note", help="Extra note for the project") + notes = fields.Html(string="Notes", help="Notes for thr project") + part_ids = fields.One2many('machine.consume', + 'dia_estimate_id', + help="machine consumption", string="Parts") + timesheet_ids = fields.One2many('repair.timesheet', + 'diagnosis_id', + string="TimeSheet", + help='Timesheet for the machine repair') + seq = fields.Char(string='Sequence', help="Sequence") + assigning_date = fields.Date(string="Date", help="Assigning Date") + machine_repair_ref_id = fields.Many2one('machine.repair', + string="Reference", + help="Machine repair reference") + + @api.model + def create(self, vals): + """Sequence generator""" + if vals.get('diagnosis_seq', 'New') == 'New': + vals['diagnosis_seq'] = self.env['ir.sequence'].next_by_code( + 'machine.diagnosis') or 'New' + result = super().create(vals) + return result + + def action_create_quotation(self): + """Function to create quotation from machine diagnosis""" + quotation = self.env['sale.order'].create({ + 'partner_id': self.customer_id.id, + 'date_order': self.deadline, + 'machine_diag_ref': self.diagnosis_seq, + }) + quotation.order_line = [(5, 0, 0)] + val = self.part_ids.mapped('machine_id') + for rec in val: + vals = { + 'product_id': rec.id, + 'name': rec.default_code, + 'price_unit': rec.list_price, + } + quotation.order_line = [(0, 0, vals)] + return { + 'res_model': 'sale.order', + 'type': 'ir.actions.act_window', + 'res_id': quotation.id, + 'view_mode': 'form', + 'target': 'current', + 'context': "{'create': False ,}" + } diff --git a/base_machine_repair_management/models/machine_repair.py b/base_machine_repair_management/models/machine_repair.py new file mode 100644 index 000000000..f599a6fc5 --- /dev/null +++ b/base_machine_repair_management/models/machine_repair.py @@ -0,0 +1,235 @@ +"""Machine Repair""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models +from odoo.exceptions import ValidationError + + +class MachineRepair(models.Model): + """This is used for the machine repair management""" + _name = 'machine.repair' + _description = "Machine Repair" + _rec_name = "repair_seq" + + name = fields.Char(string='Name', help="Name of the repair") + repair_seq = fields.Char(string='Repair Sequence', required=True, + copy=False, help="Repair sequence", + readonly=True, index=True, + default=lambda self: 'New') + customer_id = fields.Many2one('res.partner', string="Customer", + help="Name of the customer", required=True) + customer_email = fields.Char(string='Customer E-mail', + related="customer_id.email", + help="Email of the customer") + phone = fields.Char(string='Phone', help="Customer phone number", + related="customer_id.phone") + repairing_reason = fields.Char(string='Repairing Reason', + help="Reason for the repairing") + machine_brand = fields.Char(string='Machine brand', + help="Brand of the machine") + machine_model = fields.Char(string="Model", help="Model of the Machine") + manufacturing_year = fields.Date(string='Manufacturing Year', + help="Manufacturing date of the machine") + priority = fields.Selection( + [('low', 'Low'), ('high', 'High'), ('middle', 'Middle')], + string="Priority", help="Priority for repairing", required=True) + repair_detail = fields.Text(string='Repair Reason In Detail', + help="Repairing Details", required=True) + technician_id = fields.Many2one('hr.employee', string="Technician", + help="The technician for the repair") + technician_member_ids = fields.Many2many('hr.employee', + string="Technical member") + email = fields.Char('Email', related='technician_id.work_email', + help="Technician Email") + company_id = fields.Many2one('res.company', string="Company", + help="Company Of technician") + project_id = fields.Many2one('project.project', string="Project", + help="Project of that repairing") + department_id = fields.Many2one('hr.department', string="Department", + help="Department of the technician") + repir_req_date = fields.Date(string='Repair Date', + help="Repair requesting date") + closing_date = fields.Date(string='Closing Date', + help="The repair closing date") + repairing_duration = fields.Float(string="Repairing Duration", + help="The duration of the repairing") + is_repaired = fields.Boolean(string='Is Repaired', + help="Which is used to identify the order is " + "repaired or not") + machine_id = fields.Many2one('product.product', string="Machine", + help="Machine name", + domain=[('is_machine', '=', True)]) + machine_categ_id = fields.Many2one('product.category', + string='Machine Category', + help="the category of the machine") + color = fields.Char(string='Color', help="Color of the machine") + damage = fields.Char(string='Damage', help="Damage of machine") + warranty = fields.Boolean(string='Warranty', help="Warranty of the machine") + Warranty_exp_date = fields.Date(string="Warranty Expiration Date", + help="The Machine Warranty Expiration date") + authority_name = fields.Char(string='Authority Name', + help="The Authority of the technician") + service_id = fields.Many2one('machine.service', string="Service", + help="The service for the machine") + customer_rating = fields.Char(string='Customer Rating', + help="Customer Review") + customer_comments = fields.Char(string='Customer Comments', + help="Comments of the customer") + extra_info = fields.Html(string="Information", help="Extra Information") + repair_team_id = fields.Many2one('repair.team', string="Repair team", + help="The team of repairing") + nature_of_service_id = fields.Many2one('machine.service', + string="Nature of Service", + help="The nature of the machine service") + repair_type_id = fields.Many2many('machine.service.type', + string="Repair Types", + help="The type of the repairs") + problem = fields.Char(string='Problem', help="Problem of the machine") + note = fields.Html(string='Note', help="Note for the repairing") + state = fields.Selection(string='Status', required=True, readonly=True, + copy=False, selection=[('new', 'New'), + ('assigned', 'Assigned'), + ('closed', 'Closed'), + ('send', 'Mail Send'), + ('reopen', 'Re Opened'), + ], default='new', + help="stages of machine repair request") + image1 = fields.Binary(string='Image 1', help="Machine images") + image2 = fields.Binary(string='Image 2', help="Machine images") + image3 = fields.Binary(string='Image 3', help="Machine images") + image4 = fields.Binary(string='Image 4', help="Machine images") + image5 = fields.Binary(string='Image 5', help="Machine images") + timesheet_ids = fields.One2many('repair.timesheet', 'inverse_id', + string="Timesheet", + help="Timesheet for the machine repairing") + consume_part_ids = fields.One2many('machine.consume', 'consume_id', + string="Consumer Parts", + help="Machine consumption") + is_team_assigned = fields.Boolean(string='Is team assigned', + help='To check whether the repair team is assigned or not') + + @api.model + def create(self, vals): + """Sequence generator""" + if vals.get('repair_seq', 'New') == 'New' or vals.get('repair_seq', + '') == '': + vals['repair_seq'] = self.env['ir.sequence'].next_by_code( + 'machine.repair') or 'New' + result = super().create(vals) + return result + + @api.onchange('repair_team_id') + def onchange_repair_team(self): + val = self.env['repair.team'].search( + [('id', '=', self.repair_team_id.id)]).mapped('member_ids').mapped( + 'member_id').ids + self.technician_member_ids = val + + def action_create_diagnosis(self): + """This is used to create the diagnosis""" + self.env['machine.diagnosis'].create({ + 'project_id': self.project_id.id, + 'customer_id': self.customer_id.id, + 'deadline': self.closing_date, + }) + return { + 'res_model': 'machine.diagnosis', + 'type': 'ir.actions.act_window', + 'res_id': self.id, + 'view_mode': 'form', + 'target': 'current', + 'context': "{'create': False}" + } + + def action_create_work_order(self): + """Creating job order from repair request""" + self.env['machine.workorder'].create({ + 'customer_id': self.customer_id.id, + 'date': self.repir_req_date, + 'priority': self.priority, + }) + return { + 'res_model': 'machine.workorder', + 'type': 'ir.actions.act_window', + 'res_id': self.id, + 'view_mode': 'form', + 'target': 'current', + 'context': "{'create': False ,}" + } + + def action_reopen(self): + """Reopen the repair""" + self.state = 'reopen' + + def action_close_repairing(self): + """Repair closed""" + self.state = 'closed' + + def action_assign_teams(self): + """Assigning repair to teams""" + if self.repair_team_id: + val = self.env['repair.team'].search( + [('id', '=', self.repair_team_id.id)]) + val.write({ + 'repair_work_ids': [(4, self.id)], + }) + self.is_team_assigned = True + self.state = 'assigned' + else: + self.state = 'new' + raise ValidationError("There Is No Repair Team Is Specified") + + def action_send_email(self): + """Sending mails to customers by informing closing the repair request""" + template_id = self.env.ref( + 'base_machine_repair_management.repair_request_close_email_template').id + self.env['mail.template'].browse(template_id).send_mail(self.id, + force_send=True) + self.state = "send" + + def action_print_repair_request_report(self): + """Which returns the report action""" + return self.env.ref( + "base_machine_repair_management.action_repair_report").report_action( + self) + + +class RepairTimesheet(models.Model): + """This is used for thr timesheet of repair management""" + _name = 'repair.timesheet' + _description = "Timesheet Of The Repair" + _rec_name = 'user_id' + + inverse_id = fields.Many2one('machine.repair', string="Machine Repair", + help="Inverse field of the models " + "'machine.repair'") + date = fields.Date(string='Date', help="Time sheet creation date") + user_id = fields.Many2one('res.users', string="User", + help="Time sheet for the user") + project_id = fields.Many2one('project.project', string="Project", + help="Project for the user") + description = fields.Char(string='Description', + help="Description for the user's timesheet") + hours = fields.Float(string='Duration', help="Duration of the Work") + diagnosis_id = fields.Many2one('machine.diagnosis', + string="Diagnosis", + help="Machine diagnosis") diff --git a/base_machine_repair_management/models/machine_service_type.py b/base_machine_repair_management/models/machine_service_type.py new file mode 100644 index 000000000..aa6f15ded --- /dev/null +++ b/base_machine_repair_management/models/machine_service_type.py @@ -0,0 +1,34 @@ +"""Machine Service Type""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class MachineServiceType(models.Model): + """This class is used for the service type for the machine""" + _name = 'machine.service.type' + _description = "Machine Service Type" + _rec_name = "service_type_name" + + service_type_name = fields.Char(string='Name', + help="Name of the service type") + code = fields.Char(string='Code', help="Code for the service type") diff --git a/base_machine_repair_management/models/machine_services.py b/base_machine_repair_management/models/machine_services.py new file mode 100644 index 000000000..00e2697f6 --- /dev/null +++ b/base_machine_repair_management/models/machine_services.py @@ -0,0 +1,33 @@ +"""Machine service""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class MachineService(models.Model): + """This is used to add the machine service""" + _name = 'machine.service' + _description = 'Machine Service' + + name = fields.Char(string='Name', help="Machine Service") + service_type = fields.Many2one('machine.service.type', + string="Machine Service Type") diff --git a/base_machine_repair_management/models/machine_workorder.py b/base_machine_repair_management/models/machine_workorder.py new file mode 100644 index 000000000..b0f8fffe2 --- /dev/null +++ b/base_machine_repair_management/models/machine_workorder.py @@ -0,0 +1,49 @@ +"""Machine Work order""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models + + +class MachineWorkOrder(models.Model): + """This is used for the machine work order""" + _name = 'machine.workorder' + _description = "Machine Work Order" + _rec_name = "work_order_id" + + work_order_id = fields.Many2one('machine.service', string="Work Order", + help="Work order name for machine") + customer_id = fields.Many2one('res.partner', string="Customer", + help="Customer for the work order") + date = fields.Date(string="Date", help="Work order date") + priority = fields.Selection( + [('low', 'Low'), ('high', 'High'), ('middle', 'Middle')], + string="Priority", help="Work Order Priority") + scheduled_date = fields.Date(string='Scheduled Date', + help="scheduled date of work order") + planned_end_date = fields.Date(string='Planned End date', + help="Work order end date") + duration = fields.Float(string='Duration', help="Wok order duration") + start_date = fields.Date(string='Start Date', + help="Start date of work order") + end_date = fields.Date(string='End Date', help="End date of the work order") + hours_worked = fields.Float(string="Hours Spent", + help="Total hours spent for work order") diff --git a/base_machine_repair_management/models/product_product.py b/base_machine_repair_management/models/product_product.py new file mode 100644 index 000000000..7a5843628 --- /dev/null +++ b/base_machine_repair_management/models/product_product.py @@ -0,0 +1,33 @@ +"""Products as machines and machine parts""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class Product(models.Model): + _inherit = 'product.product' + + is_machine = fields.Boolean(string="Is Machine", default=False, + help="which is used to identify the machines.") + is_machine_parts = fields.Boolean(string="Is Machine Part", default=False, + help="which is used to identify the " + "machine parts.") diff --git a/base_machine_repair_management/models/repair_team.py b/base_machine_repair_management/models/repair_team.py new file mode 100644 index 000000000..422c6b618 --- /dev/null +++ b/base_machine_repair_management/models/repair_team.py @@ -0,0 +1,42 @@ +"""Repair Team""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class RepairTeam(models.Model): + """This is used to set the repair team""" + _name = 'repair.team' + _description = 'Repair Team' + _rec_name = "team_name" + + team_name = fields.Char(string='Name', help="Name of the Team", required=True) + team_lead_id = fields.Many2one('hr.employee', + string="Team Lead", + help="Team lead of the team", required=True) + + repair_work_ids = fields.Many2many('machine.repair', + string='Repair Reference', readonly=True, + help='Reference of the machine repair') + member_ids = fields.One2many('team.member', + 'inverse_id', string="Members", + help="Team members pof the repair team") diff --git a/base_machine_repair_management/models/repair_timesheet.py b/base_machine_repair_management/models/repair_timesheet.py new file mode 100644 index 000000000..4de9d722f --- /dev/null +++ b/base_machine_repair_management/models/repair_timesheet.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class RepairTimesheet(models.Model): + """This is used for thr timesheet of repair management""" + _name = 'repair.timesheet' + _description = "Timesheet Of The Repair" + _rec_name = 'user_id' + + inverse_id = fields.Many2one('machine.repair', string="Machine Repair", + help="Inverse field of the models " + "'machine.repair'") + date = fields.Date(string='Date', help="Time sheet creation date") + user_id = fields.Many2one('res.users', string="User", + help="Time sheet for the user") + project_id = fields.Many2one('project.project', string="Project", + help="Project for the user") + description = fields.Char(string='Description', + help="Description for the user's timesheet") + hours = fields.Float(string='Duration', help="Duration of the Work") + diagnosis_id = fields.Many2one('machine.diagnosis', + string="Diagnosis", + help="Machine diagnosis") diff --git a/base_machine_repair_management/models/res_partner.py b/base_machine_repair_management/models/res_partner.py new file mode 100644 index 000000000..4f6fae504 --- /dev/null +++ b/base_machine_repair_management/models/res_partner.py @@ -0,0 +1,39 @@ +"""Partners""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models + + +class ResPartner(models.Model): + """This is used to return the partner's repair requests""" + _inherit = 'res.partner' + + def action_repair_requests(self): + """It returns the repair requests for the customers""" + return { + 'type': 'ir.actions.act_window', + 'name': 'Machine Repair Requests', + 'view_mode': 'tree', + 'res_model': 'machine.repair', + 'domain': [('customer_id', '=', self.id)], + 'context': "{'create': False}" + } diff --git a/base_machine_repair_management/models/sale_order.py b/base_machine_repair_management/models/sale_order.py new file mode 100644 index 000000000..3f532078d --- /dev/null +++ b/base_machine_repair_management/models/sale_order.py @@ -0,0 +1,31 @@ +"""Sale Order""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class SaleOrder(models.Model): + """Inheriting Sale order to add a new field""" + _inherit = 'sale.order' + + machine_diag_ref = fields.Char(string='Diagnosis Reference', + help="Reference for diagnosis") diff --git a/base_machine_repair_management/models/team_member.py b/base_machine_repair_management/models/team_member.py new file mode 100644 index 000000000..86f05da9d --- /dev/null +++ b/base_machine_repair_management/models/team_member.py @@ -0,0 +1,37 @@ +"""Repair Team""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class TeamMember(models.Model): + """This is used for the team members of repair team""" + _name = 'team.member' + _description = 'Team Member' + _rec_name = 'member_id' + + inverse_id = fields.Many2one('repair.team', string="Repair Team", + help="Repair team for machine") + member_id = fields.Many2one('hr.employee', string="Member", + help="member of the repair team") + login = fields.Char(related='member_id.work_email', string="Login", + help="Login details for member") diff --git a/base_machine_repair_management/report/__init__.py b/base_machine_repair_management/report/__init__.py new file mode 100644 index 000000000..cc37e2b40 --- /dev/null +++ b/base_machine_repair_management/report/__init__.py @@ -0,0 +1,23 @@ +"""Machine repair management""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import machine_repair_report diff --git a/base_machine_repair_management/report/machine_repair_report.py b/base_machine_repair_management/report/machine_repair_report.py new file mode 100644 index 000000000..12ae5343f --- /dev/null +++ b/base_machine_repair_management/report/machine_repair_report.py @@ -0,0 +1,46 @@ +"""Machine repair management""" +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya B (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class MachineRepairReport(models.AbstractModel): + """This is used to return the report data""" + _name = 'report.base_machine_repair_management.machine_repair_report' + _description = 'Report for machine repair management' + + def _get_report_values(self, docids, data=None): + """This function is used to get the report data""" + if data['from_date'] and data['to_date']: + vals = self.env['machine.repair'].search( + [('repir_req_date', '>=', data['from_date']), + ('repir_req_date', '<=', data['to_date'])]) + else: + vals = self.env['machine.repair'].search([]) + return { + 'date': fields.Date.today(), + 'doc_ids': docids, + 'doc_model': 'machine.repair', + 'repair_requests': vals, + 'company': self.env.company, + 'data': data, + } diff --git a/base_machine_repair_management/report/machine_repair_report.xml b/base_machine_repair_management/report/machine_repair_report.xml new file mode 100644 index 000000000..36617444c --- /dev/null +++ b/base_machine_repair_management/report/machine_repair_report.xml @@ -0,0 +1,15 @@ + + + + + Machine Repair Report + machine.repair + qweb-pdf + base_machine_repair_management.machine_repair_report + base_machine_repair_management.machine_repair_report + 'Machine Repair Report - %s' % (object.name) + + report + True + + diff --git a/base_machine_repair_management/report/repair_report_templates.xml b/base_machine_repair_management/report/repair_report_templates.xml new file mode 100644 index 000000000..52fa8ecee --- /dev/null +++ b/base_machine_repair_management/report/repair_report_templates.xml @@ -0,0 +1,137 @@ + + + + + diff --git a/base_machine_repair_management/security/base_machine_repair_management_groups.xml b/base_machine_repair_management/security/base_machine_repair_management_groups.xml new file mode 100644 index 000000000..905f33ae8 --- /dev/null +++ b/base_machine_repair_management/security/base_machine_repair_management_groups.xml @@ -0,0 +1,21 @@ + + + + + Machine + Machine Repair + 10 + + + Repair User/Technician + + + + Repair Manager + + + + Sales Persons + + + diff --git a/base_machine_repair_management/security/ir.model.access.csv b/base_machine_repair_management/security/ir.model.access.csv new file mode 100644 index 000000000..3491a8b33 --- /dev/null +++ b/base_machine_repair_management/security/ir.model.access.csv @@ -0,0 +1,11 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access.access_machine_repair_user,access.machine.repair.user,model_machine_repair,base.group_user,1,1,1,1 +access.access_repair_team_user,access.repair.team.user,model_repair_team,base.group_user,1,1,1,1 +access.access_team_member_user,access.team.member,model_team_member,base.group_user,1,1,1,1 +access.access_machine_service_user,access.machine.service.user,model_machine_service,base.group_user,1,1,1,1 +access.access_machine_service_type_user,access.machine.service.type.user,model_machine_service_type,base.group_user,1,1,1,1 +access.access_repair_timesheet_user,access.repair.timesheet.user,model_repair_timesheet,base.group_user,1,1,1,1 +access.access_machine_consume_user,access.machine.consume.user,model_machine_consume,base.group_user,1,1,1,1 +access.access_machine_diagnosis_user,access.machine.diagnosis.user,model_machine_diagnosis,base.group_user,1,1,1,1 +access.access_machine_workorder_user,access.machine.workorder.user,model_machine_workorder,base.group_user,1,1,1,1 +access.access_repair_report_wizard_user,access.repair.report.wizards.user,model_repair_report,base.group_user,1,1,1,1 diff --git a/base_machine_repair_management/static/description/assets/icons/capture (1).png b/base_machine_repair_management/static/description/assets/icons/capture (1).png new file mode 100644 index 000000000..8824deafc Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/capture (1).png differ diff --git a/base_machine_repair_management/static/description/assets/icons/check.png b/base_machine_repair_management/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/check.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/chevron.png b/base_machine_repair_management/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/chevron.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/cogs.png b/base_machine_repair_management/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/cogs.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/consultation.png b/base_machine_repair_management/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/consultation.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/ecom-black.png b/base_machine_repair_management/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/ecom-black.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/education-black.png b/base_machine_repair_management/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/education-black.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/hotel-black.png b/base_machine_repair_management/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/hotel-black.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/img.png b/base_machine_repair_management/static/description/assets/icons/img.png new file mode 100644 index 000000000..70197f477 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/img.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/license.png b/base_machine_repair_management/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/license.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/lifebuoy.png b/base_machine_repair_management/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/lifebuoy.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/manufacturing-black.png b/base_machine_repair_management/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/manufacturing-black.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/photo-capture.png b/base_machine_repair_management/static/description/assets/icons/photo-capture.png new file mode 100644 index 000000000..06c111758 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/photo-capture.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/pos-black.png b/base_machine_repair_management/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/pos-black.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/puzzle.png b/base_machine_repair_management/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/puzzle.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/restaurant-black.png b/base_machine_repair_management/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/restaurant-black.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/service-black.png b/base_machine_repair_management/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/service-black.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/trading-black.png b/base_machine_repair_management/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/trading-black.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/training.png b/base_machine_repair_management/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/training.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/update.png b/base_machine_repair_management/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/update.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/user.png b/base_machine_repair_management/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/user.png differ diff --git a/base_machine_repair_management/static/description/assets/icons/wrench.png b/base_machine_repair_management/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/base_machine_repair_management/static/description/assets/icons/wrench.png differ diff --git a/base_machine_repair_management/static/description/assets/misc/Cybrosys R.png b/base_machine_repair_management/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/misc/Cybrosys R.png differ diff --git a/base_machine_repair_management/static/description/assets/misc/email.svg b/base_machine_repair_management/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/base_machine_repair_management/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/base_machine_repair_management/static/description/assets/misc/phone.svg b/base_machine_repair_management/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/base_machine_repair_management/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/base_machine_repair_management/static/description/assets/misc/star (1) 2.svg b/base_machine_repair_management/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/base_machine_repair_management/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/base_machine_repair_management/static/description/assets/misc/support (1) 1.svg b/base_machine_repair_management/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/base_machine_repair_management/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/base_machine_repair_management/static/description/assets/misc/support-email.svg b/base_machine_repair_management/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/base_machine_repair_management/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/base_machine_repair_management/static/description/assets/misc/tick-mark.svg b/base_machine_repair_management/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/base_machine_repair_management/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/base_machine_repair_management/static/description/assets/misc/whatsapp 1.svg b/base_machine_repair_management/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/base_machine_repair_management/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/base_machine_repair_management/static/description/assets/misc/whatsapp.svg b/base_machine_repair_management/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/base_machine_repair_management/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/base_machine_repair_management/static/description/assets/modules/1.png b/base_machine_repair_management/static/description/assets/modules/1.png new file mode 100644 index 000000000..f3a24c620 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/modules/1.png differ diff --git a/base_machine_repair_management/static/description/assets/modules/2.jpg b/base_machine_repair_management/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..0415e22dd Binary files /dev/null and b/base_machine_repair_management/static/description/assets/modules/2.jpg differ diff --git a/base_machine_repair_management/static/description/assets/modules/3.jpg b/base_machine_repair_management/static/description/assets/modules/3.jpg new file mode 100644 index 000000000..0e905cf14 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/modules/3.jpg differ diff --git a/base_machine_repair_management/static/description/assets/modules/4.jpg b/base_machine_repair_management/static/description/assets/modules/4.jpg new file mode 100644 index 000000000..cd9103b86 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/modules/4.jpg differ diff --git a/base_machine_repair_management/static/description/assets/modules/5.jpg b/base_machine_repair_management/static/description/assets/modules/5.jpg new file mode 100644 index 000000000..a7a3264ef Binary files /dev/null and b/base_machine_repair_management/static/description/assets/modules/5.jpg differ diff --git a/base_machine_repair_management/static/description/assets/modules/6.png b/base_machine_repair_management/static/description/assets/modules/6.png new file mode 100644 index 000000000..ba91094e4 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/modules/6.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/001.png b/base_machine_repair_management/static/description/assets/screenshots/001.png new file mode 100644 index 000000000..fcc886a36 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/001.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/002.png b/base_machine_repair_management/static/description/assets/screenshots/002.png new file mode 100644 index 000000000..fb019e3de Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/002.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/003.png b/base_machine_repair_management/static/description/assets/screenshots/003.png new file mode 100644 index 000000000..63f382627 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/003.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/004.png b/base_machine_repair_management/static/description/assets/screenshots/004.png new file mode 100644 index 000000000..428b8db56 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/004.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/005.png b/base_machine_repair_management/static/description/assets/screenshots/005.png new file mode 100644 index 000000000..e49ac804b Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/005.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/006.png b/base_machine_repair_management/static/description/assets/screenshots/006.png new file mode 100644 index 000000000..8de5646f7 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/006.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/007.png b/base_machine_repair_management/static/description/assets/screenshots/007.png new file mode 100644 index 000000000..751035e44 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/007.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/008.png b/base_machine_repair_management/static/description/assets/screenshots/008.png new file mode 100644 index 000000000..00dcb965f Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/008.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/009.png b/base_machine_repair_management/static/description/assets/screenshots/009.png new file mode 100644 index 000000000..c1c93586f Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/009.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/010.png b/base_machine_repair_management/static/description/assets/screenshots/010.png new file mode 100644 index 000000000..557da2e24 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/010.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/011.png b/base_machine_repair_management/static/description/assets/screenshots/011.png new file mode 100644 index 000000000..6aed1ff25 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/011.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/012.png b/base_machine_repair_management/static/description/assets/screenshots/012.png new file mode 100644 index 000000000..5368803a4 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/012.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/013.png b/base_machine_repair_management/static/description/assets/screenshots/013.png new file mode 100644 index 000000000..da43bed77 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/013.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/014.png b/base_machine_repair_management/static/description/assets/screenshots/014.png new file mode 100644 index 000000000..ec4aae228 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/014.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/015.png b/base_machine_repair_management/static/description/assets/screenshots/015.png new file mode 100644 index 000000000..2481b3cac Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/015.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/016.png b/base_machine_repair_management/static/description/assets/screenshots/016.png new file mode 100644 index 000000000..9df1aa10c Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/016.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/017.png b/base_machine_repair_management/static/description/assets/screenshots/017.png new file mode 100644 index 000000000..98810ba5e Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/017.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/018.png b/base_machine_repair_management/static/description/assets/screenshots/018.png new file mode 100644 index 000000000..c02eee954 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/018.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/019.png b/base_machine_repair_management/static/description/assets/screenshots/019.png new file mode 100644 index 000000000..b93eae395 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/019.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/hero.gif b/base_machine_repair_management/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..6b21a8da5 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/hero.gif differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img1.png b/base_machine_repair_management/static/description/assets/screenshots/img1.png new file mode 100644 index 000000000..4c8ffe6fe Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img1.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img10.png b/base_machine_repair_management/static/description/assets/screenshots/img10.png new file mode 100644 index 000000000..cdb58a9b3 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img10.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img11.png b/base_machine_repair_management/static/description/assets/screenshots/img11.png new file mode 100644 index 000000000..99a95ea82 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img11.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img12.png b/base_machine_repair_management/static/description/assets/screenshots/img12.png new file mode 100644 index 000000000..6f862cd8e Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img12.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img13.png b/base_machine_repair_management/static/description/assets/screenshots/img13.png new file mode 100644 index 000000000..8c3dfff58 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img13.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img14.png b/base_machine_repair_management/static/description/assets/screenshots/img14.png new file mode 100644 index 000000000..4744669fd Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img14.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img15.png b/base_machine_repair_management/static/description/assets/screenshots/img15.png new file mode 100644 index 000000000..12f6e3256 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img15.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img2.png b/base_machine_repair_management/static/description/assets/screenshots/img2.png new file mode 100644 index 000000000..fc355c276 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img2.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img3.png b/base_machine_repair_management/static/description/assets/screenshots/img3.png new file mode 100644 index 000000000..6c106618e Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img3.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img4.png b/base_machine_repair_management/static/description/assets/screenshots/img4.png new file mode 100644 index 000000000..b34fb0810 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img4.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img5.png b/base_machine_repair_management/static/description/assets/screenshots/img5.png new file mode 100644 index 000000000..435d2100c Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img5.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img6.png b/base_machine_repair_management/static/description/assets/screenshots/img6.png new file mode 100644 index 000000000..4da7e548d Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img6.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img7.png b/base_machine_repair_management/static/description/assets/screenshots/img7.png new file mode 100644 index 000000000..5065ba101 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img7.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img8.png b/base_machine_repair_management/static/description/assets/screenshots/img8.png new file mode 100644 index 000000000..1c1587b21 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img8.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/img9.png b/base_machine_repair_management/static/description/assets/screenshots/img9.png new file mode 100644 index 000000000..045acab9f Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/img9.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_1.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_1.png new file mode 100644 index 000000000..6a634782c Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_1.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_10.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_10.png new file mode 100644 index 000000000..77022691a Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_10.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_11.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_11.png new file mode 100644 index 000000000..3b3b3cba5 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_11.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_12.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_12.png new file mode 100644 index 000000000..08384dc9c Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_12.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_13.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_13.png new file mode 100644 index 000000000..b932daef8 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_13.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_14.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_14.png new file mode 100644 index 000000000..b574e4df4 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_14.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_2.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_2.png new file mode 100644 index 000000000..7e490f507 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_2.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_3.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_3.png new file mode 100644 index 000000000..6b6aecd62 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_3.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_3_1.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_3_1.png new file mode 100644 index 000000000..9ac8f75fc Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_3_1.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_4.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_4.png new file mode 100644 index 000000000..f19f10dfa Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_4.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_5.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_5.png new file mode 100644 index 000000000..a2d943d9c Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_5.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_6.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_6.png new file mode 100644 index 000000000..363b79efe Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_6.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_7.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_7.png new file mode 100644 index 000000000..b1e7945ce Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_7.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_8.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_8.png new file mode 100644 index 000000000..3b723e4c9 Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_8.png differ diff --git a/base_machine_repair_management/static/description/assets/screenshots/wrm_9.png b/base_machine_repair_management/static/description/assets/screenshots/wrm_9.png new file mode 100644 index 000000000..0c48837ea Binary files /dev/null and b/base_machine_repair_management/static/description/assets/screenshots/wrm_9.png differ diff --git a/base_machine_repair_management/static/description/banner.jpg b/base_machine_repair_management/static/description/banner.jpg new file mode 100644 index 000000000..ec43f95ab Binary files /dev/null and b/base_machine_repair_management/static/description/banner.jpg differ diff --git a/base_machine_repair_management/static/description/icon.png b/base_machine_repair_management/static/description/icon.png new file mode 100644 index 000000000..9bc2df5c8 Binary files /dev/null and b/base_machine_repair_management/static/description/icon.png differ diff --git a/base_machine_repair_management/static/description/index.html b/base_machine_repair_management/static/description/index.html new file mode 100755 index 000000000..b6a8ad7a3 --- /dev/null +++ b/base_machine_repair_management/static/description/index.html @@ -0,0 +1,1081 @@ + + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+
+
+
+
+

+ Base Machine Repair Management

+

+ Machine Repair Management System Is An Application Which Is Used To Maintain The Machine Repairs. +

+
+ +
+
+
+
+
+

+ Key Highlights +

+
+
+
+
+
+ +
+
+

+ Create Request from website

+

Your customer can send machine repair requests from your website. +

+
+
+
+
+
+
+ +
+
+

+ Check request status from portal.

+

Customers can view and check the status of all machine request from their portal. +

+
+
+
+
+
+ +
+
+

management of diagnosis and create sale quotation. +

+

The system allows your user to do management of diagnosis of machine repair requests and allows you to create sales quotations and send them to your customer.. +

+
+
+
+
+
+ +
+
+

+ Machine repair team to create a job order/work order from the Machine

+

Machine repair team to create a job order/work order from the Machine Repair Management system is an application which is used to maintain the repairs of machine. It is also allow users to take machine requests through website and these requests are created in the backend ,Also we can manage the job order,machine diagnosis and maintained the team, repair requests. +

+
+
+ + +
+
+
+ +
+
+

+ Can add machine repair-related images

+

Allow you to set the machine repair-related images on the machine repair form. + +

+
+
+ +
+
+
+ +
+
+

+ PDF of machine repair request report

+

User to print a PDF of machine repair request report +

+
+
+ +
+
+
+ +
+
+

+ close machine repair tickets and send bills to customers

+

The machine request manager can close machine repair tickets and send bills to customers (Billing from Quotation created from Diagnosis). +

+
+
+ +
+
+
+ +
+
+

+ Customer feedback

+

Customers can give feedback and rating of machine repair request jobs done. +

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

+ Create Machine Repair Request from website

+

+ User can create Machine repair request from website by providing the essential details.

+
+
+ +
+
+
+
+
+
+

+ Machine Repair requests.

+

+ Corresponding Machine repair request will creates in backend when we create request from website. +

+
+
+ +
+
+
+
+
+
+

+ Machine Repair Teams Form View.

+

+ Creating Repairing Teams And the Team Members. +

+
+
+ +
+
+
+
+
+
+

+ Machine Service Type Configuration.

+

+ Configure service type that are available for a machine. +

+
+
+ +
+
+
+
+
+
+

+ Nature of Service Configuration.

+

+ We can create nature of service from the form view. +

+
+
+ +
+
+
+
+
+
+

+ Manage Access Rights By Specifying The User Groups.

+

+ Different users has different access, It can manage through the access rights. +

+
+
+ +
+
+
+
+
+
+

+ Create Machine and Machine parts products.

+

+ We can create Machine and Machine parts by choosing correspond checkboxes. +

+
+
+ +
+
+
+
+
+
+

+ Assign to teams.

+

+ We can assign the Repair request to repair team by clicking the "Assign to Team' button, by selecting the corresponding repair team. +

+
+
+ +
+
+
+
+
+
+

+ Close Repair orders.

+

+ We can close the repairing orders by clicking the 'Close' button. +

+
+
+ +
+
+
+
+
+
+

+ Create Diagnosis

+

+ We can create machine diagnosis by clicking the 'Create Diagnosis' button +

+
+
+ +
+
+
+
+
+
+

+ Create Quotation for Machine Diagnosis

+

+ We can create sale quotation for the customer and send by clicking on 'Create Quotation' button, for that we need to select the consumed machine parts under the 'Estimated Repair Time'. +

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

+ Create WorkOrder for Machine Repair

+

+ Can create the workOrder for Machine repair by clicking on 'Create Workorder' button. +

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

+ Send closed repair mail

+

+ We can send closed repair mail to the customer by clicking the send mail button. +

+
+
+ + +
+
+
+
+
+
+

+ Generate Repair summary report

+

+ We can generate Repair summary report by clicking the Print Report button after providing start and end date. +

+
+
+ +
+
+
+ +
+
+
+

+ Customer Feedback

+

+ Customer can send the feedback through the website. +

+
+
+ +
+
+
+ +
+
+
+

+ Portal access of Repair orders.

+

+ Customer can access the Machine repair orders from the customer portal. +

+
+
+ +
+
+ +
+
+
+
+
+
+
    +
  • + Create Request from website +
  • +
  • + Portal Return + Order View +
  • + +
  • + Check request status from portal. +
  • +
  • + Management of diagnosis and create sale quotation. +
  • +
  • + Machine repair team to create a job order/work order from the Machine +
  • +
  • + Can add machine repair-related images +
  • +
  • + PDF of machine repair request report +
  • +
  • + close machine repair tickets and send bills to customers +
  • +
  • + Customer feedback +
  • +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on:04th Apr 2024 +
+

+ Initial Commit for Website Return Management

+
+
+
+
+
+
+
+

+ 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/base_machine_repair_management/views/base_machine_repair_management_menus.xml b/base_machine_repair_management/views/base_machine_repair_management_menus.xml new file mode 100644 index 000000000..afd4096a7 --- /dev/null +++ b/base_machine_repair_management/views/base_machine_repair_management_menus.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + diff --git a/base_machine_repair_management/views/customer_portal_templates.xml b/base_machine_repair_management/views/customer_portal_templates.xml new file mode 100644 index 000000000..c7d6ab61b --- /dev/null +++ b/base_machine_repair_management/views/customer_portal_templates.xml @@ -0,0 +1,231 @@ + + + + + + + + + + diff --git a/base_machine_repair_management/views/customer_review_templates.xml b/base_machine_repair_management/views/customer_review_templates.xml new file mode 100644 index 000000000..2aa9de58c --- /dev/null +++ b/base_machine_repair_management/views/customer_review_templates.xml @@ -0,0 +1,107 @@ + + + + + Repair Review + /review + + 40 + + +