@ -0,0 +1,49 @@ | 
				
			|||
.. image:: https://img.shields.io/badge/licence-LGPL--3-blue.svg | 
				
			|||
    :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html | 
				
			|||
    :alt: License: LGPL-3 | 
				
			|||
 | 
				
			|||
Legal Case Management | 
				
			|||
======================= | 
				
			|||
This module helps to manage all process of a legal case management firm. | 
				
			|||
In this way we can register a case and add  their evidence, trial and payment also. | 
				
			|||
Assign the lawyers based on the wages and per case | 
				
			|||
 | 
				
			|||
Configuration | 
				
			|||
============= | 
				
			|||
The user should be added to the security group: Admin(Settings/Users/Other/Case Management) inorder to get access to the new menu. | 
				
			|||
 | 
				
			|||
Company | 
				
			|||
------- | 
				
			|||
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__ | 
				
			|||
 | 
				
			|||
License | 
				
			|||
------- | 
				
			|||
General Public License, Version 3 (LGPL v3). | 
				
			|||
(https://www.odoo.com/documentation/user/16.0/legal/licenses/licenses.html) | 
				
			|||
 | 
				
			|||
Credits | 
				
			|||
------- | 
				
			|||
Developer: LAJINA K V @cybrosys, | 
				
			|||
           MOHAMMED DILSHAD TK @cybrosys | 
				
			|||
 | 
				
			|||
Contacts | 
				
			|||
-------- | 
				
			|||
* Mail Contact : odoo@cybrosys.com | 
				
			|||
* Website : https://cybrosys.com | 
				
			|||
 | 
				
			|||
Bug Tracker | 
				
			|||
----------- | 
				
			|||
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. | 
				
			|||
 | 
				
			|||
Maintainer | 
				
			|||
========== | 
				
			|||
.. image:: https://cybrosys.com/images/logo.png | 
				
			|||
   :target: https://cybrosys.com | 
				
			|||
 | 
				
			|||
This module is maintained by Cybrosys Technologies. | 
				
			|||
 | 
				
			|||
For support and more information, please visit `Our Website <https://cybrosys.com/>`__ | 
				
			|||
 | 
				
			|||
Further information | 
				
			|||
=================== | 
				
			|||
HTML Description: `<static/description/index.html>`__ | 
				
			|||
@ -0,0 +1,25 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: LAJINA.K.V (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from . import controllers | 
				
			|||
from . import models | 
				
			|||
from . import report | 
				
			|||
from . import wizard | 
				
			|||
@ -0,0 +1,73 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: LAJINA.K.V (odoo@cybrosys.com) | 
				
			|||
#            MOHAMMED DILSHAD TK (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
{ | 
				
			|||
    'name': "Legal Case Management", | 
				
			|||
    'version': '16.0.1.0.0', | 
				
			|||
    'category': 'Industries', | 
				
			|||
    'author': 'Cybrosys Techno Solutions', | 
				
			|||
    'company': 'Cybrosys Techno Solutions', | 
				
			|||
    'maintainer': 'Cybrosys Techno Solutions', | 
				
			|||
    'website': 'https://www.cybrosys.com', | 
				
			|||
    'summary': 'Legal Case Management for odoo 16. This module will helps ' | 
				
			|||
               'to manage a legal case management firm. This will allows to ' | 
				
			|||
               'manage all details of case sucha as evidence, trial and overall' | 
				
			|||
               ' payment of a case', | 
				
			|||
    'description': 'This module helps to manage all process of a legal case' | 
				
			|||
                   ' management firm.In this way we can register a case and add' | 
				
			|||
                   'their evidence, trial and payment also. Assign the lawyers' | 
				
			|||
                   ' based on the wages and per case ', | 
				
			|||
    'depends': ['base', 'hr', 'contacts', 'account', 'website', 'mail'], | 
				
			|||
    'data': [ | 
				
			|||
        'security/legal_case_management_groups.xml', | 
				
			|||
        'security/legal_case_management_security.xml', | 
				
			|||
        'security/ir.model.access.csv', | 
				
			|||
        'data/case_register_menu.xml', | 
				
			|||
        'data/ir_sequence_data.xml', | 
				
			|||
        'wizard/invoice_payment_views.xml', | 
				
			|||
        'wizard/full_settlement_views.xml', | 
				
			|||
        'wizard/legal_case_report_views.xml', | 
				
			|||
        'views/legal_case_management_menus.xml', | 
				
			|||
        'report/case_registration_reports.xml', | 
				
			|||
        'report/case_registration_templates.xml', | 
				
			|||
        'report/case_registration_form_report_templates.xml', | 
				
			|||
        'report/legal_evidence_templates.xml', | 
				
			|||
        'report/legal_trial_report_templates.xml', | 
				
			|||
        'views/case_registration_views.xml', | 
				
			|||
        'views/hr_employee_views.xml', | 
				
			|||
        'views/res_partner_views.xml', | 
				
			|||
        'views/legal_evidence_views.xml', | 
				
			|||
        'views/legal_trial_views.xml', | 
				
			|||
        'views/legal_court_views.xml', | 
				
			|||
        'views/case_category_views.xml', | 
				
			|||
        'views/case_register_portal_template.xml', | 
				
			|||
        'views/case_register_template.xml', | 
				
			|||
        'views/account_move_views.xml', | 
				
			|||
        'views/thanks_template.xml', | 
				
			|||
        'views/legal_case_page_template.xml' | 
				
			|||
    ], | 
				
			|||
    'images': ['static/description/banner.png'], | 
				
			|||
    'license': 'LGPL-3', | 
				
			|||
    'installable': True, | 
				
			|||
    'auto_install': False, | 
				
			|||
    'application': True | 
				
			|||
} | 
				
			|||
@ -0,0 +1,23 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Lajina (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from . import legal_case_management | 
				
			|||
from . import portal | 
				
			|||
@ -0,0 +1,56 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Lajina (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
import base64 | 
				
			|||
 | 
				
			|||
from odoo import http | 
				
			|||
from odoo.http import request | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class LegalCaseController(http.Controller): | 
				
			|||
    """Legal Case Controller""" | 
				
			|||
    @http.route('/legal/case/register', type="http", auth="user", website=True) | 
				
			|||
    def legal_case_register(self): | 
				
			|||
        """ Returns Case Registration Form""" | 
				
			|||
        return request.render( | 
				
			|||
            'legal_case_management.legal_case_register_view') | 
				
			|||
 | 
				
			|||
    @http.route('/submit/create/case', type='http', website=True, auth='user') | 
				
			|||
    def create_case_register(self, **kw): | 
				
			|||
        """Creation of Cases""" | 
				
			|||
        attached_files = request.httprequest.files.getlist('attachments') | 
				
			|||
        case = request.env['case.registration'].sudo().create({ | 
				
			|||
            'client_id': request.env.user.partner_id.id, | 
				
			|||
            'email': request.env.user.partner_id.email, | 
				
			|||
            'contact_no': kw['contact'], | 
				
			|||
            'description': kw['description'], | 
				
			|||
            'case_category_id': int(kw['case_category']), | 
				
			|||
            'company_id': request.env.company.id, | 
				
			|||
        }) | 
				
			|||
        for attachment in attached_files: | 
				
			|||
            request.env['ir.attachment'].sudo().create({ | 
				
			|||
                'name': attachment.filename, | 
				
			|||
                'res_model': 'case.registration', | 
				
			|||
                'res_id': case.id, | 
				
			|||
                'type': 'binary', | 
				
			|||
                'datas': base64.b64encode(attachment.read()) | 
				
			|||
            }) | 
				
			|||
        return request.render("legal_case_management.thanks_page") | 
				
			|||
@ -0,0 +1,75 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Lajina (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo.addons.portal.controllers.portal import CustomerPortal | 
				
			|||
 | 
				
			|||
from odoo import http | 
				
			|||
from odoo.http import request | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class PortalLegalCase(CustomerPortal): | 
				
			|||
    """Customer Portal""" | 
				
			|||
 | 
				
			|||
    def _prepare_home_portal_values(self, counters): | 
				
			|||
        """Returns the portal values""" | 
				
			|||
        values = super()._prepare_home_portal_values(counters) | 
				
			|||
        if 'case_count' in counters: | 
				
			|||
            values['case_count'] = request.env[ | 
				
			|||
                'case.registration'].sudo().search_count( | 
				
			|||
                [('state', '!=', 'invoiced'), | 
				
			|||
                 ('client_id.id', '=', request.env.user.partner_id.id)]) \ | 
				
			|||
                if request.env['case.registration'].sudo(). \ | 
				
			|||
                check_access_rights('read', raise_exception=False) else 0 | 
				
			|||
        return values | 
				
			|||
 | 
				
			|||
    @http.route('/my/legal/case', | 
				
			|||
                type='http', auth="user", website=True) | 
				
			|||
    def legal_cases(self): | 
				
			|||
        """Returns the case Records""" | 
				
			|||
        records = request.env['case.registration'].sudo(). \ | 
				
			|||
            search([('client_id', '=', request.env.user.partner_id.id)]) | 
				
			|||
        values = { | 
				
			|||
            'records': records, | 
				
			|||
            'page_name': 'case' | 
				
			|||
        } | 
				
			|||
        return request.render( | 
				
			|||
            "legal_case_management.portal_my_legal_case_requests", | 
				
			|||
            values) | 
				
			|||
 | 
				
			|||
    @http.route(['/my/cases/<int:case_id>'], type='http', auth="public", | 
				
			|||
                website=True) | 
				
			|||
    def portal_my_details_detail(self, case_id): | 
				
			|||
        """ Returns the Portal details""" | 
				
			|||
        case_record = request.env['case.registration'].sudo().browse(case_id) | 
				
			|||
        evidences = request.env['legal.evidence'].sudo().search( | 
				
			|||
            [('client_id', '=', case_record.client_id.id), | 
				
			|||
             ('case_id', '=', case_record.id)]) | 
				
			|||
        trials = request.env['legal.trial'].sudo().search( | 
				
			|||
            [('client_id', '=', case_record.client_id.id), | 
				
			|||
             ('case_id', '=', case_record.id)]) | 
				
			|||
        records = { | 
				
			|||
            'case_record': case_record, | 
				
			|||
            'evidence': evidences, | 
				
			|||
            'trial': trials, | 
				
			|||
            'page_name': 'case' | 
				
			|||
        } | 
				
			|||
        return request.render("legal_case_management.portal_legal_case_page", | 
				
			|||
                              records) | 
				
			|||
@ -0,0 +1,12 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <data noupdate="1"> | 
				
			|||
        <!-- Website Menu For Case Registration--> | 
				
			|||
        <record id="menu_case_register" model="website.menu"> | 
				
			|||
            <field name="name">Legal Case</field> | 
				
			|||
            <field name="url">/legal/case/register</field> | 
				
			|||
            <field name="parent_id" ref="website.main_menu"/> | 
				
			|||
            <field name="sequence" type="int">30</field> | 
				
			|||
        </record> | 
				
			|||
    </data> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,24 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Generate Sequence Numbers For Case Registration, Evidence And Trial--> | 
				
			|||
    <data noupdate="1"> | 
				
			|||
        <record id="sequence_case_registration" model="ir.sequence"> | 
				
			|||
            <field name="name">Case Sequence</field> | 
				
			|||
            <field name="code">case_registration</field> | 
				
			|||
            <field name="prefix">CASE000</field> | 
				
			|||
            <field name="company_id" eval="False"/> | 
				
			|||
        </record> | 
				
			|||
        <record id="sequence_case_evidence" model="ir.sequence"> | 
				
			|||
            <field name="name">Case Evidence Sequence</field> | 
				
			|||
            <field name="code">case_evidence</field> | 
				
			|||
            <field name="prefix">EV000</field> | 
				
			|||
            <field name="company_id" eval="False"/> | 
				
			|||
        </record> | 
				
			|||
        <record id="sequence_legal_trial" model="ir.sequence"> | 
				
			|||
            <field name="name">Legal Case Sequence</field> | 
				
			|||
            <field name="code">legal_trial</field> | 
				
			|||
            <field name="prefix">TR000</field> | 
				
			|||
            <field name="company_id" eval="False"/> | 
				
			|||
        </record> | 
				
			|||
    </data> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,7 @@ | 
				
			|||
## Module <legal_case_management> | 
				
			|||
 | 
				
			|||
#### 27.07.2023 | 
				
			|||
#### Version 16.0.1.0.0 | 
				
			|||
#### ADD | 
				
			|||
 | 
				
			|||
- Initial commit for Legal Case Management | 
				
			|||
@ -0,0 +1,31 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: MOHAMMED DILSHAD TK (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from . import account_move | 
				
			|||
from . import case_category | 
				
			|||
from . import case_registration | 
				
			|||
from . import case_sitting | 
				
			|||
from . import case_victim | 
				
			|||
from . import hr_employee | 
				
			|||
from . import legal_court | 
				
			|||
from . import legal_evidence | 
				
			|||
from . import legal_trial | 
				
			|||
from . import res_partner | 
				
			|||
@ -0,0 +1,30 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: MOHAMMED DILSHAD TK (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import fields, models | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class AccountMove(models.Model): | 
				
			|||
    """Inherit account move""" | 
				
			|||
    _inherit = 'account.move' | 
				
			|||
 | 
				
			|||
    case_ref = fields.Char(readonly=True, string='Case Reference', | 
				
			|||
                           help='It is used to identify the case reference') | 
				
			|||
@ -0,0 +1,44 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: MOHAMMED DILSHAD TK (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import api, fields, models, _ | 
				
			|||
from odoo.exceptions import UserError | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class CaseCategory(models.Model): | 
				
			|||
    """Create case category""" | 
				
			|||
    _name = 'case.category' | 
				
			|||
    _description = 'Case Category' | 
				
			|||
 | 
				
			|||
    name = fields.Char("Case Category", required=True, | 
				
			|||
                       help='Name of the case category') | 
				
			|||
 | 
				
			|||
    @api.ondelete(at_uninstall=False) | 
				
			|||
    def _unlink_except_draft_or_cancel(self): | 
				
			|||
        """ Prevent the deletion of a case category if it is used in any | 
				
			|||
         cases. """ | 
				
			|||
        cases = self.sudo().env['case.registration'].search_count([ | 
				
			|||
            ('case_category_id', 'in', self.ids), | 
				
			|||
            ('state', 'not in', ['draft']) | 
				
			|||
        ]) | 
				
			|||
        if cases: | 
				
			|||
            raise UserError(_("You can not delete a case category," | 
				
			|||
                              " because it is used in case")) | 
				
			|||
@ -0,0 +1,317 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: MOHAMMED DILSHAD TK (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import api, fields, models, _ | 
				
			|||
from odoo.exceptions import UserError, ValidationError | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class CaseRegistration(models.Model): | 
				
			|||
    """Case registration and invoice for trials and case""" | 
				
			|||
    _name = 'case.registration' | 
				
			|||
    _inherit = ['mail.thread', 'mail.activity.mixin'] | 
				
			|||
    _description = 'Case Register' | 
				
			|||
 | 
				
			|||
    name = fields.Char('Case No', readonly=True, default=lambda self: _('New'), | 
				
			|||
                       help='Case number') | 
				
			|||
    client_id = fields.Many2one('res.partner', string='Client', required=True, | 
				
			|||
                                help='Clients in the law firm') | 
				
			|||
    email = fields.Char(related="client_id.email", required=True, string='Email', | 
				
			|||
                        help='Email of client', readonly=False) | 
				
			|||
    contact_no = fields.Char(related="client_id.phone", required=True, | 
				
			|||
                             string='Contact No', readonly=False) | 
				
			|||
    payment_method = fields.Selection(selection=[ | 
				
			|||
        ('trial', "Per Trial"), | 
				
			|||
        ('case', "Per Case"), | 
				
			|||
        ('out_of_court', "Out of Court")], string='Payment Method', | 
				
			|||
        states={'draft': [('invisible', True)]}) | 
				
			|||
    lawyer_wage = fields.Char(invisible=True) | 
				
			|||
    lawyer_id = fields.Many2one('hr.employee', string='Lawyer', | 
				
			|||
                                domain=[('is_lawyer', '=', True), | 
				
			|||
                                        ('parent_id', '=', False)], | 
				
			|||
                                help="Lawyers in the law firm") | 
				
			|||
    lawyer_unavailable = fields.Boolean(default=False) | 
				
			|||
    junior_lawyer_id = fields.Many2one('hr.employee', string='Junior Lawyer', | 
				
			|||
                                       help='Juniors lawyers in the law firm') | 
				
			|||
    court_id = fields.Many2one('legal.court', string='Court', | 
				
			|||
                               help="Name of courts") | 
				
			|||
    court_no_required = fields.Boolean(help='Makes court as Not required field', | 
				
			|||
                                       default=True) | 
				
			|||
    judge_id = fields.Many2one(related='court_id.judge_id', string='Judge', | 
				
			|||
                               store=True, help="Available judges") | 
				
			|||
    register_date = fields.Date('Registration Date', required=True, | 
				
			|||
                                default=fields.Date.today, | 
				
			|||
                                help='Case registration date') | 
				
			|||
    start_date = fields.Date('Start Date', default=fields.Date.today) | 
				
			|||
    end_date = fields.Date('End Date') | 
				
			|||
    case_category_id = fields.Many2one('case.category', 'Case Category', | 
				
			|||
                                       required=True, | 
				
			|||
                                       help="Category of case") | 
				
			|||
    description = fields.Html('Description', required=True, | 
				
			|||
                              help="Case Details") | 
				
			|||
    opposition_name = fields.Char('Name', help="Name of Opposite Party") | 
				
			|||
    opposite_lawyer = fields.Char('Lawyer', help="Name of opposite Lawyer") | 
				
			|||
    opp_party_contact = fields.Char('Contact No') | 
				
			|||
    victim_ids = fields.One2many('case.victim', 'registration_id', | 
				
			|||
                                 help="List of Victims") | 
				
			|||
    sitting_detail_ids = fields.One2many('case.sitting', 'case_id') | 
				
			|||
    evidence_count = fields.Integer(compute='_compute_evidence_count', | 
				
			|||
                                    help="Count of evidence") | 
				
			|||
    case_attachment_count = fields.Integer( | 
				
			|||
        compute='_compute_case_attachment_count', | 
				
			|||
        help="Count of attachments") | 
				
			|||
    trial_count = fields.Integer(compute='_compute_trial_count', | 
				
			|||
                                 help="Count of trials") | 
				
			|||
    invoice_count = fields.Integer(compute='_compute_invoice_count', | 
				
			|||
                                   help="Count of Invoices") | 
				
			|||
    state = fields.Selection( | 
				
			|||
        [('draft', 'Draft'), ('in_progress', 'In Progress'), | 
				
			|||
         ('invoiced', 'Invoiced'), ('reject', 'Reject'), | 
				
			|||
         ('won', 'Won'), ('lost', 'Lost'), ('cancel', 'Cancel')], | 
				
			|||
        string='State', default='draft') | 
				
			|||
    company_id = fields.Many2one("res.company", string="Company", | 
				
			|||
                                 default=lambda self: self.env.company, | 
				
			|||
                                 readonly=True) | 
				
			|||
 | 
				
			|||
    @api.onchange('payment_method') | 
				
			|||
    def _onchange_payment_method(self): | 
				
			|||
        """Court not required based on, | 
				
			|||
         - if payment method = out of court | 
				
			|||
         - if invoice through full settlement""" | 
				
			|||
        if self.payment_method == 'out_of_court': | 
				
			|||
            self.court_no_required = False | 
				
			|||
        else: | 
				
			|||
            self.court_no_required = True | 
				
			|||
 | 
				
			|||
    @api.onchange('lawyer_id') | 
				
			|||
    def _onchange_lawyer_id(self): | 
				
			|||
        """lawyer unavailable warning and lists his juniors""" | 
				
			|||
        cases = self.sudo().search( | 
				
			|||
            [('lawyer_id', '=', self.lawyer_id.id), ('state', '!=', 'draft'), | 
				
			|||
             ('id', '!=', self._origin.id)]) | 
				
			|||
        self.lawyer_id.not_available = False | 
				
			|||
        self.lawyer_unavailable = False | 
				
			|||
        if self.lawyer_id: | 
				
			|||
            for case in cases: | 
				
			|||
                if case.end_date and case.end_date <= fields.Date.today(): | 
				
			|||
                    self.lawyer_id.not_available = False | 
				
			|||
                    self.lawyer_unavailable = False | 
				
			|||
                else: | 
				
			|||
                    self.lawyer_id.not_available = True | 
				
			|||
                    self.lawyer_unavailable = True | 
				
			|||
                    break | 
				
			|||
            if self.lawyer_unavailable: | 
				
			|||
                return { | 
				
			|||
                    'warning': { | 
				
			|||
                        'title': 'Lawyer Unavailable', | 
				
			|||
                        'message': 'The selected lawyer is unavailable ' | 
				
			|||
                                   'at this time.' | 
				
			|||
                                   'You can choose his juniors.', | 
				
			|||
                    }, | 
				
			|||
                    'domain': { | 
				
			|||
                        'junior_lawyer_id': [('parent_id', '=', | 
				
			|||
                                              self.lawyer_id.id), | 
				
			|||
                                             ('is_lawyer', '=', True)], | 
				
			|||
                    }, | 
				
			|||
                } | 
				
			|||
 | 
				
			|||
    @api.ondelete(at_uninstall=False) | 
				
			|||
    def _unlink_except_draft_or_cancel(self): | 
				
			|||
        """ Records can be deleted only draft and cancel state""" | 
				
			|||
        case_records = self.filtered( | 
				
			|||
            lambda x: x.state not in ['draft', 'cancel']) | 
				
			|||
        if case_records: | 
				
			|||
            raise UserError(_( | 
				
			|||
                "You can not delete a Approved Case." | 
				
			|||
                " You must first cancel it.")) | 
				
			|||
 | 
				
			|||
    def action_full_settlement(self): | 
				
			|||
        """Returns the full settlement view""" | 
				
			|||
        self.court_no_required = False | 
				
			|||
        return { | 
				
			|||
            'type': 'ir.actions.act_window', | 
				
			|||
            'res_model': 'full.settlement', | 
				
			|||
            'view_mode': 'form', | 
				
			|||
            'target': 'new', | 
				
			|||
            'context': {'default_case_id': self.id} | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
    def action_cancel(self): | 
				
			|||
        """State changed to cancel""" | 
				
			|||
        self.write({'state': 'cancel'}) | 
				
			|||
        self.lawyer_id.not_available = False | 
				
			|||
        self.end_date = fields.Date.today() | 
				
			|||
 | 
				
			|||
    def action_reset_to_draft(self): | 
				
			|||
        """ Stage reset to draft""" | 
				
			|||
        self.write({'state': 'draft'}) | 
				
			|||
 | 
				
			|||
    def action_confirm(self): | 
				
			|||
        """Confirmation of Cases""" | 
				
			|||
        if self.name == 'New': | 
				
			|||
            self.name = self.env['ir.sequence']. \ | 
				
			|||
                            next_by_code('case_registration') or 'New' | 
				
			|||
        self.state = 'in_progress' | 
				
			|||
 | 
				
			|||
    def action_reject(self): | 
				
			|||
        """Rejection of Cases""" | 
				
			|||
        self.write({'state': 'reject'}) | 
				
			|||
 | 
				
			|||
    def validation_case_registration(self): | 
				
			|||
        """Show Validation Until The Lawyer Details are Filled""" | 
				
			|||
        if not self.lawyer_id: | 
				
			|||
            raise ValidationError(_( | 
				
			|||
                """Please assign a lawyer for the case""" | 
				
			|||
            )) | 
				
			|||
 | 
				
			|||
    def action_invoice(self): | 
				
			|||
        """button method to show invoice wizard""" | 
				
			|||
        if not self.payment_method: | 
				
			|||
            raise ValidationError(_( | 
				
			|||
                """Please select a payment method for create invoice""" | 
				
			|||
            )) | 
				
			|||
        if self.payment_method == 'case': | 
				
			|||
            self.lawyer_wage = self.lawyer_id.wage_per_case | 
				
			|||
        elif self.payment_method == 'trial': | 
				
			|||
            self.lawyer_wage = self.lawyer_id.wage_per_trial | 
				
			|||
        else: | 
				
			|||
            self.lawyer_wage = '' | 
				
			|||
        self.validation_case_registration() | 
				
			|||
        return { | 
				
			|||
            'name': 'Create Invoice', | 
				
			|||
            'type': 'ir.actions.act_window', | 
				
			|||
            'res_model': 'invoice.payment', | 
				
			|||
            'view_mode': 'form', | 
				
			|||
            'target': 'new', | 
				
			|||
            'context': {'default_case_id': self.id, | 
				
			|||
                        'default_cost': self.lawyer_wage} | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
    def action_evidence(self): | 
				
			|||
        """Button to add evidence""" | 
				
			|||
        return { | 
				
			|||
            'type': 'ir.actions.act_window', | 
				
			|||
            'name': 'Evidence', | 
				
			|||
            'view_mode': 'form', | 
				
			|||
            'res_model': 'legal.evidence', | 
				
			|||
            'context': {'default_case_id': self.id, | 
				
			|||
                        'default_client_id': self.client_id.id} | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
    def get_attachments(self): | 
				
			|||
        """Show attachments in smart tab which added in chatter""" | 
				
			|||
        return { | 
				
			|||
            'type': 'ir.actions.act_window', | 
				
			|||
            'name': 'Attachment', | 
				
			|||
            'view_mode': 'kanban,form', | 
				
			|||
            'res_model': 'ir.attachment', | 
				
			|||
            'domain': [('res_id', '=', self.id), | 
				
			|||
                       ('res_model', '=', self._name)], | 
				
			|||
            'context': {'create': False} | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
    def _compute_case_attachment_count(self): | 
				
			|||
        """Compute the count of attachments""" | 
				
			|||
        for attachment in self: | 
				
			|||
            attachment.case_attachment_count = self.env['ir.attachment']. \ | 
				
			|||
                sudo().search_count([('res_id', '=', self.id), | 
				
			|||
                                     ('res_model', '=', self._name)]) | 
				
			|||
 | 
				
			|||
    def action_won(self): | 
				
			|||
        """Changed to won state""" | 
				
			|||
        self.state = 'won' | 
				
			|||
        self.end_date = fields.Date.today() | 
				
			|||
        self.lawyer_id.not_available = False | 
				
			|||
 | 
				
			|||
    def action_lost(self): | 
				
			|||
        """Changed to lost state""" | 
				
			|||
        self.state = 'lost' | 
				
			|||
        self.end_date = fields.Date.today() | 
				
			|||
        self.lawyer_id.not_available = False | 
				
			|||
 | 
				
			|||
    def _compute_evidence_count(self): | 
				
			|||
        """Computes the count of evidence""" | 
				
			|||
        for case in self: | 
				
			|||
            case.evidence_count = case.env['legal.evidence'].search_count( | 
				
			|||
                [('client_id', '=', self.client_id.id), | 
				
			|||
                 ('case_id', '=', self.id)]) | 
				
			|||
 | 
				
			|||
    def _compute_trial_count(self): | 
				
			|||
        """Compute the count of trials""" | 
				
			|||
        for case in self: | 
				
			|||
            case.trial_count = case.env['legal.trial']. \ | 
				
			|||
                search_count([('client_id', '=', self.client_id.id), | 
				
			|||
                              ('case_id', '=', self.id)]) | 
				
			|||
 | 
				
			|||
    def action_trial(self): | 
				
			|||
        """Button to add trial""" | 
				
			|||
        self.validation_case_registration() | 
				
			|||
        return { | 
				
			|||
            'type': 'ir.actions.act_window', | 
				
			|||
            'name': 'Trial', | 
				
			|||
            'view_mode': 'form', | 
				
			|||
            'res_model': 'legal.trial', | 
				
			|||
            'context': {'default_case_id': self.id, | 
				
			|||
                        'default_client_id': self.client_id.id} | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
    def _compute_invoice_count(self): | 
				
			|||
        """Calculate the count of invoices""" | 
				
			|||
        for inv in self: | 
				
			|||
            inv.invoice_count = self.env['account.move'].search_count( | 
				
			|||
                [('case_ref', '=', self.name)]) | 
				
			|||
 | 
				
			|||
    def get_invoice(self): | 
				
			|||
        """Get the corresponding invoices""" | 
				
			|||
        return { | 
				
			|||
            'name': 'Case Invoice', | 
				
			|||
            'type': 'ir.actions.act_window', | 
				
			|||
            'view_mode': 'tree,form', | 
				
			|||
            'res_model': 'account.move', | 
				
			|||
            'domain': [('case_ref', '=', self.name)], | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
    def get_evidence(self): | 
				
			|||
        """Returns the evidences""" | 
				
			|||
        evidence_ids_list = self.env['legal.evidence']. \ | 
				
			|||
            search([('client_id', '=', self.client_id.id), | 
				
			|||
                    ('case_id', '=', self.id)]).ids | 
				
			|||
        return { | 
				
			|||
            'type': 'ir.actions.act_window', | 
				
			|||
            'name': 'Evidence', | 
				
			|||
            'view_mode': 'tree,form', | 
				
			|||
            'res_model': 'legal.evidence', | 
				
			|||
            'domain': [('id', 'in', evidence_ids_list)], | 
				
			|||
            'context': "{'create': False}" | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
    def get_trial(self): | 
				
			|||
        """Returns the Trials""" | 
				
			|||
        trial_ids_list = self.env['legal.trial']. \ | 
				
			|||
            search([('client_id', '=', self.client_id.id), | 
				
			|||
                    ('case_id', '=', self.id)]).ids | 
				
			|||
        return { | 
				
			|||
            'type': 'ir.actions.act_window', | 
				
			|||
            'name': 'Trial', | 
				
			|||
            'view_mode': 'tree,form', | 
				
			|||
            'res_model': 'legal.trial', | 
				
			|||
            'domain': [('id', 'in', trial_ids_list)], | 
				
			|||
            'context': "{'create': False}" | 
				
			|||
        } | 
				
			|||
@ -0,0 +1,34 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: MOHAMMED DILSHAD TK (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import fields, models | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class CaseSitting(models.Model): | 
				
			|||
    """Create case sitting""" | 
				
			|||
    _name = 'case.sitting' | 
				
			|||
    _description = 'Case Sitting"' | 
				
			|||
 | 
				
			|||
    date = fields.Date('Date', help='Date') | 
				
			|||
    details = fields.Text('Details', help='Details of sittings') | 
				
			|||
    contact = fields.Char('Contact', help="Name of contact person") | 
				
			|||
    done = fields.Boolean('Done', help="Is the sitting is completed or not") | 
				
			|||
    case_id = fields.Many2one('case.registration', string='Connecting Field') | 
				
			|||
@ -0,0 +1,32 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: MOHAMMED DILSHAD TK (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import fields, models | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class CaseVictim(models.Model): | 
				
			|||
    """Create victim""" | 
				
			|||
    _name = 'case.victim' | 
				
			|||
    _description = 'Case Victim' | 
				
			|||
 | 
				
			|||
    name = fields.Char('Name', help='Victim Name') | 
				
			|||
    contact = fields.Char('Contact No', help='Contact') | 
				
			|||
    registration_id = fields.Many2one('case.registration') | 
				
			|||
@ -0,0 +1,33 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: MOHAMMED DILSHAD TK (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import fields, models | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class HrEmployee(models.Model): | 
				
			|||
    """To create lawyers""" | 
				
			|||
    _inherit = 'hr.employee' | 
				
			|||
 | 
				
			|||
    is_lawyer = fields.Boolean("Is Lawyer", help='Is this employee is a lawyer') | 
				
			|||
    wage_per_trial = fields.Integer("Wage Per Trial", help='Wage per trial') | 
				
			|||
    wage_per_case = fields.Integer("Wage Per Case", help='Wage per Case') | 
				
			|||
    not_available = fields.Boolean('Not Available', default=False, | 
				
			|||
                                   help='Lawyer Unavailable') | 
				
			|||
@ -0,0 +1,53 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: MOHAMMED DILSHAD TK (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import api, fields, models, _ | 
				
			|||
from odoo.exceptions import UserError | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class LegalCourt(models.Model): | 
				
			|||
    """Creation of legal court""" | 
				
			|||
    _name = 'legal.court' | 
				
			|||
    _description = 'legal court' | 
				
			|||
 | 
				
			|||
    name = fields.Char("Name", required=True, help='Name') | 
				
			|||
    judge_id = fields.Many2one('res.partner', | 
				
			|||
                               domain="[('is_judge', '=', True)," | 
				
			|||
                                      "('judge_unavailable', '=',False)]", | 
				
			|||
                               string='Judge', | 
				
			|||
                               help='Judges are available in the court') | 
				
			|||
 | 
				
			|||
    @api.onchange('judge_id') | 
				
			|||
    def _onchange_judge_id(self): | 
				
			|||
        """get judges""" | 
				
			|||
        self.judge_id.is_judge = True | 
				
			|||
        self.judge_id.judge_unavailable = True | 
				
			|||
 | 
				
			|||
    @api.ondelete(at_uninstall=False) | 
				
			|||
    def _unlink_except_draft_or_cancel(self): | 
				
			|||
        """ Prevent the deletion of a court if it is used in any cases. """ | 
				
			|||
        cases = self.sudo().env['case.registration'].search_count([ | 
				
			|||
            ('court_id', 'in', self.ids), | 
				
			|||
            ('state', 'not in', ['draft']) | 
				
			|||
        ]) | 
				
			|||
        if cases: | 
				
			|||
            raise UserError(_("You can not delete a court, " | 
				
			|||
                              "because it is used in case")) | 
				
			|||
@ -0,0 +1,78 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: LAJINA.K.V (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import api, fields, models, _ | 
				
			|||
from odoo.exceptions import UserError | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class LegalEvidence(models.Model): | 
				
			|||
    """Creation of legal evidence""" | 
				
			|||
    _name = 'legal.evidence' | 
				
			|||
    _description = 'legal evidence' | 
				
			|||
    _inherit = ['mail.thread', 'mail.activity.mixin'] | 
				
			|||
 | 
				
			|||
    name = fields.Char('Reference', copy=False, readonly=True, | 
				
			|||
                       default=lambda x: _('New')) | 
				
			|||
    case_id = fields.Many2one("case.registration", "Case", | 
				
			|||
                              help='Name for cases', | 
				
			|||
                              required=True, | 
				
			|||
                              domain="[('state', 'not in'," | 
				
			|||
                                     "['won', 'lost','invoiced'])]") | 
				
			|||
    in_favor_id = fields.Many2one("res.partner", string="In Favor", | 
				
			|||
                                  help=' Name of in favor for the evidence', | 
				
			|||
                                  required=True) | 
				
			|||
    client_id = fields.Many2one(related="case_id.client_id", string="Client", | 
				
			|||
                                help='Clients for the evidence') | 
				
			|||
    description = fields.Text(help='Description of evidence') | 
				
			|||
    attachment_count = fields.Integer(compute='_compute_attachment_count', | 
				
			|||
                                      help="Count of attachments") | 
				
			|||
 | 
				
			|||
    @api.model | 
				
			|||
    def create(self, vals): | 
				
			|||
        """Generate Sequence For Evidence""" | 
				
			|||
        if vals.get('name', 'New') == 'New': | 
				
			|||
            vals['name'] = self.env['ir.sequence'].next_by_code( | 
				
			|||
                'case_evidence') or 'New' | 
				
			|||
        return super(LegalEvidence, self).create(vals) | 
				
			|||
 | 
				
			|||
    @api.ondelete(at_uninstall=False) | 
				
			|||
    def _unlink_except_draft_or_cancel(self): | 
				
			|||
        """ Records can't be deleted""" | 
				
			|||
        raise UserError(_("You can not delete a evidence")) | 
				
			|||
 | 
				
			|||
    def get_evidence_attachments(self): | 
				
			|||
        """Get the corresponding attachments of evidence""" | 
				
			|||
        return { | 
				
			|||
            'type': 'ir.actions.act_window', | 
				
			|||
            'name': 'Attachments', | 
				
			|||
            'view_mode': 'kanban,form', | 
				
			|||
            'res_model': 'ir.attachment', | 
				
			|||
            'domain': [('res_id', '=', self.id), | 
				
			|||
                       ('res_model', '=', self._name)], | 
				
			|||
            'context': "{'create': False}" | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
    def _compute_attachment_count(self): | 
				
			|||
        """Compute the count of attachments""" | 
				
			|||
        for attachment in self: | 
				
			|||
            attachment.attachment_count = self.env['ir.attachment']. \ | 
				
			|||
                sudo().search_count([('res_id', '=', self.id), | 
				
			|||
                                     ('res_model', '=', self._name)]) | 
				
			|||
@ -0,0 +1,65 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: LAJINA.K.V (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import api, fields, models, _ | 
				
			|||
from odoo.exceptions import UserError | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class LegalTrial(models.Model): | 
				
			|||
    """Creation of legal trial""" | 
				
			|||
    _name = 'legal.trial' | 
				
			|||
    _inherit = ['mail.thread', 'mail.activity.mixin'] | 
				
			|||
    _description = 'Legal Trial' | 
				
			|||
 | 
				
			|||
    name = fields.Char("Name", readonly=True, default=lambda self: _('New'), | 
				
			|||
                       help='Trial number') | 
				
			|||
    case_id = fields.Many2one('case.registration', string="Case", | 
				
			|||
                              help='Corresponding case', | 
				
			|||
                              required=True, | 
				
			|||
                              domain="[('state', 'not in'," | 
				
			|||
                                     "['won', 'lost', 'invoiced'])]") | 
				
			|||
    client_id = fields.Many2one(related="case_id.client_id", string="Client", | 
				
			|||
                                readonly=False, required=True, | 
				
			|||
                                help='Clients') | 
				
			|||
    trial_date = fields.Datetime("Trial Date", help='Date for trial', | 
				
			|||
                                 required=True) | 
				
			|||
    judge_id = fields.Many2one(related="case_id.judge_id", string="Judge", | 
				
			|||
                               readonly=False, help="Judge for " | 
				
			|||
                                                    "corresponding case") | 
				
			|||
    court_id = fields.Many2one(related="case_id.court_id", string="Court", | 
				
			|||
                               readonly=False, help="Court for " | 
				
			|||
                                                    "corresponding case") | 
				
			|||
    description = fields.Html() | 
				
			|||
    is_invoiced = fields.Boolean('is invoiced', help="Is trial invoiced", | 
				
			|||
                                 default=False) | 
				
			|||
 | 
				
			|||
    @api.model | 
				
			|||
    def create(self, vals): | 
				
			|||
        """Generate Sequence For Evidence""" | 
				
			|||
        if vals.get('name', 'New') == 'New': | 
				
			|||
            vals['name'] = self.env['ir.sequence'].next_by_code( | 
				
			|||
                'legal_trial') or 'New' | 
				
			|||
        return super(LegalTrial, self).create(vals) | 
				
			|||
 | 
				
			|||
    @api.ondelete(at_uninstall=False) | 
				
			|||
    def _unlink_except_draft_or_cancel(self): | 
				
			|||
        """ Records can't be deleted""" | 
				
			|||
        raise UserError(_("You can not delete a trial")) | 
				
			|||
@ -0,0 +1,31 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: LAJINA.K.V (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import fields, models | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class ResPartner(models.Model): | 
				
			|||
    """Inherit res partner""" | 
				
			|||
    _inherit = 'res.partner' | 
				
			|||
 | 
				
			|||
    is_judge = fields.Boolean('Is Judge', help='Is he a Judge') | 
				
			|||
    judge_unavailable = fields.Boolean(default=False, | 
				
			|||
                                       help="Check the availability of judge") | 
				
			|||
@ -0,0 +1,25 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: LAJINA.K.V (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from . import case_registration_form_report | 
				
			|||
from . import case_registration_report | 
				
			|||
from . import legal_evidence_report | 
				
			|||
from . import legal_trial_report | 
				
			|||
@ -0,0 +1,43 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: LAJINA.K.V (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import models | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class LegalCasePdfDocumentReport(models.AbstractModel): | 
				
			|||
    """Case registration report""" | 
				
			|||
    _name = 'report.legal_case_management.report_case_register_document' | 
				
			|||
    _description = "Report For Case Registration" | 
				
			|||
 | 
				
			|||
    def _get_report_values(self, docids, data=None): | 
				
			|||
        """Return the Report Values""" | 
				
			|||
        case_record = self.env['case.registration'].browse(docids) | 
				
			|||
        evidences = self.env['legal.evidence']. \ | 
				
			|||
            search([('client_id', '=', case_record.client_id.id), | 
				
			|||
                    ('case_id', '=', case_record.id)]) | 
				
			|||
        trials = self.env['legal.trial']. \ | 
				
			|||
            search([('client_id', '=', case_record.client_id.id), | 
				
			|||
                    ('case_id', '=', case_record.id)]) | 
				
			|||
        return { | 
				
			|||
            'case_record': case_record, | 
				
			|||
            'evidence': evidences, | 
				
			|||
            'trial': trials | 
				
			|||
        } | 
				
			|||
@ -0,0 +1,83 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <!--  Report Template For Case registration form --> | 
				
			|||
    <template id="report_case_register_document"> | 
				
			|||
        <t t-call="web.html_container"> | 
				
			|||
            <t t-call="web.external_layout"> | 
				
			|||
                <div> | 
				
			|||
                    <t t-set="address"> | 
				
			|||
                        <span class="fw-bold">Client Details</span> | 
				
			|||
                        <br/> | 
				
			|||
                        <div t-field="case_record.client_id" | 
				
			|||
                             t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": True}'/> | 
				
			|||
                        <p t-if="case_record.client_id.vat"> | 
				
			|||
                            <t | 
				
			|||
                                    t-out="case_record.company_id.account_fiscal_country_id.vat_label or 'Tax ID'"/> | 
				
			|||
                            : | 
				
			|||
                            <span t-field="case_record.client_id.vat"/> | 
				
			|||
                        </p> | 
				
			|||
                    </t> | 
				
			|||
                </div> | 
				
			|||
                <br/> | 
				
			|||
                <div class="page"> | 
				
			|||
                    <div class="oe_structure"/> | 
				
			|||
                    <div class="text-center"> | 
				
			|||
                        <h2>Legal Case Report</h2> | 
				
			|||
                    </div> | 
				
			|||
                    <h2 class="mt-16"> | 
				
			|||
                        <span>Case :</span> | 
				
			|||
                        <span t-field="case_record.name"/> | 
				
			|||
                    </h2> | 
				
			|||
                    <table class="table table-bordered" | 
				
			|||
                           style="table-layout: fixed;"> | 
				
			|||
                        <thead> | 
				
			|||
                            <tr style="font-size: 22px;font-weight:bold;"> | 
				
			|||
                                <th t-if="case_record.case_category_id">Case | 
				
			|||
                                    Category | 
				
			|||
                                </th> | 
				
			|||
                                <th t-if="case_record.lawyer_id">Lawyer</th> | 
				
			|||
                                <th t-if="evidence">Evidence</th> | 
				
			|||
                                <th t-if="trial">Trial</th> | 
				
			|||
                                <th t-if="case_record.evidence_count">Evidence | 
				
			|||
                                    Count | 
				
			|||
                                </th> | 
				
			|||
                                <th t-if="case_record.trial_count">Trial Count | 
				
			|||
                                </th> | 
				
			|||
                                <th t-if="case_record.state">State</th> | 
				
			|||
                            </tr> | 
				
			|||
                        </thead> | 
				
			|||
                        <tr style="font-size: 20px;"> | 
				
			|||
                            <td t-if="case_record.case_category_id"> | 
				
			|||
                                <span t-field="case_record.case_category_id"/> | 
				
			|||
                            </td> | 
				
			|||
                            <td t-if="case_record.lawyer_id"> | 
				
			|||
                                <span t-field="case_record.lawyer_id.name"/> | 
				
			|||
                            </td> | 
				
			|||
                            <td t-if="evidence"> | 
				
			|||
                                <t t-foreach="evidence" t-as="evidence"> | 
				
			|||
                                    <span t-field="evidence.name"/> | 
				
			|||
                                </t> | 
				
			|||
                            </td> | 
				
			|||
                            <td t-if="trial"> | 
				
			|||
                                <t t-foreach="trial" t-as="trial"> | 
				
			|||
                                    <span t-field="trial.name"/> | 
				
			|||
                                </t> | 
				
			|||
                            </td> | 
				
			|||
                            <td t-if="case_record.evidence_count"> | 
				
			|||
                                <span t-field="case_record.evidence_count"/> | 
				
			|||
                            </td> | 
				
			|||
                            <td t-if="case_record.trial_count"> | 
				
			|||
                                <span t-field="case_record.trial_count"/> | 
				
			|||
                            </td> | 
				
			|||
                            <td t-if="case_record.state"> | 
				
			|||
                                <t t-esc="dict (case_record.fields_get | 
				
			|||
                                    (allfields = ['state']) ['state'] | 
				
			|||
                                    ['selection']) [case_record.state]"/> | 
				
			|||
                            </td> | 
				
			|||
                        </tr> | 
				
			|||
                    </table> | 
				
			|||
                </div> | 
				
			|||
            </t> | 
				
			|||
        </t> | 
				
			|||
    </template> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,271 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: LAJINA.K.V (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import models | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class LegalCasePdfReport(models.AbstractModel): | 
				
			|||
    """Report of module""" | 
				
			|||
    _name = 'report.legal_case_management.report_legal_case_details' | 
				
			|||
    _description = "Report For Case Registration" | 
				
			|||
 | 
				
			|||
    def _get_report_values(self, docids, data=None): | 
				
			|||
        """Get data to the pdf""" | 
				
			|||
        query = """select case_reg.name as case_name,case_reg.start_date as start_date, | 
				
			|||
         case_reg.end_date as end_date, res_client.name as client, | 
				
			|||
        lawyer.name as lawyer, court.name as court,res_judge.name as judge, | 
				
			|||
         INITCAP(case_reg.payment_method) as payment_method, INITCAP(case_reg.state) as state from case_registration case_reg  | 
				
			|||
        LEFT JOIN res_partner res_client ON case_reg.client_id = res_client.id  | 
				
			|||
        LEFT JOIN res_partner res_judge  | 
				
			|||
        ON case_reg.judge_id= res_judge.id  LEFT JOIN | 
				
			|||
        hr_employee lawyer ON lawyer.id = case_reg.lawyer_id  LEFT JOIN | 
				
			|||
        legal_court court ON case_reg.court_id = court.id""" | 
				
			|||
        if data['lawyer_id'] and data['client_id'] and data['court_id'] \ | 
				
			|||
                and data['judge_id'] and data['start_date'] and data['end_date'] \ | 
				
			|||
                and data['payment_method'] and data['state']: | 
				
			|||
            query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND | 
				
			|||
                                    court.name ='%s' AND res_judge.name = '%s' AND  | 
				
			|||
                                     case_reg.start_date = '%s' AND  | 
				
			|||
                                     case_reg.end_date = '%s' AND  | 
				
			|||
                                     case_reg.payment_method = '%s' | 
				
			|||
                                    AND case_reg.state = '%s' """ \ | 
				
			|||
                     % (data['lawyer_id'], data['client_id'], data['court_id'], | 
				
			|||
                        data['judge_id'], data['start_date'], data['end_date'], | 
				
			|||
                        data['payment_method'], data['state']) | 
				
			|||
        elif data['lawyer_id'] and data['client_id'] and data['court_id'] \ | 
				
			|||
                and data['judge_id'] and data['start_date'] and \ | 
				
			|||
                data['end_date'] and data['payment_method']: | 
				
			|||
            query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND | 
				
			|||
                         court.name ='%s' AND res_judge.name = '%s' AND  | 
				
			|||
                         case_reg.start_date = '%s' AND case_reg.end_date = '%s'  | 
				
			|||
                         AND case_reg.payment_method = '%s' """ \ | 
				
			|||
                     % (data['lawyer_id'], data['client_id'], data['court_id'], | 
				
			|||
                        data['judge_id'], data['start_date'], data['end_date'], | 
				
			|||
                        data['payment_method']) | 
				
			|||
        elif data['lawyer_id'] and data['client_id'] and data['court_id'] \ | 
				
			|||
                and data['judge_id'] and data['start_date'] and data['end_date']: | 
				
			|||
            query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND | 
				
			|||
                         court.name ='%s' AND res_judge.name = '%s' AND  | 
				
			|||
                         case_reg.start_date = '%s' AND  | 
				
			|||
                         case_reg.end_date = '%s' """ % (data['lawyer_id'], | 
				
			|||
                                                         data['client_id'], | 
				
			|||
                                                         data['court_id'], | 
				
			|||
                                                         data['judge_id'], | 
				
			|||
                                                         data['start_date'], | 
				
			|||
                                                         data['end_date']) | 
				
			|||
        elif data['lawyer_id'] and data['client_id'] and data['court_id'] \ | 
				
			|||
                and data['judge_id'] and data['start_date']: | 
				
			|||
            query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND | 
				
			|||
                         court.name ='%s' AND res_judge.name = '%s' AND  | 
				
			|||
                         case_reg.start_date = '%s'""" % (data['lawyer_id'], | 
				
			|||
                                                          data['client_id'], | 
				
			|||
                                                          data['court_id'], | 
				
			|||
                                                          data['judge_id'], | 
				
			|||
                                                          data['start_date']) | 
				
			|||
        elif data['lawyer_id'] and data['client_id'] and data['court_id'] \ | 
				
			|||
                and data['judge_id']: | 
				
			|||
            query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND | 
				
			|||
                         court.name ='%s' AND res_judge.name = '%s'""" \ | 
				
			|||
                     % (data['lawyer_id'], | 
				
			|||
                        data['client_id'], | 
				
			|||
                        data['court_id'], | 
				
			|||
                        data['judge_id']) | 
				
			|||
 | 
				
			|||
        elif data['lawyer_id'] and data['client_id'] and data['court_id']: | 
				
			|||
            query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND | 
				
			|||
                        court.name ='%s'""" % (data['lawyer_id'], | 
				
			|||
                                               data['client_id'], | 
				
			|||
                                               data['court_id']) | 
				
			|||
        elif data['lawyer_id'] and data['client_id'] and data['judge_id']: | 
				
			|||
            query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND | 
				
			|||
                               res_judge.name ='%s'""" % (data['lawyer_id'], | 
				
			|||
                                                          data['client_id'], | 
				
			|||
                                                          data['judge_id']) | 
				
			|||
 | 
				
			|||
        elif data['lawyer_id'] and data['client_id'] and data['start_date']: | 
				
			|||
            query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND | 
				
			|||
                                     case_reg.start_date ='%s'""" \ | 
				
			|||
                     % (data['lawyer_id'], data['client_id'], | 
				
			|||
                        data['start_date']) | 
				
			|||
        elif data['lawyer_id'] and data['client_id'] and data['end_date']: | 
				
			|||
            query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND | 
				
			|||
                                               case_reg.end_date ='%s'""" \ | 
				
			|||
                     % (data['lawyer_id'], data['client_id'], | 
				
			|||
                        data['start_date']) | 
				
			|||
        elif data['lawyer_id'] and data['client_id'] and data['payment_method']: | 
				
			|||
            query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND | 
				
			|||
                            case_reg.payment_method ='%s'""" \ | 
				
			|||
                     % (data['lawyer_id'], data['client_id'], | 
				
			|||
                        data['payment_method']) | 
				
			|||
        elif data['lawyer_id'] and data['client_id'] and data['state']: | 
				
			|||
            query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND | 
				
			|||
                                   case_reg.state ='%s'""" % (data['lawyer_id'], | 
				
			|||
                                                              data['client_id'], | 
				
			|||
                                                              data['state']) | 
				
			|||
        elif data['lawyer_id'] and data['client_id']: | 
				
			|||
            query += f""" WHERE lawyer.name ='%s' AND | 
				
			|||
                          res_client.name='%s'""" % (data['lawyer_id'], | 
				
			|||
                                                     data['client_id']) | 
				
			|||
        elif data['lawyer_id'] and data['judge_id']: | 
				
			|||
            query += f""" WHERE lawyer.name ='%s' AND | 
				
			|||
                          res_judge.name='%s'""" % (data['lawyer_id'], | 
				
			|||
                                                    data['judge_id']) | 
				
			|||
 | 
				
			|||
        elif data['lawyer_id'] and data['court_id']: | 
				
			|||
            query += f""" WHERE lawyer.name ='%s' AND | 
				
			|||
                                 court.name='%s'""" % (data['lawyer_id'], | 
				
			|||
                                                       data['court_id']) | 
				
			|||
        elif data['lawyer_id'] and data['start_date']: | 
				
			|||
            query += f""" WHERE lawyer.name ='%s' AND | 
				
			|||
                                 case_reg.start_date='%s'""" \ | 
				
			|||
                     % (data['lawyer_id'], data['start_date']) | 
				
			|||
        elif data['lawyer_id'] and data['end_date']: | 
				
			|||
            query += f""" WHERE lawyer.name ='%s' AND | 
				
			|||
                                      case_reg.end_date='%s'""" \ | 
				
			|||
                     % (data['lawyer_id'], data['end_date']) | 
				
			|||
        elif data['lawyer_id'] and data['payment_method']: | 
				
			|||
            query += f""" WHERE lawyer.name ='%s' AND | 
				
			|||
                                      case_reg.payment_method='%s'""" \ | 
				
			|||
                     % (data['lawyer_id'], data['payment_method']) | 
				
			|||
        elif data['lawyer_id'] and data['state']: | 
				
			|||
            query += f""" WHERE lawyer.name ='%s' AND | 
				
			|||
                         case_reg.state='%s'""" % (data['lawyer_id'], | 
				
			|||
                                                   data['state']) | 
				
			|||
        elif data['client_id'] and data['judge_id']: | 
				
			|||
            query += f""" WHERE res_client.name ='%s' AND | 
				
			|||
                         res_judge.name='%s'""" % (data['client_id'], | 
				
			|||
                                                   data['judge_id']) | 
				
			|||
        elif data['client_id'] and data['court_id']: | 
				
			|||
            query += f""" WHERE res_client.name ='%s' AND | 
				
			|||
                         court.name='%s'""" % (data['client_id'], | 
				
			|||
                                               data['court_id']) | 
				
			|||
        elif data['client_id'] and data['start_date']: | 
				
			|||
            query += f""" WHERE  res_client.name ='%s' AND | 
				
			|||
                         case_reg.start_date='%s'""" % (data['client_id'], | 
				
			|||
                                                        data['start_date']) | 
				
			|||
        elif data['client_id'] and data['end_date']: | 
				
			|||
            query += f""" WHERE  res_client.name ='%s' AND | 
				
			|||
                         case_reg.end_date='%s'""" % (data['client_id'], | 
				
			|||
                                                      data['end_date']) | 
				
			|||
        elif data['client_id'] and data['payment_method']: | 
				
			|||
            query += f""" WHERE  res_client.name ='%s' AND | 
				
			|||
                         case_reg.payment_method='%s'""" \ | 
				
			|||
                     % (data['client_id'], data['payment_method']) | 
				
			|||
        elif data['client_id'] and data['state']: | 
				
			|||
            query += f""" WHERE  res_client.name ='%s' AND | 
				
			|||
                         case_reg.state='%s'""" % (data['client_id'], | 
				
			|||
                                                   data['state']) | 
				
			|||
        elif data['judge_id'] and data['court_id']: | 
				
			|||
            query += f""" WHERE  res_judge.name ='%s' AND | 
				
			|||
                         court.name='%s'""" % (data['judge_id'], | 
				
			|||
                                               data['court_id']) | 
				
			|||
        elif data['judge_id'] and data['start_date']: | 
				
			|||
            query += f""" WHERE  res_judge.name ='%s' AND | 
				
			|||
                                case_reg.start_date='%s'""" \ | 
				
			|||
                     % (data['judge_id'], data['start_date']) | 
				
			|||
        elif data['judge_id'] and data['end_date']: | 
				
			|||
            query += f""" WHERE  res_judge.name ='%s' AND | 
				
			|||
                                case_reg.end_date='%s'""" % (data['judge_id'], | 
				
			|||
                                                             data['end_date']) | 
				
			|||
        elif data['judge_id'] and data['payment_method']: | 
				
			|||
            query += f""" WHERE  res_judge.name ='%s' AND | 
				
			|||
                                case_reg.payment_method='%s'""" \ | 
				
			|||
                     % (data['judge_id'], data['payment_method']) | 
				
			|||
        elif data['judge_id'] and data['state']: | 
				
			|||
            query += f""" WHERE  res_judge.name ='%s' AND | 
				
			|||
                            case_reg.state='%s'""" % (data['judge_id'], | 
				
			|||
                                                      data['state']) | 
				
			|||
        elif data['court_id'] and data['start_date']: | 
				
			|||
            query += f""" WHERE  court.name ='%s' AND | 
				
			|||
                                   case_reg.start_date='%s'""" \ | 
				
			|||
                     % (data['court_id'], data['start_date']) | 
				
			|||
        elif data['court_id'] and data['end_date']: | 
				
			|||
            query += f""" WHERE  court.name ='%s' AND | 
				
			|||
                                          case_reg.end_date='%s'""" \ | 
				
			|||
                     % (data['court_id'], data['end_date']) | 
				
			|||
        elif data['court_id'] and data['payment_method']: | 
				
			|||
            query += f""" WHERE  court.name ='%s' AND | 
				
			|||
                          case_reg.payment_method='%s'""" \ | 
				
			|||
                     % (data['court_id'], data['payment_method']) | 
				
			|||
        elif data['court_id'] and data['state']: | 
				
			|||
            query += f""" WHERE court.name ='%s' AND | 
				
			|||
                                 case_reg.state='%s'""" % (data['court_id'], | 
				
			|||
                                                           data['state']) | 
				
			|||
        elif data['start_date'] and data['end_date']: | 
				
			|||
            query += f""" WHERE case_reg.start_date ='%s' AND | 
				
			|||
                                        case_reg.end_date='%s'""" \ | 
				
			|||
                     % (data['start_date'], data['end_date']) | 
				
			|||
        elif data['start_date'] and data['payment_method']: | 
				
			|||
            query += f""" WHERE case_reg.start_date ='%s' AND | 
				
			|||
                                        case_reg.payment_method='%s'""" \ | 
				
			|||
                     % (data['start_date'], data['payment_method']) | 
				
			|||
        elif data['start_date'] and data['state']: | 
				
			|||
            query += f""" WHERE case_reg.start_date ='%s' AND | 
				
			|||
                                        case_reg.state='%s'""" \ | 
				
			|||
                     % (data['start_date'], data['state']) | 
				
			|||
        elif data['start_date'] and data['payment_method']: | 
				
			|||
            query += f""" WHERE case_reg.start_date ='%s' AND | 
				
			|||
                                        case_reg.payment_method='%s'""" \ | 
				
			|||
                     % (data['start_date'], data['payment_method']) | 
				
			|||
        elif data['end_date'] and data['payment_method']: | 
				
			|||
            query += f""" WHERE case_reg.end_date ='%s' AND | 
				
			|||
                        case_reg.payment_method='%s'""" \ | 
				
			|||
                     % (data['end_date'], data['payment_method']) | 
				
			|||
        elif data['end_date'] and data['state']: | 
				
			|||
            query += f""" WHERE case_reg.end_date ='%s' AND | 
				
			|||
                         case_reg.state='%s'""" % (data['end_date'], | 
				
			|||
                                                   data['state']) | 
				
			|||
        elif data['payment_method'] and data['state']: | 
				
			|||
            query += f""" WHERE case_reg.payment_method='%s' AND | 
				
			|||
                         case_reg.state='%s'""" % (data['payment_method'], | 
				
			|||
                                                   data['state']) | 
				
			|||
        elif data['lawyer_id']: | 
				
			|||
            query += f""" WHERE lawyer.name ='%s' """ \ | 
				
			|||
                     % (data['lawyer_id']) | 
				
			|||
 | 
				
			|||
        elif data['client_id']: | 
				
			|||
            query += f""" WHERE res_client.name ='%s' """ \ | 
				
			|||
                     % (data['client_id']) | 
				
			|||
 | 
				
			|||
        elif data['judge_id']: | 
				
			|||
            query += f""" WHERE res_judge.name ='%s' """ \ | 
				
			|||
                     % (data['judge_id']) | 
				
			|||
 | 
				
			|||
        elif data['court_id']: | 
				
			|||
            query += f""" WHERE court.name ='%s' """ \ | 
				
			|||
                     % (data['court_id']) | 
				
			|||
        elif data['start_date']: | 
				
			|||
            query += f""" WHERE case_reg.start_date ='%s' """ \ | 
				
			|||
                     % (data['start_date']) | 
				
			|||
        elif data['end_date']: | 
				
			|||
            query += f""" WHERE case_reg.end_date ='%s' """ \ | 
				
			|||
                     % (data['end_date']) | 
				
			|||
        elif data['payment_method']: | 
				
			|||
            query += f""" WHERE case_reg.payment_method ='%s' """ \ | 
				
			|||
                     % (data['payment_method']) | 
				
			|||
        elif data['state']: | 
				
			|||
            query += f""" WHERE case_reg.state ='%s' """ \ | 
				
			|||
                     % (data['state']) | 
				
			|||
        self.env.cr.execute(query) | 
				
			|||
        return { | 
				
			|||
            'data': data, | 
				
			|||
            'docs': self.env.cr.dictfetchall() | 
				
			|||
        } | 
				
			|||
@ -0,0 +1,47 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Actions For Pdf Report--> | 
				
			|||
    <record id="legal_case_wizard_action_report" model="ir.actions.report"> | 
				
			|||
        <field name="name">Legal Case Report</field> | 
				
			|||
        <field name="model">legal.case.report</field> | 
				
			|||
        <field name="report_type">qweb-pdf</field> | 
				
			|||
        <field name="report_name">legal_case_management.report_legal_case_details</field> | 
				
			|||
        <field name="report_file">legal_case_management.report_legal_case_details</field> | 
				
			|||
        <field name="binding_model_id" ref="model_legal_case_report"/> | 
				
			|||
        <field name="binding_type">report</field> | 
				
			|||
    </record> | 
				
			|||
    <record id="case_registration_action_report" model="ir.actions.report"> | 
				
			|||
        <field name="name">Case Report</field> | 
				
			|||
        <field name="model">case.registration</field> | 
				
			|||
        <field name="report_type">qweb-pdf</field> | 
				
			|||
        <field name="report_name">legal_case_management.report_case_register_document | 
				
			|||
        </field> | 
				
			|||
        <field name="report_file">legal_case_management.report_case_register_document | 
				
			|||
        </field> | 
				
			|||
        <field name="binding_model_id" ref="model_case_registration"/> | 
				
			|||
        <field name="binding_view_types">form</field> | 
				
			|||
        <field name="binding_type">report</field> | 
				
			|||
    </record> | 
				
			|||
    <record id="legal_evidence_action_report" model="ir.actions.report"> | 
				
			|||
        <field name="name">Evidence Report</field> | 
				
			|||
        <field name="model">legal.evidence</field> | 
				
			|||
        <field name="report_type">qweb-pdf</field> | 
				
			|||
        <field name="report_name">legal_case_management.report_case_evidence_document | 
				
			|||
        </field> | 
				
			|||
        <field name="report_file">legal_case_management.report_case_evidence_document | 
				
			|||
        </field> | 
				
			|||
        <field name="binding_model_id" ref="model_legal_evidence"/> | 
				
			|||
        <field name="binding_type">report</field> | 
				
			|||
        <field name="binding_view_types">form</field> | 
				
			|||
    </record> | 
				
			|||
    <record id="legal_trial_action_report" model="ir.actions.report"> | 
				
			|||
        <field name="name">Trial Report</field> | 
				
			|||
        <field name="model">legal.trial</field> | 
				
			|||
        <field name="report_type">qweb-pdf</field> | 
				
			|||
        <field name="report_name">legal_case_management.report_case_trial_document</field> | 
				
			|||
        <field name="report_file">legal_case_management.report_case_trial_document</field> | 
				
			|||
        <field name="binding_model_id" ref="model_legal_trial"/> | 
				
			|||
        <field name="binding_type">report</field> | 
				
			|||
        <field name="binding_view_types">form</field> | 
				
			|||
    </record> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,76 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Report Template For Case Registration Details--> | 
				
			|||
    <template id="report_legal_case_details"> | 
				
			|||
        <t t-call="web.html_container"> | 
				
			|||
            <t t-call="web.external_layout"> | 
				
			|||
                <div class="page"> | 
				
			|||
                    <div class="text-center"> | 
				
			|||
                        <h2>Legal Case Report</h2> | 
				
			|||
                    </div> | 
				
			|||
                    <br/> | 
				
			|||
                    <br/> | 
				
			|||
                    <t t-set="i" t-value="1"/> | 
				
			|||
                    <t t-if="docs"> | 
				
			|||
                        <table class="table table-bordered" | 
				
			|||
                               style="table-layout: fixed"> | 
				
			|||
                            <thead> | 
				
			|||
                                <th>Sl.No</th> | 
				
			|||
                                <th>Case No</th> | 
				
			|||
                                <th t-if="client_id">Client</th> | 
				
			|||
                                <th t-if="lawyer_id">Lawyer</th> | 
				
			|||
                                <th t-if="court_id">Court</th> | 
				
			|||
                                <th t-if="judge_id">Judge</th> | 
				
			|||
                                <th t-if="start_date">Start Date</th> | 
				
			|||
                                <th t-if="end_date">End Date</th> | 
				
			|||
                                <th t-if="payment_method">Payment Method</th> | 
				
			|||
                                <th t-if="state">State</th> | 
				
			|||
                            </thead> | 
				
			|||
                            <t t-foreach="docs" t-as="case"> | 
				
			|||
                                <tr> | 
				
			|||
                                    <td> | 
				
			|||
 | 
				
			|||
                                        <t t-set="i" t-value="i+1"/> | 
				
			|||
                                    </td> | 
				
			|||
                                    <td> | 
				
			|||
                                        <span t-esc="case['case_name']"/> | 
				
			|||
                                    </td> | 
				
			|||
                                    <td t-if="client_id"> | 
				
			|||
                                        <span t-esc="case['client']"/> | 
				
			|||
                                    </td> | 
				
			|||
                                    <td t-if="lawyer_id"> | 
				
			|||
                                        <span t-esc="case['lawyer']"/> | 
				
			|||
                                    </td> | 
				
			|||
                                    <td t-if="court_id"> | 
				
			|||
                                        <span t-esc="case['court']"/> | 
				
			|||
                                    </td> | 
				
			|||
                                    <td t-if="judge_id"> | 
				
			|||
                                        <span t-esc="case['judge']"/> | 
				
			|||
                                    </td> | 
				
			|||
                                    <td t-if="start_date"> | 
				
			|||
                                        <span t-esc="case['start_date']"/> | 
				
			|||
                                    </td> | 
				
			|||
                                    <td t-if="end_date"> | 
				
			|||
                                        <span t-esc="case['end_date']"/> | 
				
			|||
                                    </td> | 
				
			|||
                                    <td t-if="payment_method"> | 
				
			|||
                                        <span t-esc="case['payment_method']"/> | 
				
			|||
                                    </td> | 
				
			|||
                                    <td t-if="state"> | 
				
			|||
                                        <span t-esc="case['state']"/> | 
				
			|||
                                    </td> | 
				
			|||
                                </tr> | 
				
			|||
                            </t> | 
				
			|||
                        </table> | 
				
			|||
                    </t> | 
				
			|||
                    <t t-else=""> | 
				
			|||
                        <div style="text-align: center;color:#ff0000; | 
				
			|||
                        font-size:50px; font-weight:bold"> | 
				
			|||
                            No Records | 
				
			|||
                        </div> | 
				
			|||
                    </t> | 
				
			|||
                </div> | 
				
			|||
            </t> | 
				
			|||
        </t> | 
				
			|||
    </template> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,35 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: LAJINA.K.V (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import models | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class LegalCasePdfDocumentEvidenceReport(models.AbstractModel): | 
				
			|||
    """Evidence report""" | 
				
			|||
    _name = 'report.legal_case_management.report_case_evidence_document' | 
				
			|||
    _description = "Report For Evidence" | 
				
			|||
 | 
				
			|||
    def _get_report_values(self, docids, data=None): | 
				
			|||
        """Return the  Report Values For Evidence""" | 
				
			|||
        evidence_record = self.env['legal.evidence'].browse(docids) | 
				
			|||
        return { | 
				
			|||
            'evidence': evidence_record | 
				
			|||
        } | 
				
			|||
@ -0,0 +1,50 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Report Template For Evidence For Case--> | 
				
			|||
    <template id="report_case_evidence_document"> | 
				
			|||
        <t t-call="web.html_container"> | 
				
			|||
            <t t-call="web.external_layout"> | 
				
			|||
                <div class="page"> | 
				
			|||
                    <div class="oe_structure"/> | 
				
			|||
                    <div class="text-center"> | 
				
			|||
                        <h2>Case Evidence Report</h2> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
                <br/> | 
				
			|||
                <h2 class="mt-16"> | 
				
			|||
                    <span>Evidence #</span> | 
				
			|||
                    <span t-esc="evidence.name"/> | 
				
			|||
                </h2> | 
				
			|||
                <table class="table table-bordered" | 
				
			|||
                       style="table-layout: fixed;"> | 
				
			|||
                    <thead> | 
				
			|||
                        <tr style="font-size: 22px;font-weight:bold;"> | 
				
			|||
                            <th t-if="evidence.case_id.name">Case</th> | 
				
			|||
                            <th t-if="evidence.client_id.name">Client</th> | 
				
			|||
                            <th t-if="evidence.in_favor_id.name">In Favor</th> | 
				
			|||
                            <th t-if="evidence.description">Description</th> | 
				
			|||
                            <th t-if="evidence.case_id.state">State</th> | 
				
			|||
                        </tr> | 
				
			|||
                    </thead> | 
				
			|||
                    <tr style="font-size: 20px;"> | 
				
			|||
                        <td t-if="evidence.case_id.name"> | 
				
			|||
                            <span t-esc="evidence.case_id.name"/> | 
				
			|||
                        </td> | 
				
			|||
                        <td t-if="evidence.client_id.name"> | 
				
			|||
                            <span t-field="evidence.client_id.name"/> | 
				
			|||
                        </td> | 
				
			|||
                        <td t-if="evidence.in_favor_id.name"> | 
				
			|||
                            <span t-field="evidence.in_favor_id.name"/> | 
				
			|||
                        </td> | 
				
			|||
                        <td t-if="evidence.description"> | 
				
			|||
                            <span t-field="evidence.description"/> | 
				
			|||
                        </td> | 
				
			|||
                        <td t-if="evidence.case_id.state"> | 
				
			|||
                            <span t-field="evidence.case_id.state"/> | 
				
			|||
                        </td> | 
				
			|||
                    </tr> | 
				
			|||
                </table> | 
				
			|||
            </t> | 
				
			|||
        </t> | 
				
			|||
    </template> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,36 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: LAJINA.K.V (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import models | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class LegalCasePdfDocumentTrialReport(models.AbstractModel): | 
				
			|||
    """Trial Report""" | 
				
			|||
    _name = 'report.legal_case_management.report_case_trial_document' | 
				
			|||
    _description = "Report For Trial" | 
				
			|||
 | 
				
			|||
    def _get_report_values(self, docids, data=None): | 
				
			|||
        """Return the Report Values""" | 
				
			|||
        trial_record = self.env['legal.trial'].browse(docids) | 
				
			|||
 | 
				
			|||
        return { | 
				
			|||
            'trial': trial_record, | 
				
			|||
        } | 
				
			|||
@ -0,0 +1,47 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <!--Template For Trials For Case --> | 
				
			|||
    <template id="report_case_trial_document"> | 
				
			|||
        <t t-call="web.html_container"> | 
				
			|||
            <t t-call="web.external_layout"> | 
				
			|||
                <div class="page"> | 
				
			|||
                    <div class="oe_structure"/> | 
				
			|||
 | 
				
			|||
                    <div class="text-center"> | 
				
			|||
                        <h2>Case Trial Report</h2> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
                <br/> | 
				
			|||
                <h2 class="mt-16"> | 
				
			|||
                    <span>Trial #</span> | 
				
			|||
                    <span t-esc="trial.name"/> | 
				
			|||
                </h2> | 
				
			|||
                <table class="table table-bordered" | 
				
			|||
                       style="table-layout: fixed;"> | 
				
			|||
                    <thead> | 
				
			|||
                        <tr style="font-size: 22px;font-weight:bold;"> | 
				
			|||
                            <th t-if="trial.case_id.name">Case</th> | 
				
			|||
                            <th t-if="trial.client_id.name">Client</th> | 
				
			|||
                            <th t-if="trial.trial_date">Trial Date</th> | 
				
			|||
                            <th t-if="trial.case_id.state">State</th> | 
				
			|||
                        </tr> | 
				
			|||
                    </thead> | 
				
			|||
                    <tr style="font-size: 20px;"> | 
				
			|||
                        <td t-if="trial.case_id.name"> | 
				
			|||
                            <span t-esc="trial.case_id.name"/> | 
				
			|||
                        </td> | 
				
			|||
                        <td t-if="trial.client_id.name"> | 
				
			|||
                            <span t-field="trial.client_id.name"/> | 
				
			|||
                        </td> | 
				
			|||
                        <td t-if="trial.trial_date"> | 
				
			|||
                            <span t-field="trial.trial_date"/> | 
				
			|||
                        </td> | 
				
			|||
                        <td t-if="trial.case_id.state"> | 
				
			|||
                            <span t-field="trial.case_id.state"/> | 
				
			|||
                        </td> | 
				
			|||
                    </tr> | 
				
			|||
                </table> | 
				
			|||
            </t> | 
				
			|||
        </t> | 
				
			|||
    </template> | 
				
			|||
</odoo> | 
				
			|||
		
		
			
  | 
@ -0,0 +1,26 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <record id="module_category_legal_case_management" | 
				
			|||
            model="ir.module.category"> | 
				
			|||
        <field name="name">Case Management</field> | 
				
			|||
        <field name="description">Legal Case Management</field> | 
				
			|||
        <field name="sequence">120</field> | 
				
			|||
    </record> | 
				
			|||
    <!--    Groups --> | 
				
			|||
    <record id="legal_case_management_group_clerk" model="res.groups"> | 
				
			|||
        <field name="name">Clerk</field> | 
				
			|||
        <field name="category_id" ref="module_category_legal_case_management"/> | 
				
			|||
    </record> | 
				
			|||
    <record id="legal_case_management_group_lawyer" model="res.groups"> | 
				
			|||
        <field name="name">Lawyer</field> | 
				
			|||
        <field name="category_id" ref="module_category_legal_case_management"/> | 
				
			|||
        <field name="implied_ids" | 
				
			|||
               eval="[(4, ref('legal_case_management.legal_case_management_group_clerk'))]"/> | 
				
			|||
    </record> | 
				
			|||
    <record id="legal_case_management_group_admin" model="res.groups"> | 
				
			|||
        <field name="name">Admin</field> | 
				
			|||
        <field name="category_id" ref="module_category_legal_case_management"/> | 
				
			|||
        <field name="implied_ids" | 
				
			|||
               eval="[(4, ref('legal_case_management.legal_case_management_group_lawyer'))]"/> | 
				
			|||
    </record> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,64 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Access rights For company of case registration model--> | 
				
			|||
    <record id="case_registration_rule_company" model="ir.rule"> | 
				
			|||
        <field name="name">Legal Case: multi-company</field> | 
				
			|||
        <field name="model_id" ref="model_case_registration"/> | 
				
			|||
        <field name="domain_force"> | 
				
			|||
            ['|',('company_id','=',False),('company_id', 'in', company_ids)] | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
    <!--Access Rights For Admin of case registration model --> | 
				
			|||
    <record id="case_registration_rule_admin" model="ir.rule"> | 
				
			|||
        <field name="name">Admin All Document only view Rule</field> | 
				
			|||
        <field name="model_id" ref="model_case_registration"/> | 
				
			|||
        <field name="domain_force">[(1,'=',1)]</field> | 
				
			|||
        <field name="groups" | 
				
			|||
               eval="[(4, ref('legal_case_management.legal_case_management_group_admin'))]"/> | 
				
			|||
    </record> | 
				
			|||
    <!--Access Rights For Lawyer of case registration model--> | 
				
			|||
    <record id="case_registration_rule_lawyer" model="ir.rule"> | 
				
			|||
        <field name="name">Own Case view Rule</field> | 
				
			|||
        <field name="model_id" ref="model_case_registration"/> | 
				
			|||
        <field name="domain_force">[('lawyer_id.user_id','=',user.id)] | 
				
			|||
        </field> | 
				
			|||
        <field name="groups" | 
				
			|||
               eval="[(4, ref('legal_case_management.legal_case_management_group_lawyer'))]"/> | 
				
			|||
    </record> | 
				
			|||
    <!--Access Rights for Admin of legal evidence model--> | 
				
			|||
    <record id="legal_evidence_rule_admin" model="ir.rule"> | 
				
			|||
        <field name="name">Admin All Document only view Rule</field> | 
				
			|||
        <field name="model_id" ref="model_legal_evidence"/> | 
				
			|||
        <field name="domain_force">[(1,'=',1)]</field> | 
				
			|||
        <field name="groups" | 
				
			|||
               eval="[(4, ref('legal_case_management.legal_case_management_group_admin'))]"/> | 
				
			|||
    </record> | 
				
			|||
    <!--Access Rights For Lawyer of legal evidence model--> | 
				
			|||
    <record id="legal_evidence_rule_lawyer" model="ir.rule"> | 
				
			|||
        <field name="name">Own Evidence view Rule</field> | 
				
			|||
        <field name="model_id" ref="model_legal_evidence"/> | 
				
			|||
        <field name="domain_force"> | 
				
			|||
            [('case_id.lawyer_id.user_id','=',user.id)] | 
				
			|||
        </field> | 
				
			|||
        <field name="groups" | 
				
			|||
               eval="[(4, ref('legal_case_management.legal_case_management_group_lawyer'))]"/> | 
				
			|||
    </record> | 
				
			|||
    <!--Access Rights For Admin of legal trial model--> | 
				
			|||
    <record id="legal_trial_rule_admin" model="ir.rule"> | 
				
			|||
        <field name="name">Admin All Document only view Rule</field> | 
				
			|||
        <field name="model_id" ref="model_legal_trial"/> | 
				
			|||
        <field name="domain_force">[(1,'=',1)]</field> | 
				
			|||
        <field name="groups" | 
				
			|||
               eval="[(4, ref('legal_case_management.legal_case_management_group_admin'))]"/> | 
				
			|||
    </record> | 
				
			|||
    <!--Access Rights For Lawyer of legal trial model--> | 
				
			|||
    <record id="legal_trial_rule_lawyer" model="ir.rule"> | 
				
			|||
        <field name="name">Own Trial view Rule</field> | 
				
			|||
        <field name="model_id" ref="model_legal_trial"/> | 
				
			|||
        <field name="domain_force"> | 
				
			|||
            [('case_id.lawyer_id.user_id','=',user.id)] | 
				
			|||
        </field> | 
				
			|||
        <field name="groups" | 
				
			|||
               eval="[(4, ref('legal_case_management.legal_case_management_group_lawyer'))]"/> | 
				
			|||
    </record> | 
				
			|||
</odoo> | 
				
			|||
| 
		 After Width: | Height: | Size: 3.6 KiB  | 
| 
		 After Width: | Height: | Size: 310 B  | 
| 
		 After Width: | Height: | Size: 1.3 KiB  | 
| 
		 After Width: | Height: | Size: 1.4 KiB  | 
| 
		 After Width: | Height: | Size: 576 B  | 
| 
		 After Width: | Height: | Size: 733 B  | 
| 
		 After Width: | Height: | Size: 911 B  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 673 B  | 
| 
		 After Width: | Height: | Size: 878 B  | 
| 
		 After Width: | Height: | Size: 653 B  | 
| 
		 After Width: | Height: | Size: 905 B  | 
| 
		 After Width: | Height: | Size: 839 B  | 
| 
		 After Width: | Height: | Size: 427 B  | 
| 
		 After Width: | Height: | Size: 627 B  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 988 B  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 1.5 KiB  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 1.9 KiB  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 2.1 KiB  | 
| 
		 After Width: | Height: | Size: 4.4 KiB  | 
| 
		 After Width: | Height: | Size: 589 B  | 
| 
		 After Width: | Height: | Size: 3.4 KiB  | 
| 
		 After Width: | Height: | Size: 1.7 KiB  | 
| 
		 After Width: | Height: | Size: 2.3 KiB  | 
| 
		 After Width: | Height: | Size: 967 B  | 
| 
		 After Width: | Height: | Size: 1.6 KiB  | 
| 
		 After Width: | Height: | Size: 3.8 KiB  | 
| 
		 After Width: | Height: | Size: 5.0 KiB  | 
| 
		 After Width: | Height: | Size: 76 KiB  | 
| 
		 After Width: | Height: | Size: 18 KiB  | 
| 
		 After Width: | Height: | Size: 82 KiB  | 
| 
		 After Width: | Height: | Size: 82 KiB  | 
| 
		 After Width: | Height: | Size: 72 KiB  | 
| 
		 After Width: | Height: | Size: 80 KiB  | 
| 
		 After Width: | Height: | Size: 381 KiB  | 
| 
		 After Width: | Height: | Size: 149 KiB  | 
| 
		 After Width: | Height: | Size: 99 KiB  | 
| 
		 After Width: | Height: | Size: 142 KiB  | 
| 
		 After Width: | Height: | Size: 104 KiB  | 
| 
		 After Width: | Height: | Size: 133 KiB  | 
| 
		 After Width: | Height: | Size: 96 KiB  | 
| 
		 After Width: | Height: | Size: 135 KiB  | 
| 
		 After Width: | Height: | Size: 85 KiB  | 
| 
		 After Width: | Height: | Size: 125 KiB  | 
| 
		 After Width: | Height: | Size: 74 KiB  | 
| 
		 After Width: | Height: | Size: 20 KiB  | 
@ -0,0 +1,682 @@ | 
				
			|||
<div style="background-color: #714B67; min-height: 600px; width: 100%; padding: 15px; position: relative;"> | 
				
			|||
    <!-- TITLE BAR --> | 
				
			|||
    <div | 
				
			|||
            style="border-bottom: 1px solid #875A7B; padding: 15px; display: flex; justify-content: space-between; align-items: center;"> | 
				
			|||
        <img src="assets/misc/cybrosys-logo.png" width="42" height="42" | 
				
			|||
             style="width: 42px; height: 42px;"/> | 
				
			|||
        <div> | 
				
			|||
            <div style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;" | 
				
			|||
                 class="mr-2"> | 
				
			|||
                <i class="fa fa-check mr-1"></i>Community | 
				
			|||
            </div> | 
				
			|||
            <div style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;" | 
				
			|||
                 class="mr-2"> | 
				
			|||
                <i class="fa fa-check mr-1"></i>Enterprise | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
    <!-- END OF TITLE BAR --> | 
				
			|||
 | 
				
			|||
    <!-- APP HERO --> | 
				
			|||
    <h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;"> | 
				
			|||
        Legal Case Management</h1> | 
				
			|||
    <p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;"> | 
				
			|||
       This module helps to manage a legal case management firm</p> | 
				
			|||
    <!-- END OF APP HERO --> | 
				
			|||
    <img src="assets/screenshots/hero.gif" | 
				
			|||
         style="width: 75%; height: auto; position: absolute; margin-left: auto; margin-right: auto; top: 45%; left: 12%; right: auto;"/> | 
				
			|||
 | 
				
			|||
</div> | 
				
			|||
 | 
				
			|||
<!-- NAVIGATION SECTION --> | 
				
			|||
<div class="d-flex align-items-center" | 
				
			|||
     style="border-bottom: 2px solid #714B67; padding: 15px 0px; margin-top: 300px;"> | 
				
			|||
    <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			|||
         style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			|||
        <img src="assets/misc/compass.png"/> | 
				
			|||
    </div> | 
				
			|||
    <h2 class="mt-2" | 
				
			|||
        style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			|||
        Explore This | 
				
			|||
        Module</h2> | 
				
			|||
</div> | 
				
			|||
<div class="row my-4" style="font-family: 'Montserrat', sans-serif;"> | 
				
			|||
    <div class="col-sm-12 col-md-6 my-3"> | 
				
			|||
        <a href="#overview"> | 
				
			|||
            <div class="d-flex justify-content-between align-items-center" | 
				
			|||
                 style="background-color: #f5f5f5; padding: 30px; width: 100%;"> | 
				
			|||
                <div> | 
				
			|||
                    <span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Overview</span> | 
				
			|||
                    <span | 
				
			|||
                            style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33;  display: block;">Learn | 
				
			|||
                        more about this | 
				
			|||
                        module</span> | 
				
			|||
                </div> | 
				
			|||
                <img src="assets/misc/right-arrow.png" width="36" height="36"/> | 
				
			|||
            </div> | 
				
			|||
        </a> | 
				
			|||
    </div> | 
				
			|||
    <div class="col-sm-12 col-md-6 my-3"> | 
				
			|||
        <a href="#features"> | 
				
			|||
            <div class="d-flex justify-content-between align-items-center" | 
				
			|||
                 style="background-color: #f5f5f5; padding: 30px; width: 100%;"> | 
				
			|||
                <div> | 
				
			|||
                    <span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Features</span> | 
				
			|||
                    <span | 
				
			|||
                            style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33;  display: block;">View | 
				
			|||
                        features of this | 
				
			|||
                        module</span> | 
				
			|||
                </div> | 
				
			|||
                <img src="assets/misc/right-arrow.png" width="36" height="36"/> | 
				
			|||
            </div> | 
				
			|||
        </a> | 
				
			|||
    </div> | 
				
			|||
    <div class="col-sm-12 col-md-6 my-3"> | 
				
			|||
        <a href="#screenshots"> | 
				
			|||
            <div class="d-flex justify-content-between align-items-center" | 
				
			|||
                 style="background-color: #f5f5f5; padding: 30px; width: 100%;"> | 
				
			|||
                <div> | 
				
			|||
                    <span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Screenshots</span> | 
				
			|||
                    <span | 
				
			|||
                            style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33;  display: block;">View | 
				
			|||
                        screenshots for this | 
				
			|||
                        module</span> | 
				
			|||
                </div> | 
				
			|||
                <img src="assets/misc/right-arrow.png" width="36" height="36"/> | 
				
			|||
            </div> | 
				
			|||
        </a> | 
				
			|||
    </div> | 
				
			|||
</div> | 
				
			|||
<!-- END OF NAVIGATION SECTION --> | 
				
			|||
 | 
				
			|||
<!-- OVERVIEW SECTION --> | 
				
			|||
<div class="d-flex align-items-center" | 
				
			|||
     style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="overview"> | 
				
			|||
    <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			|||
         style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			|||
        <img src="assets/misc/pie-chart.png"/> | 
				
			|||
    </div> | 
				
			|||
    <h2 class="mt-2" | 
				
			|||
        style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			|||
        Overview | 
				
			|||
    </h2> | 
				
			|||
</div> | 
				
			|||
<div class="row" | 
				
			|||
     style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;"> | 
				
			|||
    <div class="col-sm-12 py-4"> | 
				
			|||
        This module helps to manage a legal case management firm.Set different access rights for the module. | 
				
			|||
        You can create invoices for different payment methods.If the lawyer is busy with other case, user can assign junior lawyers | 
				
			|||
        for particular case. | 
				
			|||
 | 
				
			|||
    </div> | 
				
			|||
</div> | 
				
			|||
<!-- END OF OVERVIEW SECTION --> | 
				
			|||
 | 
				
			|||
<!-- FEATURES SECTION --> | 
				
			|||
<div class="d-flex align-items-center" | 
				
			|||
     style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="features"> | 
				
			|||
    <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			|||
         style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			|||
        <img src="assets/misc/features.png"/> | 
				
			|||
    </div> | 
				
			|||
    <h2 class="mt-2" | 
				
			|||
        style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			|||
        Features | 
				
			|||
    </h2> | 
				
			|||
</div> | 
				
			|||
<div class="row" | 
				
			|||
     style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;"> | 
				
			|||
    <div class="col-sm-12 col-md-6"> | 
				
			|||
          <div class="d-flex align-items-center" | 
				
			|||
             style="margin-top: 40px; margin-bottom: 40px"> | 
				
			|||
            <img src="assets/misc/check-box.png" class="mr-2"/> | 
				
			|||
            <span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Different access rights for admin,lawyer and clerk</span> | 
				
			|||
        </div> | 
				
			|||
        <div class="d-flex align-items-center" | 
				
			|||
             style="margin-top: 40px; margin-bottom: 40px"> | 
				
			|||
            <img src="assets/misc/check-box.png" class="mr-2"/> | 
				
			|||
            <span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Creation of lawyers and their wages for trial and case</span> | 
				
			|||
        </div> | 
				
			|||
        <div class="d-flex align-items-center" | 
				
			|||
             style="margin-top: 40px; margin-bottom: 40px"> | 
				
			|||
            <img src="assets/misc/check-box.png" class="mr-2"/> | 
				
			|||
            <span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Case registration through form</span> | 
				
			|||
        </div> | 
				
			|||
        <div class="d-flex align-items-center" | 
				
			|||
             style="margin-top: 40px; margin-bottom: 40px"> | 
				
			|||
            <img src="assets/misc/check-box.png" class="mr-2"/> | 
				
			|||
            <span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Adding Evidence ,Trial and attachment for corresponding cases</span> | 
				
			|||
        </div> | 
				
			|||
        <div class="d-flex align-items-center" | 
				
			|||
             style="margin-top: 30px; margin-bottom: 30px"> | 
				
			|||
            <img src="assets/misc/check-box.png" class="mr-2"/> | 
				
			|||
            <span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Invoicing For trial, case, out of court and full settlement</span> | 
				
			|||
        </div> | 
				
			|||
        <div class="d-flex align-items-center" | 
				
			|||
             style="margin-top: 30px; margin-bottom: 30px"> | 
				
			|||
            <img src="assets/misc/check-box.png" class="mr-2"/> | 
				
			|||
            <span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">If the lawyers are busy with other cases, user can assign junior lawyers</span> | 
				
			|||
        </div> | 
				
			|||
        <div class="d-flex align-items-center" | 
				
			|||
             style="margin-top: 30px; margin-bottom: 30px"> | 
				
			|||
            <img src="assets/misc/check-box.png" class="mr-2"/> | 
				
			|||
            <span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Case registration through portal</span> | 
				
			|||
        </div> | 
				
			|||
        <div class="d-flex align-items-center" | 
				
			|||
             style="margin-top: 30px; margin-bottom: 30px"> | 
				
			|||
            <img src="assets/misc/check-box.png" class="mr-2"/> | 
				
			|||
            <span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Portal users can see the corresponding case details</span> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
</div> | 
				
			|||
<!-- END OF FEATURES SECTION --> | 
				
			|||
 | 
				
			|||
<!-- SCREENSHOTS SECTION --> | 
				
			|||
<div class="d-flex align-items-center" | 
				
			|||
     style="border-bottom: 2px solid #714B67; padding: 15px 0px;" | 
				
			|||
     id="screenshots"> | 
				
			|||
    <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			|||
         style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			|||
        <img src="assets/misc/pictures.png"/> | 
				
			|||
    </div> | 
				
			|||
    <h2 class="mt-2" | 
				
			|||
        style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			|||
        Screenshots | 
				
			|||
    </h2> | 
				
			|||
</div> | 
				
			|||
<div class="row"> | 
				
			|||
    <div class="col-sm-12"> | 
				
			|||
 | 
				
			|||
        <div style="display: block; margin: 30px auto;"> | 
				
			|||
            <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> | 
				
			|||
               Different access rights for admin,lawyer and clerk</h3> | 
				
			|||
            <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> | 
				
			|||
                Go to  Settings -> Users -> You can select different access rights for users</p> | 
				
			|||
            <img src="assets/screenshots/legal_1.png" class="img-thumbnail"> | 
				
			|||
        </div> | 
				
			|||
        <div style="display: block; margin: 30px auto;"> | 
				
			|||
            <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> | 
				
			|||
               Create Lawyers and set wages for case and trial</h3> | 
				
			|||
            <img src="assets/screenshots/legal_1.1.png" class="img-thumbnail"> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        <div style="display: block; margin: 30px auto;"> | 
				
			|||
            <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> | 
				
			|||
               Case registration through form</h3> | 
				
			|||
            <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> | 
				
			|||
                You can register case with giving following details</p> | 
				
			|||
            <img src="assets/screenshots/legal_2.png" class="img-thumbnail"> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div style="display: block; margin: 30px auto;"> | 
				
			|||
            <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> | 
				
			|||
                Adding Evidence ,Trial and attachment for corresponding cases</h3> | 
				
			|||
            <img src="assets/screenshots/legal_3.png" class="img-thumbnail"> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div style="display: block; margin: 30px auto;"> | 
				
			|||
            <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> | 
				
			|||
                Invoicing For trial, case, out of court and full settlement</h3> | 
				
			|||
             <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> | 
				
			|||
                  1.Select the payment method of case</p> | 
				
			|||
            <img src="assets/screenshots/legal_4.png" class="img-thumbnail"> | 
				
			|||
             <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> | 
				
			|||
               2.Invoice for corresponding payment method </p> | 
				
			|||
            <img src="assets/screenshots/legal_4.1.png" class="img-thumbnail"> | 
				
			|||
        </div> | 
				
			|||
        <div style="display: block; margin: 30px auto;"> | 
				
			|||
            <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> | 
				
			|||
               If the lawyers are busy with other cases, user can  assign junior lawyer</h3> | 
				
			|||
            <img src="assets/screenshots/legal_5.png" class="img-thumbnail"> | 
				
			|||
        </div> | 
				
			|||
        <div style="display: block; margin: 30px auto;"> | 
				
			|||
            <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> | 
				
			|||
                Case registration through portal </h3> | 
				
			|||
            <img src="assets/screenshots/legal6.png" class="img-thumbnail"> | 
				
			|||
        </div> | 
				
			|||
         <div style="display: block; margin: 30px auto;"> | 
				
			|||
            <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> | 
				
			|||
               Portal users can see the corresponding case details </h3> | 
				
			|||
            <img src="assets/screenshots/legal_7.png" class="img-thumbnail"> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
</div> | 
				
			|||
<!-- END OF SCREENSHOTS SECTION --> | 
				
			|||
 | 
				
			|||
<!-- RELATED PRODUCTS --> | 
				
			|||
<div class="d-flex align-items-center" | 
				
			|||
     style="border-bottom: 2px solid #714B67; padding: 15px 0px;"> | 
				
			|||
    <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			|||
         style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			|||
        <img src="assets/misc/categories.png"/> | 
				
			|||
    </div> | 
				
			|||
    <h2 class="mt-2" | 
				
			|||
        style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			|||
        Related | 
				
			|||
        Products | 
				
			|||
    </h2> | 
				
			|||
</div> | 
				
			|||
<div class="row"> | 
				
			|||
    <div class="col-sm-12"> | 
				
			|||
        <div id="demo1" class="row carousel slide" data-ride="carousel"> | 
				
			|||
            <!-- The slideshow --> | 
				
			|||
            <div class="carousel-inner" style="padding: 30px;"> | 
				
			|||
                <div class="carousel-item" style="min-height: 198.656px;"> | 
				
			|||
                    <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			|||
                         style="float:left"> | 
				
			|||
                        <a href="https://apps.odoo.com/apps/modules/16.0/website_repeat_sale/" | 
				
			|||
                           target="_blank"> | 
				
			|||
                            <div style="border-radius:10px"> | 
				
			|||
                                <img class="img img-responsive center-block" | 
				
			|||
                                     style="border-radius: 0px;" | 
				
			|||
                                     src="assets/modules/l1.png"> | 
				
			|||
                            </div> | 
				
			|||
                        </a> | 
				
			|||
                    </div> | 
				
			|||
                    <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			|||
                         style="float:left"> | 
				
			|||
                        <a href="https://apps.odoo.com/apps/modules/16.0/woo_commerce/" | 
				
			|||
                           target="_blank"> | 
				
			|||
                            <div style="border-radius:10px"> | 
				
			|||
                                <img class="img img-responsive center-block" | 
				
			|||
                                     style="border-radius: 0px;" | 
				
			|||
                                     src="assets/modules/l2.png"> | 
				
			|||
                            </div> | 
				
			|||
                        </a> | 
				
			|||
                    </div> | 
				
			|||
                    <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			|||
                         style="float:left"> | 
				
			|||
                        <a href="https://apps.odoo.com/apps/modules/16.0/shopify_odoo_connector/" | 
				
			|||
                           target="_blank"> | 
				
			|||
                            <div style="border-radius:10px"> | 
				
			|||
                                <img class="img img-responsive center-block" | 
				
			|||
                                     style="border-radius: 0px;" | 
				
			|||
                                     src="assets/modules/l3.png"> | 
				
			|||
                            </div> | 
				
			|||
                        </a> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
                <div class="carousel-item active" | 
				
			|||
                     style="min-height: 198.656px;"> | 
				
			|||
                    <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			|||
                         style="float:left"> | 
				
			|||
                        <a href="https://apps.odoo.com/apps/modules/16.0/odoo_dynamic_dashboard/" | 
				
			|||
                           target="_blank"> | 
				
			|||
                            <div style="border-radius:10px"> | 
				
			|||
                                <img class="img img-responsive center-block" | 
				
			|||
                                     style="border-radius: 0px;" | 
				
			|||
                                     src="assets/modules/l4.png"> | 
				
			|||
                            </div> | 
				
			|||
                        </a> | 
				
			|||
                    </div> | 
				
			|||
                    <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			|||
                         style="float:left"> | 
				
			|||
                        <a href="https://apps.odoo.com/apps/modules/16.0/custom_gantt_view/" | 
				
			|||
                           target="_blank"> | 
				
			|||
                            <div style="border-radius:10px"> | 
				
			|||
                                <img class="img img-responsive center-block" | 
				
			|||
                                     style="border-radius: 0px;" | 
				
			|||
                                     src="assets/modules/l5.png"> | 
				
			|||
                            </div> | 
				
			|||
                        </a> | 
				
			|||
                    </div> | 
				
			|||
                    <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			|||
                         style="float:left"> | 
				
			|||
                        <a href="https://apps.odoo.com/apps/modules/16.0/pos_credit_limit/" | 
				
			|||
                           target="_blank"> | 
				
			|||
                            <div style="border-radius:10px"> | 
				
			|||
                                <img class="img img-responsive center-block" | 
				
			|||
                                     style="border-radius: 0px;" | 
				
			|||
                                     src="assets/modules/l6.png"> | 
				
			|||
                            </div> | 
				
			|||
                        </a> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
            <!-- Left and right controls --> | 
				
			|||
            <a class="carousel-control-prev" href="#demo1" data-slide="prev" | 
				
			|||
               style="width:35px; color:#000"> <span | 
				
			|||
                    class="carousel-control-prev-icon"><i | 
				
			|||
                    class="fa fa-chevron-left" | 
				
			|||
                    style="font-size:24px"></i></span> | 
				
			|||
            </a> <a class="carousel-control-next" href="#demo1" | 
				
			|||
                    data-slide="next" style="width:35px; color:#000"> | 
				
			|||
                <span class="carousel-control-next-icon"><i | 
				
			|||
                        class="fa fa-chevron-right" | 
				
			|||
                        style="font-size:24px"></i></span> | 
				
			|||
        </a> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
</div> | 
				
			|||
<!-- END OF RELATED PRODUCTS --> | 
				
			|||
 | 
				
			|||
<!-- OUR SERVICES --> | 
				
			|||
 | 
				
			|||
<div class="d-flex align-items-center" | 
				
			|||
     style="border-bottom: 2px solid #714B67; padding: 15px 0px;"> | 
				
			|||
    <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			|||
         style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			|||
        <img src="assets/misc/star.png"/> | 
				
			|||
    </div> | 
				
			|||
    <h2 class="mt-2" | 
				
			|||
        style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			|||
        Our Services | 
				
			|||
    </h2> | 
				
			|||
</div> | 
				
			|||
 | 
				
			|||
<div class="container my-5"> | 
				
			|||
    <div class="row"> | 
				
			|||
        <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			|||
            <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			|||
                 style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			|||
                <img src="assets/icons/cogs.png" class="img-responsive" | 
				
			|||
                     height="48px" width="48px"> | 
				
			|||
            </div> | 
				
			|||
            <h6 class="text-center" | 
				
			|||
                style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			|||
                Odoo | 
				
			|||
                Customization</h6> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			|||
            <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			|||
                 style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			|||
                <img src="assets/icons/wrench.png" class="img-responsive" | 
				
			|||
                     height="48px" width="48px"> | 
				
			|||
            </div> | 
				
			|||
            <h6 class="text-center" | 
				
			|||
                style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			|||
                Odoo | 
				
			|||
                Implementation</h6> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			|||
            <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			|||
                 style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			|||
                <img src="assets/icons/lifebuoy.png" class="img-responsive" | 
				
			|||
                     height="48px" width="48px"> | 
				
			|||
            </div> | 
				
			|||
            <h6 class="text-center" | 
				
			|||
                style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			|||
                Odoo | 
				
			|||
                Support</h6> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			|||
            <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			|||
                 style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			|||
                <img src="assets/icons/user.png" class="img-responsive" | 
				
			|||
                     height="48px" width="48px"> | 
				
			|||
            </div> | 
				
			|||
            <h6 class="text-center" | 
				
			|||
                style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			|||
                Hire | 
				
			|||
                Odoo | 
				
			|||
                Developer</h6> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			|||
            <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			|||
                 style="background-color: #54a0ff  !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			|||
                <img src="assets/icons/puzzle.png" class="img-responsive" | 
				
			|||
                     height="48px" width="48px"> | 
				
			|||
            </div> | 
				
			|||
            <h6 class="text-center" | 
				
			|||
                style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			|||
                Odoo | 
				
			|||
                Integration</h6> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			|||
            <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			|||
                 style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			|||
                <img src="assets/icons/update.png" class="img-responsive" | 
				
			|||
                     height="48px" width="48px"> | 
				
			|||
            </div> | 
				
			|||
            <h6 class="text-center" | 
				
			|||
                style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			|||
                Odoo | 
				
			|||
                Migration</h6> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			|||
            <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			|||
                 style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			|||
                <img src="assets/icons/consultation.png" class="img-responsive" | 
				
			|||
                     height="48px" width="48px"> | 
				
			|||
            </div> | 
				
			|||
            <h6 class="text-center" | 
				
			|||
                style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			|||
                Odoo | 
				
			|||
                Consultancy</h6> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			|||
            <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			|||
                 style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			|||
                <img src="assets/icons/training.png" class="img-responsive" | 
				
			|||
                     height="48px" width="48px"> | 
				
			|||
            </div> | 
				
			|||
            <h6 class="text-center" | 
				
			|||
                style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			|||
                Odoo | 
				
			|||
                Implementation</h6> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			|||
            <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			|||
                 style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			|||
                <img src="assets/icons/license.png" class="img-responsive" | 
				
			|||
                     height="48px" width="48px"> | 
				
			|||
            </div> | 
				
			|||
            <h6 class="text-center" | 
				
			|||
                style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			|||
                Odoo | 
				
			|||
                Licensing Consultancy</h6> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
 | 
				
			|||
</div> | 
				
			|||
 | 
				
			|||
<!-- END OF END OF OUR SERVICES --> | 
				
			|||
 | 
				
			|||
<!-- OUR INDUSTRIES --> | 
				
			|||
 | 
				
			|||
<div class="d-flex align-items-center" | 
				
			|||
     style="border-bottom: 2px solid #714B67; padding: 15px 0px;"> | 
				
			|||
    <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			|||
         style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			|||
        <img src="assets/misc/corporate.png"/> | 
				
			|||
    </div> | 
				
			|||
    <h2 class="mt-2" | 
				
			|||
        style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			|||
        Our | 
				
			|||
        Industries | 
				
			|||
    </h2> | 
				
			|||
</div> | 
				
			|||
 | 
				
			|||
<div class="container my-5"> | 
				
			|||
    <div class="row"> | 
				
			|||
        <div class="col-lg-3"> | 
				
			|||
            <div class="my-4 d-flex flex-column justify-content-center" | 
				
			|||
                 style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> | 
				
			|||
                <img src="assets/icons/trading-black.png" | 
				
			|||
                     class="img-responsive mb-3" height="48px" width="48px"> | 
				
			|||
                <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			|||
                    Trading | 
				
			|||
                </h5> | 
				
			|||
                <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			|||
                    Easily procure | 
				
			|||
                    and | 
				
			|||
                    sell your products</p> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-3"> | 
				
			|||
            <div class="my-4 d-flex flex-column justify-content-center" | 
				
			|||
                 style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> | 
				
			|||
                <img src="assets/icons/pos-black.png" | 
				
			|||
                     class="img-responsive mb-3" height="48px" width="48px"> | 
				
			|||
                <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			|||
                    POS | 
				
			|||
                </h5> | 
				
			|||
                <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			|||
                    Easy | 
				
			|||
                    configuration | 
				
			|||
                    and convivial experience</p> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-3"> | 
				
			|||
            <div class="my-4 d-flex flex-column justify-content-center" | 
				
			|||
                 style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> | 
				
			|||
                <img src="assets/icons/education-black.png" | 
				
			|||
                     class="img-responsive mb-3" height="48px" width="48px"> | 
				
			|||
                <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			|||
                    Education | 
				
			|||
                </h5> | 
				
			|||
                <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			|||
                    A platform for | 
				
			|||
                    educational management</p> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-3"> | 
				
			|||
            <div class="my-4 d-flex flex-column justify-content-center" | 
				
			|||
                 style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> | 
				
			|||
                <img src="assets/icons/manufacturing-black.png" | 
				
			|||
                     class="img-responsive mb-3" height="48px" | 
				
			|||
                     width="48px"> | 
				
			|||
                <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			|||
                    Manufacturing | 
				
			|||
                </h5> | 
				
			|||
                <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			|||
                    Plan, track and | 
				
			|||
                    schedule your operations</p> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-3"> | 
				
			|||
            <div class="my-4 d-flex flex-column justify-content-center" | 
				
			|||
                 style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> | 
				
			|||
                <img src="assets/icons/ecom-black.png" | 
				
			|||
                     class="img-responsive mb-3" height="48px" width="48px"> | 
				
			|||
                <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			|||
                    E-commerce & Website | 
				
			|||
                </h5> | 
				
			|||
                <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			|||
                    Mobile | 
				
			|||
                    friendly, | 
				
			|||
                    awe-inspiring product pages</p> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-3"> | 
				
			|||
            <div class="my-4 d-flex flex-column justify-content-center" | 
				
			|||
                 style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> | 
				
			|||
                <img src="assets/icons/service-black.png" | 
				
			|||
                     class="img-responsive mb-3" height="48px" width="48px"> | 
				
			|||
                <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			|||
                    Service Management | 
				
			|||
                </h5> | 
				
			|||
                <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			|||
                    Keep track of | 
				
			|||
                    services and invoice</p> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-3"> | 
				
			|||
            <div class="my-4 d-flex flex-column justify-content-center" | 
				
			|||
                 style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> | 
				
			|||
                <img src="assets/icons/restaurant-black.png" | 
				
			|||
                     class="img-responsive mb-3" height="48px" width="48px"> | 
				
			|||
                <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			|||
                    Restaurant | 
				
			|||
                </h5> | 
				
			|||
                <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			|||
                    Run your bar or | 
				
			|||
                    restaurant methodically</p> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-3"> | 
				
			|||
            <div class="my-4 d-flex flex-column justify-content-center" | 
				
			|||
                 style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> | 
				
			|||
                <img src="assets/icons/hotel-black.png" | 
				
			|||
                     class="img-responsive mb-3" height="48px" width="48px"> | 
				
			|||
                <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			|||
                    Hotel Management | 
				
			|||
                </h5> | 
				
			|||
                <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			|||
                    An | 
				
			|||
                    all-inclusive | 
				
			|||
                    hotel management application</p> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
</div> | 
				
			|||
 | 
				
			|||
<!-- END OF END OF OUR INDUSTRIES --> | 
				
			|||
 | 
				
			|||
<!-- SUPPORT --> | 
				
			|||
<div class="d-flex align-items-center" | 
				
			|||
     style="border-bottom: 2px solid #714B67; padding: 15px 0px;"> | 
				
			|||
    <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			|||
         style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			|||
        <img src="assets/misc/customer-support.png"/> | 
				
			|||
    </div> | 
				
			|||
    <h2 class="mt-2" | 
				
			|||
        style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			|||
        Support | 
				
			|||
    </h2> | 
				
			|||
</div> | 
				
			|||
<div class="container mt-5"> | 
				
			|||
    <div class="row"> | 
				
			|||
        <div class="col-sm-12 col-md-6"> | 
				
			|||
            <div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;"> | 
				
			|||
                <div class="mr-4" | 
				
			|||
                     style="background-color: #714B67; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;"> | 
				
			|||
                    <img src="assets/misc/support.png" height="48" width="48" | 
				
			|||
                         style="width: 42px; height: 42px;"/> | 
				
			|||
                </div> | 
				
			|||
                <div> | 
				
			|||
                    <h4>Need Help?</h4> | 
				
			|||
                    <p style="line-height: 100%;">Got questions or need help? | 
				
			|||
                        Get in touch.</p> | 
				
			|||
                    <a href="mailto:odoo@cybrosys.com"> | 
				
			|||
                        <p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;"> | 
				
			|||
                            odoo@cybrosys.com</p> | 
				
			|||
                    </a> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
        <div class="col-sm-12 col-md-6"> | 
				
			|||
            <div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;"> | 
				
			|||
                <div class="mr-4" | 
				
			|||
                     style="background-color: #2AC44D; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;"> | 
				
			|||
                    <img src="assets/misc/whatsapp.png" height="52" width="52" | 
				
			|||
                         style="width: 52px; height: 52px;"/> | 
				
			|||
                </div> | 
				
			|||
                <div> | 
				
			|||
                    <h4>WhatsApp</h4> | 
				
			|||
                    <p style="line-height: 100%;">Say hi to us on WhatsApp!</p> | 
				
			|||
                    <a href="https://api.whatsapp.com/send?phone=918606827707"> | 
				
			|||
                        <p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;"> | 
				
			|||
                            +91 86068 | 
				
			|||
                            27707</p> | 
				
			|||
                    </a> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
    <div class="row"> | 
				
			|||
        <div class="col-sm-12 my-5 d-flex justify-content-center align-items-center"> | 
				
			|||
            <img src="assets/misc/logo.png" width="144" height="31" | 
				
			|||
                 style="width:144px; height: 31px; margin-top: 40px;"/> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
</div> | 
				
			|||
<!-- END OF SUPPORT --> | 
				
			|||
@ -0,0 +1,17 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Form View For Invoice --> | 
				
			|||
    <record id="account_move_view_form" model="ir.ui.view"> | 
				
			|||
        <field name="name"> | 
				
			|||
            account.move.view.form.inherit.legal.case.management | 
				
			|||
        </field> | 
				
			|||
        <field name="model">account.move</field> | 
				
			|||
        <field name="inherit_id" ref="account.view_move_form"/> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <xpath expr="//group/group[@id='header_left_group']" | 
				
			|||
                   position="inside"> | 
				
			|||
                <field name="case_ref"/> | 
				
			|||
            </xpath> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,13 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Tree View For Case Category --> | 
				
			|||
    <record id="case_category_view_tree" model="ir.ui.view"> | 
				
			|||
        <field name="name">case.category.tree</field> | 
				
			|||
        <field name="model">case.category</field> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <tree editable="bottom"> | 
				
			|||
                <field name="name"/> | 
				
			|||
            </tree> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,132 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Template For Case registration in Portal View--> | 
				
			|||
    <template id="portal_my_home_legal_case" name="Legal Cases" | 
				
			|||
              customize_show="True" inherit_id="portal.portal_my_home"> | 
				
			|||
        <xpath expr="//div[hasclass('o_portal_docs')]" position="inside"> | 
				
			|||
            <t t-call="portal.portal_docs_entry"> | 
				
			|||
                <t t-set="title">Legal Case</t> | 
				
			|||
                <t t-set="url" t-value="'/my/legal/case'"/> | 
				
			|||
                <t t-set="placeholder_count" t-value="'case_count'"/> | 
				
			|||
            </t> | 
				
			|||
        </xpath> | 
				
			|||
    </template> | 
				
			|||
    <template id="portal_my_legal_case_requests" | 
				
			|||
              name="Portal My Cse Details"> | 
				
			|||
        <t t-call="portal.portal_layout"> | 
				
			|||
            <t t-set="breadcrumbs_searchbar" t-value="True"/> | 
				
			|||
            <t t-call="portal.portal_searchbar"> | 
				
			|||
                <t t-set="title">My Cases</t> | 
				
			|||
            </t> | 
				
			|||
            <t t-call="portal.portal_table"> | 
				
			|||
                <thead> | 
				
			|||
                    <tr class="active"> | 
				
			|||
                        <th>Case #</th> | 
				
			|||
                        <th>Date</th> | 
				
			|||
                        <th class='d-none d-md-table-cell'>Details</th> | 
				
			|||
                        <th>Status</th> | 
				
			|||
                    </tr> | 
				
			|||
                </thead> | 
				
			|||
                <tbody> | 
				
			|||
                    <t t-foreach="records" t-as="case"> | 
				
			|||
                        <tr> | 
				
			|||
                            <td> | 
				
			|||
                                <a t-attf-href="/my/cases/#{case.id}?{{ keep_query() }}" | 
				
			|||
                                   t-att-title="case.name"> | 
				
			|||
                                    <t t-esc="case.name"/> | 
				
			|||
                                </a> | 
				
			|||
                            </td> | 
				
			|||
                            <td> | 
				
			|||
                                <t t-esc="case.register_date"/> | 
				
			|||
                            </td> | 
				
			|||
                            <td> | 
				
			|||
                                <t t-esc="case.description"/> | 
				
			|||
                            </td> | 
				
			|||
                            <td> | 
				
			|||
                                <t t-if="case.state=='draft'"> | 
				
			|||
                                    <span class="badge rounded-pill text-bg-info"> | 
				
			|||
                                        <i class="fa fa-fw fa-clock-o" | 
				
			|||
                                           aria-label="Opened" title="Opened" | 
				
			|||
                                           role="img"/> | 
				
			|||
                                        <span class="d-none d-md-inline">Draft | 
				
			|||
                                        </span> | 
				
			|||
                                    </span> | 
				
			|||
                                </t> | 
				
			|||
                                <t t-if="case.state=='in_progress'"> | 
				
			|||
                                    <span class="badge rounded-pill text-bg-success"> | 
				
			|||
                                        <i class="fa fa-fw fa-check" | 
				
			|||
                                           aria-label="In Progress" title="Paid" | 
				
			|||
                                           role="img"/> | 
				
			|||
                                        <span class="d-none d-md-inline">In | 
				
			|||
                                            Progress | 
				
			|||
                                        </span> | 
				
			|||
                                    </span> | 
				
			|||
                                </t> | 
				
			|||
                                <t t-if="case.state=='invoiced'"> | 
				
			|||
                                    <span class="badge rounded-pill text-bg-success"> | 
				
			|||
                                        <i class="fa fa-fw fa-check" | 
				
			|||
                                           aria-label="Reversed" | 
				
			|||
                                           title="Invoiced" role="img"/> | 
				
			|||
                                        <span class="d-none d-md-inline"> | 
				
			|||
                                            Invoiced | 
				
			|||
                                        </span> | 
				
			|||
                                    </span> | 
				
			|||
                                </t> | 
				
			|||
                                <t t-if="case.state=='reject'"> | 
				
			|||
                                    <span class="badge rounded-pill text-bg-success"> | 
				
			|||
                                        <i class="fa fa-fw fa-check" | 
				
			|||
                                           aria-label="Reversed" | 
				
			|||
                                           title="Invoiced" role="img"/> | 
				
			|||
                                        <span class="d-none d-md-inline"> | 
				
			|||
                                            Invoiced | 
				
			|||
                                        </span> | 
				
			|||
                                    </span> | 
				
			|||
                                </t> | 
				
			|||
                                <t t-if="case.state=='won'"> | 
				
			|||
                                    <span class="badge rounded-pill text-bg-success"> | 
				
			|||
                                        <i class="fa fa-fw fa-check" | 
				
			|||
                                           aria-label="Reversed" | 
				
			|||
                                           title="Invoiced" role="img"/> | 
				
			|||
                                        <span class="d-none d-md-inline"> | 
				
			|||
                                            Won | 
				
			|||
                                        </span> | 
				
			|||
                                    </span> | 
				
			|||
                                </t> | 
				
			|||
                                <t t-if="case.state=='lost'"> | 
				
			|||
                                    <span class="badge rounded-pill text-bg-danger"> | 
				
			|||
                                        <i class="fa fa-fw fa-check" | 
				
			|||
                                           aria-label="Reversed" | 
				
			|||
                                           title="Lost" role="img"/> | 
				
			|||
                                        <span class="d-none d-md-inline"> | 
				
			|||
                                            Lost | 
				
			|||
                                        </span> | 
				
			|||
                                    </span> | 
				
			|||
                                </t> | 
				
			|||
                                <t t-if="case.state=='cancel'"> | 
				
			|||
                                    <span class="badge rounded-pill text-bg-warning"> | 
				
			|||
                                        <i class="fa fa-fw fa-remove" | 
				
			|||
                                           aria-label="Cancelled" | 
				
			|||
                                           title="Cancelled" role="img"/> | 
				
			|||
                                        <span class="d-none d-md-inline"> | 
				
			|||
                                            Cancelled | 
				
			|||
                                        </span> | 
				
			|||
                                    </span> | 
				
			|||
                                </t> | 
				
			|||
                            </td> | 
				
			|||
                        </tr> | 
				
			|||
                    </t> | 
				
			|||
                </tbody> | 
				
			|||
            </t> | 
				
			|||
        </t> | 
				
			|||
    </template> | 
				
			|||
    <template id="portal_my_home_menu_legal_case" | 
				
			|||
              name="Portal layout : Legal menu entries" | 
				
			|||
              inherit_id="portal.portal_breadcrumbs"> | 
				
			|||
        <xpath expr="//ol[hasclass('o_portal_submenu')]" position="inside"> | 
				
			|||
            <li t-if="page_name == 'case'" class="breadcrumb-item"> | 
				
			|||
                <a t-attf-href="/my/legal/case?{{ keep_query() }}">Legal Cases | 
				
			|||
                </a> | 
				
			|||
            </li> | 
				
			|||
        </xpath> | 
				
			|||
    </template> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,145 @@ | 
				
			|||
<?xml version="1.0" encoding="utf-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Template for the legal case registration view --> | 
				
			|||
    <template id="legal_case_register_view"> | 
				
			|||
        <t t-call="website.layout"> | 
				
			|||
            <t t-set="case_categories" | 
				
			|||
               t-value="request.env['case.category'].sudo().search([])"/> | 
				
			|||
            <div id="wrap" class="oe_structure oe_empty"> | 
				
			|||
                <section class="s_website_form" data-vcss="001" | 
				
			|||
                         data-snippet="s_website_form"> | 
				
			|||
                    <div class="s_col_no_bgcolor container s_allow_columns"> | 
				
			|||
                        <div class="container"> | 
				
			|||
                            <br/> | 
				
			|||
                            <h3 style="margin-left:200px;">Case Registration | 
				
			|||
                            </h3> | 
				
			|||
                            <br/> | 
				
			|||
                        </div> | 
				
			|||
                        <div class="container mt-4 mb-5"> | 
				
			|||
                            <form role="form" | 
				
			|||
                                  action="/submit/create/case" | 
				
			|||
                                  method="post" enctype="multipart/form-data"> | 
				
			|||
                                <input type="hidden" name="csrf_token" | 
				
			|||
                                       t-att-value="request.csrf_token()"/> | 
				
			|||
                                <!-- Case Details field --> | 
				
			|||
                                <div class="mb-0 py-2 col-12 s_website_form_field | 
				
			|||
                                s_website_form_custom s_website_form_required" | 
				
			|||
                                     data-type="char" data-name="Field"> | 
				
			|||
                                    <div class="row s_col_no_resize s_col_no_bgcolor"> | 
				
			|||
                                        <label class="col-form-label col-sm-auto | 
				
			|||
                                        s_website_form_label" | 
				
			|||
                                               style="width: 200px" | 
				
			|||
                                               for="description" | 
				
			|||
                                               required="True"> | 
				
			|||
                                            <span class="s_website_form_label_content"> | 
				
			|||
                                                Case Details | 
				
			|||
                                            </span> | 
				
			|||
                                        </label> | 
				
			|||
                                        <div class="col-sm"> | 
				
			|||
                                            <textarea id="description" | 
				
			|||
                                                      type="text" | 
				
			|||
                                                      class="form-control | 
				
			|||
                                                      s_website_form_input" | 
				
			|||
                                                      name="description" | 
				
			|||
                                                      required="True"/> | 
				
			|||
                                        </div> | 
				
			|||
                                    </div> | 
				
			|||
                                </div> | 
				
			|||
                                <!-- Case Category field --> | 
				
			|||
                                <div class="mb-0 py-2 col-12 | 
				
			|||
                                s_website_form_field s_website_form_custom | 
				
			|||
                                s_website_form_required" | 
				
			|||
                                     data-type="char" data-name="Field"> | 
				
			|||
                                    <div class="row s_col_no_resize s | 
				
			|||
                                    _col_no_bgcolor"> | 
				
			|||
                                        <label class="col-form-label | 
				
			|||
                                        col-sm-auto s_website_form_label" | 
				
			|||
                                               style="width: 200px" | 
				
			|||
                                               for="description"> | 
				
			|||
                                            <span class="s_website_form_label_content"> | 
				
			|||
                                                Case Category | 
				
			|||
                                            </span> | 
				
			|||
                                        </label> | 
				
			|||
                                        <div class="col-sm"> | 
				
			|||
                                            <select class="form-control s_website_form_input" | 
				
			|||
                                                    name="case_category" | 
				
			|||
                                                    required="True"> | 
				
			|||
                                                <t t-foreach="case_categories" | 
				
			|||
                                                   t-as="category"> | 
				
			|||
                                                    <option t-att-value="category.id"> | 
				
			|||
                                                        <t t-esc="category.name"/> | 
				
			|||
                                                    </option> | 
				
			|||
                                                </t> | 
				
			|||
                                            </select> | 
				
			|||
                                        </div> | 
				
			|||
                                    </div> | 
				
			|||
                                </div> | 
				
			|||
                                <!-- Attachments field --> | 
				
			|||
                                <div class="mb-0 py-2 col-12 s_website_form_field | 
				
			|||
                                s_website_form_custom s_website_form_required" | 
				
			|||
                                     data-type="char" data-name="Field"> | 
				
			|||
                                    <div class="row s_col_no_resize s_col_no_bgcolor"> | 
				
			|||
                                        <label class="col-form-label col-sm-auto | 
				
			|||
                                        s_website_form_label" | 
				
			|||
                                               style="width: 200px" | 
				
			|||
                                               for="description"> | 
				
			|||
                                            <span class="s_website_form_label_content"> | 
				
			|||
                                                Attachments | 
				
			|||
                                            </span> | 
				
			|||
                                        </label> | 
				
			|||
                                        <div class="col-sm"> | 
				
			|||
                                            <input class="file" | 
				
			|||
                                                   type="file" | 
				
			|||
                                                   name="attachments" | 
				
			|||
                                                   multiple="true" | 
				
			|||
                                                   data-show-upload="true" | 
				
			|||
                                                   data-show-caption="true" | 
				
			|||
                                                   accept="image/*,application/pdf,video/*"/> | 
				
			|||
                                        </div> | 
				
			|||
                                    </div> | 
				
			|||
                                </div> | 
				
			|||
                                <div class="mb-0 py-2 col-12 s_website_form_field | 
				
			|||
                                s_website_form_custom s_website_form_required" | 
				
			|||
                                     data-type="char" data-name="Field"> | 
				
			|||
                                    <div class="row s_col_no_resize s_col_no_bgcolor"> | 
				
			|||
                                        <label class="col-form-label col-sm-auto | 
				
			|||
                                        s_website_form_label" | 
				
			|||
                                               style="width: 200px" | 
				
			|||
                                               for="description"> | 
				
			|||
                                            <span class="s_website_form_label_content"> | 
				
			|||
                                                Contact No | 
				
			|||
                                            </span> | 
				
			|||
                                        </label> | 
				
			|||
                                        <div class="col-sm"> | 
				
			|||
                                            <input id="description" type="text" | 
				
			|||
                                                   class="form-control | 
				
			|||
                                                   s_website_form_input" | 
				
			|||
                                                   name="contact" | 
				
			|||
                                                   required="True" | 
				
			|||
                                            /> | 
				
			|||
                                        </div> | 
				
			|||
                                    </div> | 
				
			|||
                                </div> | 
				
			|||
                                <!-- Submit Button --> | 
				
			|||
                                <div class="mb-0 py-2 col-12 s_website_form_field | 
				
			|||
                                s_website_form_custom s_website_form_required" | 
				
			|||
                                     data-type="char" data-name="Field"> | 
				
			|||
                                    <div class="form-group col-12 | 
				
			|||
                                    s_website_form_submit" | 
				
			|||
                                         data-name="Submit Button"> | 
				
			|||
                                        <div style="width: 200px;" | 
				
			|||
                                             class="s_website_form_label"/> | 
				
			|||
                                        <button type="submit" id="upload" | 
				
			|||
                                                class="btn btn-primary upload"> | 
				
			|||
                                            Submit | 
				
			|||
                                        </button> | 
				
			|||
                                    </div> | 
				
			|||
                                </div> | 
				
			|||
                            </form> | 
				
			|||
                        </div> | 
				
			|||
                    </div> | 
				
			|||
                </section> | 
				
			|||
            </div> | 
				
			|||
        </t> | 
				
			|||
    </template> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,246 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Tree View For Case Registration --> | 
				
			|||
    <record id="case_registration_view_tree" model="ir.ui.view"> | 
				
			|||
        <field name="name">case.registration.tree</field> | 
				
			|||
        <field name="model">case.registration</field> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <tree> | 
				
			|||
                <field name="name"/> | 
				
			|||
                <field name="client_id"/> | 
				
			|||
                <field name="lawyer_id" optional="hide"/> | 
				
			|||
                <field name="court_id"/> | 
				
			|||
                <field name="state" | 
				
			|||
                       decoration-success="state == 'in progress' or state == 'won'" | 
				
			|||
                       decoration-info="state == 'draft'" widget="badge"/> | 
				
			|||
            </tree> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
    <!-- Kanban View For Case registration--> | 
				
			|||
    <record id="case_registration_view_kanban" model="ir.ui.view"> | 
				
			|||
        <field name="name">case.registration.kanban</field> | 
				
			|||
        <field name="model">case.registration</field> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <kanban> | 
				
			|||
                <field name="name"/> | 
				
			|||
                <field name="client_id"/> | 
				
			|||
                <field name="lawyer_id"/> | 
				
			|||
                <field name="state"/> | 
				
			|||
                <templates> | 
				
			|||
                    <t t-name="kanban-box"> | 
				
			|||
                        <div t-attf-class="oe_kanban_card oe_kanban_global_click"> | 
				
			|||
                            <div class="oe_kanban_details"> | 
				
			|||
                                <ul type="none"> | 
				
			|||
                                    <li> | 
				
			|||
                                        <strong class="o_kanban_record_title"> | 
				
			|||
                                            <span> | 
				
			|||
                                                <field name="name"/> | 
				
			|||
                                            </span> | 
				
			|||
                                        </strong> | 
				
			|||
                                    </li> | 
				
			|||
                                    <li> | 
				
			|||
                                        <strong class="o_kanban_record_subtitle"> | 
				
			|||
                                            Client: | 
				
			|||
                                            <field name="client_id"/> | 
				
			|||
                                        </strong> | 
				
			|||
                                    </li> | 
				
			|||
                                    <li> | 
				
			|||
                                        <strong class="o_kanban_record_subtitle"> | 
				
			|||
                                            Lawyer: | 
				
			|||
                                            <field name="lawyer_id"/> | 
				
			|||
                                        </strong> | 
				
			|||
                                    </li> | 
				
			|||
                                    <li> | 
				
			|||
                                        <field name="state" | 
				
			|||
                                               decoration-success="state == 'in progress' | 
				
			|||
                                               or state == 'won'" | 
				
			|||
                                               decoration-info="state == 'draft'" | 
				
			|||
                                               widget="badge"/> | 
				
			|||
                                    </li> | 
				
			|||
                                </ul> | 
				
			|||
                            </div> | 
				
			|||
                        </div> | 
				
			|||
                    </t> | 
				
			|||
                </templates> | 
				
			|||
            </kanban> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
    <!-- Form view For Case Registration --> | 
				
			|||
    <record id="case_registration_view_form" model="ir.ui.view"> | 
				
			|||
        <field name="name">case.registration.view.form</field> | 
				
			|||
        <field name="model">case.registration</field> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <form> | 
				
			|||
                <header> | 
				
			|||
                    <field name="state" widget="statusbar" | 
				
			|||
                           statusbar_visible="draft,in_progress,invoiced"/> | 
				
			|||
                    <button name="action_confirm" | 
				
			|||
                            string="Confirm" type="object" | 
				
			|||
                            class="oe_highlight" states="draft"/> | 
				
			|||
                    <button name="action_reject" string="Reject" type="object" | 
				
			|||
                            class="oe_highlight" states="draft"/> | 
				
			|||
                    <button name="action_evidence" string="Evidence" | 
				
			|||
                            type="object" | 
				
			|||
                            class="oe_highlight" states="in_progress"/> | 
				
			|||
                    <button name="action_trial" string="Trial" type="object" | 
				
			|||
                            class="oe_highlight" states="in_progress"/> | 
				
			|||
                    <button name="action_invoice" | 
				
			|||
                            string="Create Invoice" type="object" | 
				
			|||
                            class="oe_highlight" states="in_progress"/> | 
				
			|||
                    <button name="action_full_settlement" | 
				
			|||
                            string="Full Settlement" type="object" | 
				
			|||
                            class="btn-secondary" states="in_progress"/> | 
				
			|||
                    <button name="action_won" | 
				
			|||
                            string="Won" type="object" | 
				
			|||
                            class="oe_highlight" states="invoiced"/> | 
				
			|||
                    <button name="action_lost" | 
				
			|||
                            string="Lost" type="object" | 
				
			|||
                            class="btn-secondary" states="invoiced"/> | 
				
			|||
                    <button name="action_cancel" | 
				
			|||
                            string="Cancel" type="object" | 
				
			|||
                            class="btn-secondary" states="in_progress"/> | 
				
			|||
                    <button name="action_reset_to_draft" | 
				
			|||
                            string="Reset To Draft" type="object" | 
				
			|||
                            class="oe_highlight" states="cancel"/> | 
				
			|||
                </header> | 
				
			|||
                <sheet> | 
				
			|||
                    <div name="button_box" position="inside"> | 
				
			|||
                        <button name="get_attachments" type="object" | 
				
			|||
                                class="oe_stat_button" | 
				
			|||
                                icon="fa-paperclip"> | 
				
			|||
                            <div class="o_field_widget o_stat_info"> | 
				
			|||
                                <span class="o_stat_value"> | 
				
			|||
                                    <field name="case_attachment_count"/> | 
				
			|||
                                </span> | 
				
			|||
                                <span class="o_stat_text">Attachment</span> | 
				
			|||
                            </div> | 
				
			|||
                        </button> | 
				
			|||
                        <button name="get_invoice" type="object" | 
				
			|||
                                class="oe_stat_button" | 
				
			|||
                                icon="fa-pencil-square-o" | 
				
			|||
                                attrs="{'invisible':[('state','=','draft')]}"> | 
				
			|||
                            <div class="o_field_widget o_stat_info"> | 
				
			|||
                                <span class="o_stat_value"> | 
				
			|||
                                    <field name="invoice_count"/> | 
				
			|||
                                </span> | 
				
			|||
                                <span class="o_stat_text">Invoice</span> | 
				
			|||
                            </div> | 
				
			|||
                        </button> | 
				
			|||
                        <button name="get_evidence" type="object" | 
				
			|||
                                class="oe_stat_button" | 
				
			|||
                                icon="fa-eye" | 
				
			|||
                                attrs="{'invisible':[('state','=','draft')]}"> | 
				
			|||
                            <div class="o_field_widget o_stat_info"> | 
				
			|||
                                <span class="o_stat_value"> | 
				
			|||
                                    <field name="evidence_count"/> | 
				
			|||
                                </span> | 
				
			|||
                                <span class="o_stat_text">Evidence</span> | 
				
			|||
                            </div> | 
				
			|||
                        </button> | 
				
			|||
                        <button name="get_trial" type="object" | 
				
			|||
                                class="oe_stat_button" | 
				
			|||
                                icon="fa-gavel" | 
				
			|||
                                attrs="{'invisible':[('state','=','draft')]}"> | 
				
			|||
                            <div class="o_field_widget o_stat_info"> | 
				
			|||
                                <span class="o_stat_value"> | 
				
			|||
                                    <field name="trial_count"/> | 
				
			|||
                                </span> | 
				
			|||
                                <span class="o_stat_text">Trial</span> | 
				
			|||
                            </div> | 
				
			|||
                        </button> | 
				
			|||
                    </div> | 
				
			|||
                    <group> | 
				
			|||
                        <h1> | 
				
			|||
                            <field name="name" placeholder="Case No"/> | 
				
			|||
                        </h1> | 
				
			|||
                    </group> | 
				
			|||
                    <group> | 
				
			|||
                        <group> | 
				
			|||
                            <field name="client_id"/> | 
				
			|||
                            <field name="email"/> | 
				
			|||
                            <field name="company_id"/> | 
				
			|||
                        </group> | 
				
			|||
                        <group> | 
				
			|||
                            <field name="start_date" | 
				
			|||
                                   attrs="{'readonly':[('state', 'in', ['won', 'lost', 'cancel'])]}"/> | 
				
			|||
                            <field name="end_date" readonly="1" | 
				
			|||
                                   attrs="{'invisible':[('state', 'in', ['invoiced', 'in_progress', 'draft'])]}"/> | 
				
			|||
                            <field name="contact_no"/> | 
				
			|||
                            <field name="payment_method" | 
				
			|||
                                   attrs="{'invisible':[('state','=','draft')]}"/> | 
				
			|||
                            <field name="register_date" | 
				
			|||
                                   attrs="{'invisible':[   ('state','!=','draft')]}"/> | 
				
			|||
                        </group> | 
				
			|||
                    </group> | 
				
			|||
                    <notebook> | 
				
			|||
                        <page string="Description"> | 
				
			|||
                            <field name="description"/> | 
				
			|||
                        </page> | 
				
			|||
                        <page string="Case Details"> | 
				
			|||
                            <group> | 
				
			|||
                                <group> | 
				
			|||
                                    <field name="lawyer_unavailable" | 
				
			|||
                                           invisible="1"/> | 
				
			|||
                                    <field name="lawyer_id" | 
				
			|||
                                           attrs="{'invisible':[('state','=','draft')]}" | 
				
			|||
                                           options="{'no_create': True}"/> | 
				
			|||
                                    <field name="junior_lawyer_id" | 
				
			|||
                                           attrs="{'invisible':['|', ('state','=','draft'), ('lawyer_unavailable','=',False)]}" | 
				
			|||
                                           options="{'no_create': True}"/> | 
				
			|||
                                    <field name="case_category_id"/> | 
				
			|||
                                </group> | 
				
			|||
                                <group> | 
				
			|||
                                    <field name="court_no_required" | 
				
			|||
                                           invisible="1"/> | 
				
			|||
                                    <field name="court_id" attrs="{'required':[('court_no_required','!=',False), ('state', '!=', 'draft')], | 
				
			|||
                                    'invisible': [('state', '=', 'draft')]}" | 
				
			|||
                                           options="{'no_create': True}"/> | 
				
			|||
                                    <field name="judge_id" | 
				
			|||
                                           attrs="{'invisible':[('state','=','draft')]}" | 
				
			|||
                                           options="{'no_create': True, 'no_open': True}"/> | 
				
			|||
                                </group> | 
				
			|||
                            </group> | 
				
			|||
                        </page> | 
				
			|||
                        <page string="Oppositions" | 
				
			|||
                              attrs="{'invisible': [('state', '=', 'draft')]}"> | 
				
			|||
                            <group> | 
				
			|||
                                <group> | 
				
			|||
                                    <field name="opposition_name"/> | 
				
			|||
                                    <field name="opp_party_contact"/> | 
				
			|||
                                </group> | 
				
			|||
                                <group> | 
				
			|||
                                    <field name="opposite_lawyer"/> | 
				
			|||
                                </group> | 
				
			|||
                            </group> | 
				
			|||
                        </page> | 
				
			|||
                        <page string="Victim" | 
				
			|||
                              attrs="{'invisible':[('state','=','draft')]}"> | 
				
			|||
                            <field name="victim_ids"> | 
				
			|||
                                <tree editable="bottom"> | 
				
			|||
                                    <field name="name"/> | 
				
			|||
                                    <field name="contact"/> | 
				
			|||
                                </tree> | 
				
			|||
                            </field> | 
				
			|||
                        </page> | 
				
			|||
                        <page string="Sittings" | 
				
			|||
                              attrs="{'invisible':[('state','=','draft')]}"> | 
				
			|||
                            <field name="sitting_detail_ids"> | 
				
			|||
                                <tree editable="bottom"> | 
				
			|||
                                    <field name="details"/> | 
				
			|||
                                    <field name="contact"/> | 
				
			|||
                                    <field name="date"/> | 
				
			|||
                                    <field name="done"/> | 
				
			|||
                                </tree> | 
				
			|||
                            </field> | 
				
			|||
                        </page> | 
				
			|||
                    </notebook> | 
				
			|||
                </sheet> | 
				
			|||
                <div class="oe_chatter"> | 
				
			|||
                    <field name="message_follower_ids"/> | 
				
			|||
                    <field name="activity_ids"/> | 
				
			|||
                    <field name="message_ids"/> | 
				
			|||
                </div> | 
				
			|||
            </form> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,29 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Form View For Employee Form --> | 
				
			|||
    <record id="view_employee_form" model="ir.ui.view"> | 
				
			|||
        <field name="name">hr.employee.view.form.inherit.legal.case.management | 
				
			|||
        </field> | 
				
			|||
        <field name="model">hr.employee</field> | 
				
			|||
        <field name="inherit_id" ref="hr.view_employee_form"/> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <xpath expr="//group/group[2]/field[@name='coach_id']" | 
				
			|||
                   position="after"> | 
				
			|||
                <field name="is_lawyer"/> | 
				
			|||
            </xpath> | 
				
			|||
            <xpath expr="//notebook/page[@name='hr_settings']" | 
				
			|||
                   position="after"> | 
				
			|||
                <page name="lawyer" string="Lawyer" | 
				
			|||
                      attrs="{'invisible':[('is_lawyer','=',False)]}"> | 
				
			|||
                    <group> | 
				
			|||
                        <field name="not_available"/> | 
				
			|||
                    </group> | 
				
			|||
                    <group string="Wages"> | 
				
			|||
                        <field name="wage_per_trial"/> | 
				
			|||
                        <field name="wage_per_case"/> | 
				
			|||
                    </group> | 
				
			|||
                </page> | 
				
			|||
            </xpath> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,150 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Actions --> | 
				
			|||
    <record id="res_partner_action" model="ir.actions.act_window"> | 
				
			|||
        <field name="name">Clients</field> | 
				
			|||
        <field name="res_model">res.partner</field> | 
				
			|||
        <field name="type">ir.actions.act_window</field> | 
				
			|||
        <field name="view_mode">kanban,tree,form</field> | 
				
			|||
    </record> | 
				
			|||
    <record id="hr_employee_action" model="ir.actions.act_window"> | 
				
			|||
        <field name="name">Employees</field> | 
				
			|||
        <field name="res_model">hr.employee</field> | 
				
			|||
        <field name="type">ir.actions.act_window</field> | 
				
			|||
        <field name="view_mode">kanban,tree,form</field> | 
				
			|||
    </record> | 
				
			|||
    <record id="hr_employee_lawyer_action" model="ir.actions.act_window"> | 
				
			|||
        <field name="name">Lawyers</field> | 
				
			|||
        <field name="res_model">hr.employee</field> | 
				
			|||
        <field name="type">ir.actions.act_window</field> | 
				
			|||
        <field name="view_mode">kanban,tree,form</field> | 
				
			|||
        <field name="domain">[('is_lawyer','!=',False)]</field> | 
				
			|||
        <field name="context">{'default_is_lawyer': True}</field> | 
				
			|||
        <field name="help" type="html"> | 
				
			|||
            <p class="o_view_nocontent_smiling_face"> | 
				
			|||
                No data yet! | 
				
			|||
            </p> | 
				
			|||
            <p> | 
				
			|||
                Create New Lawyer | 
				
			|||
            </p> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
    <record id="legal_evidence_action" model="ir.actions.act_window"> | 
				
			|||
        <field name="name">Evidence</field> | 
				
			|||
        <field name="res_model">legal.evidence</field> | 
				
			|||
        <field name="type">ir.actions.act_window</field> | 
				
			|||
        <field name="view_mode">tree,form</field> | 
				
			|||
        <field name="help" type="html"> | 
				
			|||
            <p class="o_view_nocontent_smiling_face"> | 
				
			|||
                No data yet! | 
				
			|||
            </p> | 
				
			|||
            <p> | 
				
			|||
                Create New Evidences | 
				
			|||
            </p> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
 | 
				
			|||
    <record id="legal_trial_action" model="ir.actions.act_window"> | 
				
			|||
        <field name="name">Trial</field> | 
				
			|||
        <field name="res_model">legal.trial</field> | 
				
			|||
        <field name="type">ir.actions.act_window</field> | 
				
			|||
        <field name="view_mode">tree,form</field> | 
				
			|||
        <field name="help" type="html"> | 
				
			|||
            <p class="o_view_nocontent_smiling_face"> | 
				
			|||
                No data yet! | 
				
			|||
            </p> | 
				
			|||
            <p> | 
				
			|||
                Create New Trials | 
				
			|||
            </p> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
 | 
				
			|||
    <record id="case_registration_action" model="ir.actions.act_window"> | 
				
			|||
        <field name="name">Register Case</field> | 
				
			|||
        <field name="res_model">case.registration</field> | 
				
			|||
        <field name="view_mode">tree,form,kanban</field> | 
				
			|||
        <field name="help" type="html"> | 
				
			|||
            <p class="o_view_nocontent_smiling_face"> | 
				
			|||
                No data yet! | 
				
			|||
            </p> | 
				
			|||
            <p> | 
				
			|||
                Register New Case | 
				
			|||
            </p> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
 | 
				
			|||
    <record id="legal_court_action" model="ir.actions.act_window"> | 
				
			|||
        <field name="name">Court</field> | 
				
			|||
        <field name="res_model">legal.court</field> | 
				
			|||
        <field name="view_mode">tree,form</field> | 
				
			|||
        <field name="help" type="html"> | 
				
			|||
            <p class="o_view_nocontent_smiling_face"> | 
				
			|||
                No data yet! | 
				
			|||
            </p> | 
				
			|||
            <p> | 
				
			|||
                Create New Court | 
				
			|||
            </p> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
    <record id="legal_report_wizard_action" model="ir.actions.act_window"> | 
				
			|||
        <field name="name">Case Category</field> | 
				
			|||
        <field name="res_model">legal.case.report</field> | 
				
			|||
        <field name="view_mode">form</field> | 
				
			|||
    </record> | 
				
			|||
    <record id="case_category_action" model="ir.actions.act_window"> | 
				
			|||
        <field name="name">Case Category</field> | 
				
			|||
        <field name="res_model">case.category</field> | 
				
			|||
        <field name="view_mode">tree,form</field> | 
				
			|||
        <field name="help" type="html"> | 
				
			|||
            <p class="o_view_nocontent_smiling_face"> | 
				
			|||
                No data yet! | 
				
			|||
            </p> | 
				
			|||
            <p> | 
				
			|||
                Create New Case Category | 
				
			|||
            </p> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
    <!--    Menus And Sub Menus--> | 
				
			|||
    <menuitem id="legal_case_management_root" name="Legal Case Management" | 
				
			|||
              groups="legal_case_management.legal_case_management_group_clerk,legal_case_management_group_lawyer,legal_case_management_group_admin"/> | 
				
			|||
 | 
				
			|||
    <menuitem id="menu_legal_case" name="Operations" | 
				
			|||
              parent="legal_case_management_root" | 
				
			|||
              groups="legal_case_management.legal_case_management_group_clerk,legal_case_management_group_lawyer,legal_case_management_group_admin" | 
				
			|||
              sequence="2"/> | 
				
			|||
    <menuitem id="case_registration_menu_action" name="Register Case" | 
				
			|||
              parent="menu_legal_case" | 
				
			|||
              sequence="1" | 
				
			|||
              action="case_registration_action"/> | 
				
			|||
    <menuitem id="menu_evidence" name="Evidence" parent="menu_legal_case" | 
				
			|||
              sequence="2" action="legal_evidence_action"/> | 
				
			|||
    <menuitem id="menu_trial" name="Trial" parent="menu_legal_case" sequence="3" | 
				
			|||
              action="legal_trial_action"/> | 
				
			|||
 | 
				
			|||
    <menuitem id="menu_master_data" name="Master Data" | 
				
			|||
              parent="legal_case_management_root" | 
				
			|||
              groups="legal_case_management.legal_case_management_group_admin" | 
				
			|||
              sequence="3"/> | 
				
			|||
    <menuitem id="menu_customers" name="Clients" parent="menu_master_data" | 
				
			|||
              sequence="2" action="res_partner_action"/> | 
				
			|||
    <menuitem id="menu_employees" name="Office Staffs" parent="menu_master_data" | 
				
			|||
              sequence="3" | 
				
			|||
              action="hr_employee_action"/> | 
				
			|||
    <menuitem id="menu_lawyers" name="Lawyers" parent="menu_master_data" | 
				
			|||
              sequence="1" action="hr_employee_lawyer_action"/> | 
				
			|||
 | 
				
			|||
    <menuitem id="menu_legal_case_reporting" name="Reporting" | 
				
			|||
              parent="legal_case_management_root" | 
				
			|||
              groups="legal_case_management.legal_case_management_group_admin" | 
				
			|||
              action="legal_case_report_action" sequence="4"/> | 
				
			|||
 | 
				
			|||
    <menuitem id="configuration_menu" name="Configuration" | 
				
			|||
              parent="legal_case_management_root" | 
				
			|||
              groups="legal_case_management.legal_case_management_group_admin" | 
				
			|||
              sequence="5"/> | 
				
			|||
    <menuitem id="court_menu_action" name="Court" parent="configuration_menu" | 
				
			|||
              sequence="1" action="legal_court_action"/> | 
				
			|||
    <menuitem id="case_category_menu_action" name="Case Category" | 
				
			|||
              parent="configuration_menu" sequence="4" | 
				
			|||
              action="case_category_action"/> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,198 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Template For Portal View For Case Registration--> | 
				
			|||
    <template id="portal_legal_case_page" name="Case Portal Template" | 
				
			|||
              inherit_id="portal.portal_sidebar" primary="True"> | 
				
			|||
        <xpath expr="//div[hasclass('o_portal_sidebar')]" position="inside"> | 
				
			|||
            <t t-set="o_portal_fullwidth_alert"> | 
				
			|||
                <t t-call="portal.portal_back_in_edit_mode"> | 
				
			|||
                    <t t-set="url" t-value="'/my/cases/#'"/> | 
				
			|||
                </t> | 
				
			|||
            </t> | 
				
			|||
            <div class="row mt16 o_portal_sale_sidebar"> | 
				
			|||
                <t t-set="o_portal_fullwidth_alert"> | 
				
			|||
                    <t t-call="portal.portal_back_in_edit_mode"> | 
				
			|||
                        <t t-set="backend_url" | 
				
			|||
                           t-value="'/web#return_label=Website&model=%s&id=%s&' % (case_record._name, case_record.id)"/> | 
				
			|||
                    </t> | 
				
			|||
                </t> | 
				
			|||
                <div id="case_content" | 
				
			|||
                     class="col-12 col-lg justify-content-end"> | 
				
			|||
                    <div t-attf-class="card #{'pb-5' if report_type == 'pdf' else ''}" | 
				
			|||
                         id="portal_sale_content"> | 
				
			|||
                        <div t-call="legal_case_management.case_portal_content"/> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
                <div id="legal_case_communication" | 
				
			|||
                     class="mt-4"> | 
				
			|||
                    <h2>History</h2> | 
				
			|||
                    <t t-call="portal.message_thread"> | 
				
			|||
                        <t t-set="object" | 
				
			|||
                           t-value="case_record"/> | 
				
			|||
                    </t> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
        </xpath> | 
				
			|||
    </template> | 
				
			|||
    <!-- Template For Case Details in Portal View--> | 
				
			|||
    <template id="case_portal_content" name="Payslip Portal Content"> | 
				
			|||
        <div id="introduction" class="pb-2 pt-3 card-header bg-white"> | 
				
			|||
            <h2 class="my-0"> | 
				
			|||
                <t t-out="case_record.name"/> | 
				
			|||
            </h2> | 
				
			|||
        </div> | 
				
			|||
        <div class="card-body"> | 
				
			|||
            <!-- Informations --> | 
				
			|||
            <div id="informations"> | 
				
			|||
                <div class="row" id="so_date"> | 
				
			|||
                    <div class="mb-3 col-6"> | 
				
			|||
                        <strong>Register Date:</strong> | 
				
			|||
 | 
				
			|||
                        <span t-field="case_record.start_date" | 
				
			|||
                              t-options='{"widget": "date"}'/> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
                <div class="row" id="invoicing_shipping_address"> | 
				
			|||
                    <div class="col-lg-6"> | 
				
			|||
                        <strong class="d-block mb-1"> | 
				
			|||
 | 
				
			|||
                            Client Details: | 
				
			|||
                        </strong> | 
				
			|||
                        <address t-field="case_record.client_id" | 
				
			|||
                                 t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": True}'/> | 
				
			|||
                    </div> | 
				
			|||
                    <div id="lawyer_details" | 
				
			|||
                         class="col-lg-6"> | 
				
			|||
                        <t t-if="case_record.lawyer_id"> | 
				
			|||
                            <strong class="d-block mb-1"> | 
				
			|||
                                Lawyer: | 
				
			|||
                            </strong> | 
				
			|||
                            <address t-field="case_record.lawyer_id.name"/> | 
				
			|||
                        </t> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
            <section id="details" style="page-break-inside: auto;" class="mt32"> | 
				
			|||
                <h3 id="details">Case Details</h3> | 
				
			|||
                <table t-att-data-order-id="case_record.id" | 
				
			|||
                       class="table table-sm"> | 
				
			|||
                    <thead class="bg-100"> | 
				
			|||
                        <tr> | 
				
			|||
                            <th class="text-start" id="product_name_header"> | 
				
			|||
                                Case Category | 
				
			|||
                            </th> | 
				
			|||
                            <th class="text-start" id="product_name_header"> | 
				
			|||
                                Case Details | 
				
			|||
                            </th> | 
				
			|||
                            <th class="text-start" id="product_name_header"> | 
				
			|||
                                Contact Number | 
				
			|||
                            </th> | 
				
			|||
                            <t t-if="evidence"> | 
				
			|||
                                <th class="text-start" id="product_name_header"> | 
				
			|||
                                    Evidence | 
				
			|||
                                </th> | 
				
			|||
                            </t> | 
				
			|||
                            <t t-if="trial"> | 
				
			|||
                                <th class="text-start" id="product_name_header"> | 
				
			|||
                                    Trial | 
				
			|||
                                </th> | 
				
			|||
                            </t> | 
				
			|||
                            <th class="text-start" id="product_name_header"> | 
				
			|||
                                State | 
				
			|||
                            </th> | 
				
			|||
                        </tr> | 
				
			|||
                    </thead> | 
				
			|||
                    <tbody class="sale_tbody"> | 
				
			|||
                        <tr> | 
				
			|||
                            <td> | 
				
			|||
                                <span t-field="case_record.case_category_id.name"/> | 
				
			|||
                            </td> | 
				
			|||
                            <td> | 
				
			|||
                                <span t-field="case_record.description"/> | 
				
			|||
                            </td> | 
				
			|||
                            <td> | 
				
			|||
                                <span t-field="case_record.contact_no"/> | 
				
			|||
                            </td> | 
				
			|||
                            <t t-if="evidence"> | 
				
			|||
                                <t t-foreach="evidence" t-as="evidence"> | 
				
			|||
                                    <td> | 
				
			|||
                                        <span t-field="evidence.name"/> | 
				
			|||
                                    </td> | 
				
			|||
                                    <br/> | 
				
			|||
                                </t> | 
				
			|||
                            </t> | 
				
			|||
                            <t t-if="evidence"> | 
				
			|||
                                <t t-foreach="trial" t-as="trial"> | 
				
			|||
                                    <td> | 
				
			|||
                                        <span t-field="trial.name"/> | 
				
			|||
                                    </td> | 
				
			|||
                                </t> | 
				
			|||
                            </t> | 
				
			|||
                            <td> | 
				
			|||
                                <t t-if="case_record.state=='draft'"> | 
				
			|||
                                    <span class="badge rounded-pill text-bg-info"> | 
				
			|||
                                        <i class="fa fa-fw fa-clock-o" | 
				
			|||
                                           aria-label="Opened" title="Opened" | 
				
			|||
                                           role="img"/> | 
				
			|||
                                        <span class="d-none d-md-inline">Draft | 
				
			|||
                                        </span> | 
				
			|||
                                    </span> | 
				
			|||
                                </t> | 
				
			|||
                                <t t-if="case_record.state=='in_progress'"> | 
				
			|||
                                    <span class="badge rounded-pill text-bg-success"> | 
				
			|||
                                        <i class="fa fa-fw fa-check" | 
				
			|||
                                           aria-label="In Progress" title="Paid" | 
				
			|||
                                           role="img"/> | 
				
			|||
                                        <span class="d-none d-md-inline">In | 
				
			|||
                                            Progress | 
				
			|||
                                        </span> | 
				
			|||
                                    </span> | 
				
			|||
                                </t> | 
				
			|||
                                <t t-if="case_record=='invoiced'"> | 
				
			|||
                                    <span class="badge rounded-pill text-bg-success"> | 
				
			|||
                                        <i class="fa fa-fw fa-check" | 
				
			|||
                                           aria-label="Reversed" | 
				
			|||
                                           title="Invoiced" role="img"/> | 
				
			|||
                                        <span class="d-none d-md-inline"> | 
				
			|||
                                            Invoiced | 
				
			|||
                                        </span> | 
				
			|||
                                    </span> | 
				
			|||
                                </t> | 
				
			|||
                                <t t-if="case_record.state=='won'"> | 
				
			|||
                                    <span class="badge rounded-pill text-bg-success"> | 
				
			|||
                                        <i class="fa fa-fw fa-check" | 
				
			|||
                                           aria-label="Reversed" | 
				
			|||
                                           title="Invoiced" role="img"/> | 
				
			|||
                                        <span class="d-none d-md-inline"> | 
				
			|||
                                            Won | 
				
			|||
                                        </span> | 
				
			|||
                                    </span> | 
				
			|||
                                </t> | 
				
			|||
                                <t t-if="case_record.state=='lost'"> | 
				
			|||
                                    <span class="badge rounded-pill text-bg-danger"> | 
				
			|||
                                        <i class="fa fa-fw fa-check" | 
				
			|||
                                           aria-label="Reversed" | 
				
			|||
                                           title="Lost" role="img"/> | 
				
			|||
                                        <span class="d-none d-md-inline"> | 
				
			|||
                                            Lost | 
				
			|||
                                        </span> | 
				
			|||
                                    </span> | 
				
			|||
                                </t> | 
				
			|||
                                <t t-if="case_record.state=='cancel'"> | 
				
			|||
                                    <span class="badge rounded-pill text-bg-warning"> | 
				
			|||
                                        <i class="fa fa-fw fa-remove" | 
				
			|||
                                           aria-label="Cancelled" | 
				
			|||
                                           title="Cancelled" role="img"/> | 
				
			|||
                                        <span class="d-none d-md-inline"> | 
				
			|||
                                            Cancelled | 
				
			|||
                                        </span> | 
				
			|||
                                    </span> | 
				
			|||
                                </t> | 
				
			|||
                            </td> | 
				
			|||
                        </tr> | 
				
			|||
                    </tbody> | 
				
			|||
                </table> | 
				
			|||
            </section> | 
				
			|||
        </div> | 
				
			|||
    </template> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,14 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Tree view For Court --> | 
				
			|||
    <record id="legal_court_view_tree" model="ir.ui.view"> | 
				
			|||
        <field name="name">legal.court.tree</field> | 
				
			|||
        <field name="model">legal.court</field> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <tree editable="bottom"> | 
				
			|||
                <field name="name"/> | 
				
			|||
                <field name="judge_id"/> | 
				
			|||
            </tree> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,66 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- From View For Evidence--> | 
				
			|||
    <record id="legal_evidence_view_form" model="ir.ui.view"> | 
				
			|||
        <field name="name">legal.evidence.view.form</field> | 
				
			|||
        <field name="model">legal.evidence</field> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <form string="Evidence"> | 
				
			|||
                <sheet> | 
				
			|||
                    <div name="button_box" position="inside"> | 
				
			|||
                        <button name="get_evidence_attachments" type="object" | 
				
			|||
                                class="oe_stat_button" | 
				
			|||
                                icon="fa-paperclip"> | 
				
			|||
                            <div class="o_field_widget o_stat_info"> | 
				
			|||
                                <span class="o_stat_value"> | 
				
			|||
                                    <field name="attachment_count"/> | 
				
			|||
                                </span> | 
				
			|||
                                <span class="o_stat_text">Attachments</span> | 
				
			|||
                            </div> | 
				
			|||
                        </button> | 
				
			|||
                    </div> | 
				
			|||
                    <div class="oe_title"> | 
				
			|||
                        <h1> | 
				
			|||
                            <field name="name"/> | 
				
			|||
                        </h1> | 
				
			|||
                    </div> | 
				
			|||
                    <group> | 
				
			|||
                        <group> | 
				
			|||
                            <field name="case_id" | 
				
			|||
                                   options="{'no_create': True}"/> | 
				
			|||
                            <field name="client_id"/> | 
				
			|||
                        </group> | 
				
			|||
                        <group> | 
				
			|||
                            <field name="in_favor_id"/> | 
				
			|||
                        </group> | 
				
			|||
                    </group> | 
				
			|||
                    <notebook> | 
				
			|||
                        <page string="Description" name="evidence_description"> | 
				
			|||
                            <field name="description" | 
				
			|||
                                   placeholder="description"/> | 
				
			|||
                        </page> | 
				
			|||
                    </notebook> | 
				
			|||
                </sheet> | 
				
			|||
                <div class="oe_chatter"> | 
				
			|||
                    <field name="message_follower_ids" widget="mail_followers"/> | 
				
			|||
                    <field name="activity_ids"/> | 
				
			|||
                    <field name="message_ids" widget="mail_thread"/> | 
				
			|||
                </div> | 
				
			|||
            </form> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
    <!-- Tree View For Evidence --> | 
				
			|||
    <record id="legal_evidence_view_tree" model="ir.ui.view"> | 
				
			|||
        <field name="name">Evidence</field> | 
				
			|||
        <field name="model">legal.evidence</field> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <tree> | 
				
			|||
                <field name="name"/> | 
				
			|||
                <field name="in_favor_id"/> | 
				
			|||
                <field name="client_id"/> | 
				
			|||
                <field name="case_id"/> | 
				
			|||
                <field name="description" optional="hide"/> | 
				
			|||
            </tree> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,53 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Form View For Trial--> | 
				
			|||
    <record id="legal_trial_view_form" model="ir.ui.view"> | 
				
			|||
        <field name="name">Trial</field> | 
				
			|||
        <field name="model">legal.trial</field> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <form string="Trial"> | 
				
			|||
                <sheet> | 
				
			|||
                    <div class="oe_title"> | 
				
			|||
                        <h1> | 
				
			|||
                            <field name="name"/> | 
				
			|||
                        </h1> | 
				
			|||
                    </div> | 
				
			|||
                    <group> | 
				
			|||
                        <group> | 
				
			|||
                            <field name="case_id" | 
				
			|||
                                   options="{'no_create': True}"/> | 
				
			|||
                            <field name="client_id"/> | 
				
			|||
                            <field name="judge_id"/> | 
				
			|||
                        </group> | 
				
			|||
                        <group> | 
				
			|||
                            <field name="trial_date"/> | 
				
			|||
                            <field name="court_id"/> | 
				
			|||
                            <field name="is_invoiced" invisible="1"/> | 
				
			|||
                        </group> | 
				
			|||
                    </group> | 
				
			|||
                    <notebook> | 
				
			|||
                        <page string="Description" name="trial_description"> | 
				
			|||
                            <field name="description" | 
				
			|||
                                   placeholder="description"/> | 
				
			|||
                        </page> | 
				
			|||
                    </notebook> | 
				
			|||
                </sheet> | 
				
			|||
                <div class="oe_chatter"> | 
				
			|||
                    <field name="message_follower_ids" widget="mail_followers"/> | 
				
			|||
                    <field name="activity_ids"/> | 
				
			|||
                    <field name="message_ids" widget="mail_thread"/> | 
				
			|||
                </div> | 
				
			|||
            </form> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
    <!-- Tree View For Trial    --> | 
				
			|||
    <record id="legal_trial_view_tree" model="ir.ui.view"> | 
				
			|||
        <field name="name">Trial</field> | 
				
			|||
        <field name="model">legal.trial</field> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <tree> | 
				
			|||
                <field name="name"/> | 
				
			|||
            </tree> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,16 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Form View For Res Partner--> | 
				
			|||
    <record id="res_partner_view_form" model="ir.ui.view"> | 
				
			|||
        <field name="name">res.partner.view.form.inherit.legal.case.management | 
				
			|||
        </field> | 
				
			|||
        <field name="model">res.partner</field> | 
				
			|||
        <field name="inherit_id" ref="base.view_partner_form"/> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <xpath expr="//field[@name='vat']" position="after"> | 
				
			|||
                <field name="is_judge"/> | 
				
			|||
                <field name="judge_unavailable" invisible="1"/> | 
				
			|||
            </xpath> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,26 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <!--    Template For Thanks Page--> | 
				
			|||
    <template id="thanks_page"> | 
				
			|||
        <t t-call="website.layout"> | 
				
			|||
            <div id="wrap"> | 
				
			|||
                <div class="container"> | 
				
			|||
                    <h1>Thanks!</h1> | 
				
			|||
                    <div class="row"> | 
				
			|||
                        <div class="col-lg-8"> | 
				
			|||
                            <div class="alert alert-success" | 
				
			|||
                                 role="status"> | 
				
			|||
                                Your Case has been | 
				
			|||
                                registered | 
				
			|||
                                successfully. | 
				
			|||
                            </div> | 
				
			|||
                            <p> | 
				
			|||
                                We will get back to you shortly | 
				
			|||
                            </p> | 
				
			|||
                        </div> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
        </t> | 
				
			|||
    </template> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,24 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: LAJINA.K.V (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from . import full_settlement | 
				
			|||
from . import invoice_payment | 
				
			|||
from . import legal_case_report | 
				
			|||
@ -0,0 +1,64 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: LAJINA.K.V (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 <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################### | 
				
			|||
from odoo import fields, models | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class FullSettlement(models.TransientModel): | 
				
			|||
    """ Full Settlement""" | 
				
			|||
    _name = 'full.settlement' | 
				
			|||
    _description = 'Full Settlement' | 
				
			|||
 | 
				
			|||
    case_id = fields.Many2one('case.registration', string='Case', readonly=True, | 
				
			|||
                              help='Reference for case ') | 
				
			|||
    client_id = fields.Many2one(related='case_id.client_id', string='Client', | 
				
			|||
                                help='Client for particular case') | 
				
			|||
    lawyer_id = fields.Many2one(related='case_id.lawyer_id', string='Lawyer', | 
				
			|||
                                readonly=True, | 
				
			|||
                                help='Lawyer for particular case') | 
				
			|||
    date = fields.Date('Invoice Date', default=fields.Date.today, readonly=True, | 
				
			|||
                       help='Today date') | 
				
			|||
    cost = fields.Char('Amount', help='Invoice Amount') | 
				
			|||
 | 
				
			|||
    def print_invoice(self): | 
				
			|||
        """Print invoice""" | 
				
			|||
        if self.cost: | 
				
			|||
            account_move_id = self.env["account.move"].create([{ | 
				
			|||
                'move_type': 'out_invoice', | 
				
			|||
                'invoice_date': self.date, | 
				
			|||
                'partner_id': self.client_id.id, | 
				
			|||
                'case_ref': self.case_id.name, | 
				
			|||
            }]) | 
				
			|||
            account_move_id.invoice_line_ids.create([{ | 
				
			|||
                'name': 'Complete Settlement', | 
				
			|||
                'quantity': 1, | 
				
			|||
                'price_unit': self.cost, | 
				
			|||
                'move_id': account_move_id.id | 
				
			|||
            }]) | 
				
			|||
            self.case_id.state = 'invoiced' | 
				
			|||
            return { | 
				
			|||
                'name': "Journal Entry", | 
				
			|||
                'type': 'ir.actions.act_window', | 
				
			|||
                'res_model': 'account.move', | 
				
			|||
                'context': {'create': False}, | 
				
			|||
                'view_mode': 'form', | 
				
			|||
                'res_id': account_move_id.id, | 
				
			|||
            } | 
				
			|||