| @ -0,0 +1,50 @@ | |||||
|  | .. image:: https://img.shields.io/badge/license-LGPL--3-green.svg | ||||
|  |     :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html | ||||
|  |     :alt: License: LGPL-3 | ||||
|  | 
 | ||||
|  | Restrict Journal for Users | ||||
|  | ========================== | ||||
|  | * This module helps to restrict journal for the specific users.Users can access allowed journals only | ||||
|  | 
 | ||||
|  | Configuration | ||||
|  | ============= | ||||
|  | * No additional configuration required | ||||
|  | 
 | ||||
|  | Company | ||||
|  | ------- | ||||
|  | * `Cybrosys Techno Solutions <https://cybrosys.com/>`__ | ||||
|  | 
 | ||||
|  | License | ||||
|  | ------- | ||||
|  | General Public License, Version 3 (LGPL v3). | ||||
|  | (https://www.gnu.org/licenses/lgpl-3.0-standalone.html) | ||||
|  | 
 | ||||
|  | Credits | ||||
|  | ------- | ||||
|  | * Developer:(V16) Sreeshanth V S, | ||||
|  |             (V17) Ashwin A, | ||||
|  |             (V18) Mufeeda Shirin , | ||||
|  | * Contact: odoo@cybrosys.com | ||||
|  | 
 | ||||
|  | Contacts | ||||
|  | -------- | ||||
|  | * Mail Contact : odoo@cybrosys.com | ||||
|  | * Website : https://cybrosys.com | ||||
|  | 
 | ||||
|  | Bug Tracker | ||||
|  | ----------- | ||||
|  | Bugs are tracked on GitHub Issues. In case of trouble, please check there if | ||||
|  | your issue has already been reported. | ||||
|  | 
 | ||||
|  | Maintainer | ||||
|  | ========== | ||||
|  | .. image:: https://cybrosys.com/images/logo.png | ||||
|  |    :target: https://cybrosys.com | ||||
|  | 
 | ||||
|  | This module is maintained by Cybrosys Technologies. | ||||
|  | 
 | ||||
|  | For support and more information, please visit `Our Website <https://cybrosys.com/>`__ | ||||
|  | 
 | ||||
|  | Further information | ||||
|  | =================== | ||||
|  | HTML Description: `<static/description/index.html>`__ | ||||
| @ -0,0 +1,23 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################# | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.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 models | ||||
|  | from . import wizard | ||||
| @ -0,0 +1,45 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################# | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.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': "Restrict Journal for Users", | ||||
|  |     "version": "18.0.1.0.0", | ||||
|  |     "category": "Accounting ", | ||||
|  |     "summary": "User can select only allowed journals", | ||||
|  |     "description": """ Restrict account journal for the specific users to | ||||
|  |     access allowed journals only""", | ||||
|  |     'author': 'Cybrosys Techno Solutions', | ||||
|  |     'company': 'Cybrosys Techno Solutions', | ||||
|  |     'maintainer': 'Cybrosys Techno Solutions', | ||||
|  |     'website': "https://www.cybrosys.com", | ||||
|  |     'depends': ['base', 'account'], | ||||
|  |     'data': [ | ||||
|  |         'security/account_restrict_journal_groups.xml', | ||||
|  |         'security/account_move_security.xml', | ||||
|  |         'views/res_users_views.xml', | ||||
|  |         'views/account_move_views.xml' | ||||
|  |     ], | ||||
|  |     'images': ['static/description/banner.png'], | ||||
|  |     'license': 'LGPL-3', | ||||
|  |     'installable': True, | ||||
|  |     'auto_install': False, | ||||
|  |     'application': False, | ||||
|  | } | ||||
| @ -0,0 +1,7 @@ | |||||
|  | ## Module <account_restrict_journal> | ||||
|  | 
 | ||||
|  | #### 15.03.2025 | ||||
|  | #### Version 18.0.1.0.0 | ||||
|  | ##### ADD | ||||
|  | - Initial Commit for Restrict Journal for Users | ||||
|  |     | ||||
| @ -0,0 +1,24 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################# | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.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 account_payment | ||||
|  | from . import res_users | ||||
| @ -0,0 +1,53 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################# | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.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 ValidationError | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class AccountMove(models.Model): | ||||
|  |     """Inherited model for checking the journal type in account.move.""" | ||||
|  |     _inherit = 'account.move' | ||||
|  | 
 | ||||
|  |     is_check_journal = fields.Boolean(string="Check Journal", | ||||
|  |                                       help="Compute field for check the " | ||||
|  |                                            "current record's journal type ", | ||||
|  |                                       compute="_compute_is_check_journal") | ||||
|  | 
 | ||||
|  |     def _compute_is_check_journal(self): | ||||
|  |         """Compute field for showing validation error for restricted journal's | ||||
|  |         records""" | ||||
|  |         for rec in self: | ||||
|  |             rec.is_check_journal = True | ||||
|  |             for line in rec.line_ids: | ||||
|  |                 if line.full_reconcile_id: | ||||
|  |                     payment = self.env['account.payment.register'].search( | ||||
|  |                         [('id', '=', line.full_reconcile_id.id)]) | ||||
|  |                     if payment.journal_id.id in rec.env.user.journal_ids.ids: | ||||
|  |                         raise ValidationError(_('Restricted journals found.')) | ||||
|  |             if rec.journal_id.id in rec.env.user.journal_ids.ids: | ||||
|  |                 raise ValidationError(_('Restricted journals found.')) | ||||
|  | 
 | ||||
|  |     @api.onchange('partner_id') | ||||
|  |     def _onchange_partner_id(self): | ||||
|  |         """Function for hiding restricted journals from account.move.""" | ||||
|  |         if self.journal_id.id in self.env.user.journal_ids.ids: | ||||
|  |             self.journal_id = False | ||||
| @ -0,0 +1,52 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################# | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.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, models, _ | ||||
|  | from odoo.exceptions import ValidationError | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class AccountPayment(models.Model): | ||||
|  |     """Inherits the model account.payment to add Validation Error for | ||||
|  |     Restricted Journals""" | ||||
|  |     _inherit = 'account.payment' | ||||
|  | 
 | ||||
|  |     @api.model_create_multi | ||||
|  |     def create(self, vals): | ||||
|  |         """Super Create Method for Restricted journals""" | ||||
|  |         res = super(AccountPayment, self).create(vals) | ||||
|  |         for val in vals: | ||||
|  |             if int(val['journal_id']) in self.env.user.journal_ids.ids: | ||||
|  |                 raise ValidationError( | ||||
|  |                     _('You are restricted to create payment with this journal') | ||||
|  |                 ) | ||||
|  |             else: | ||||
|  |                 return res | ||||
|  | 
 | ||||
|  |     def write(self, vals): | ||||
|  |         """Super Write Method for Restricted journals""" | ||||
|  |         if vals.get('journal_id'): | ||||
|  |             journal_id = int(vals['journal_id']) | ||||
|  |             if journal_id in self.env.user.journal_ids.ids: | ||||
|  |                 raise ValidationError( | ||||
|  |                     _('You are restricted to modify payment with this journal') | ||||
|  |                 ) | ||||
|  |         return super().write(vals) | ||||
|  |      | ||||
| @ -0,0 +1,51 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################# | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.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 ResUsers(models.Model): | ||||
|  |     """ Adding journal fields where we can select allowed journal """ | ||||
|  |     _inherit = 'res.users' | ||||
|  | 
 | ||||
|  |     is_check_user = fields.Boolean(string="Check", | ||||
|  |                                    compute='_compute_is_check_user', | ||||
|  |                                    help="Check the field is true or false") | ||||
|  |     journal_ids = fields.Many2many( | ||||
|  |         'account.journal', | ||||
|  |         string='Restricted Journals', | ||||
|  |         help='Only the selected journal will be visible' | ||||
|  |              ' to the particular user') | ||||
|  | 
 | ||||
|  |     def _compute_is_check_user(self): | ||||
|  |         """Compute the is_check_user field and | ||||
|  |         clear journal_ids if necessary.""" | ||||
|  |         for user in self: | ||||
|  |             admin_group = user.env.ref( | ||||
|  |                 'account_restrict_journal.account_restrict_journal_group_admin' | ||||
|  |             ).id | ||||
|  |             user_groups = user.groups_id.mapped('id') | ||||
|  | 
 | ||||
|  |             if admin_group in user_groups: | ||||
|  |                 user.is_check_user = True | ||||
|  |             else: | ||||
|  |                 user.is_check_user = False | ||||
|  |                 user.journal_ids = False | ||||
| @ -0,0 +1,60 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <!--    Created new record rule for created user group Except the Restricted journals--> | ||||
|  |     <record id="account_journal_rule_users" model="ir.rule"> | ||||
|  |         <field name="name">Account Journal Restrict on Users</field> | ||||
|  |         <field name="model_id" ref="account.model_account_journal"/> | ||||
|  |         <field name="domain_force">[('id','not in', user.journal_ids.ids)] | ||||
|  |         </field> | ||||
|  |         <field name="groups" | ||||
|  |                eval="[(4, ref('account_restrict_journal.account_restrict_journal_group_admin'))]"/> | ||||
|  |         <field name="perm_read" eval="True"/> | ||||
|  |         <field name="perm_write" eval="True"/> | ||||
|  |         <field name="perm_create" eval="True"/> | ||||
|  |         <field name="perm_unlink" eval="True"/> | ||||
|  |         <field name="active" eval="True"/> | ||||
|  |     </record> | ||||
|  |     <!--    Created new record rule for user group only for the Restricted journals--> | ||||
|  |     <record id="account_restricted_journal_rule_users" model="ir.rule"> | ||||
|  |         <field name="name">Account Restricted Journals on Users</field> | ||||
|  |         <field name="model_id" ref="account.model_account_journal"/> | ||||
|  |         <field name="domain_force">[('id','in', user.journal_ids.ids)] | ||||
|  |         </field> | ||||
|  |         <field name="groups" | ||||
|  |                eval="[(4, ref('account_restrict_journal.account_restrict_journal_group_admin'))]"/> | ||||
|  |         <field name="perm_read" eval="True"/> | ||||
|  |         <field name="perm_write" eval="False"/> | ||||
|  |         <field name="perm_create" eval="False"/> | ||||
|  |         <field name="perm_unlink" eval="False"/> | ||||
|  |         <field name="active" eval="True"/> | ||||
|  |     </record> | ||||
|  |     <!--    Created new record rule for user group Except for the Restricted journals in Payment--> | ||||
|  |     <record id="account_payment_rule_users" model="ir.rule"> | ||||
|  |         <field name="name">Account Payment Restrict on Users</field> | ||||
|  |         <field name="model_id" ref="account.model_account_payment"/> | ||||
|  |         <field name="domain_force">[('journal_id','not in', | ||||
|  |             user.journal_ids.ids)] | ||||
|  |         </field> | ||||
|  |         <field name="groups" | ||||
|  |                eval="[(4, ref('account_restrict_journal.account_restrict_journal_group_admin'))]"/> | ||||
|  |         <field name="perm_read" eval="True"/> | ||||
|  |         <field name="perm_write" eval="True"/> | ||||
|  |         <field name="perm_create" eval="True"/> | ||||
|  |         <field name="perm_unlink" eval="True"/> | ||||
|  |         <field name="active" eval="True"/> | ||||
|  |     </record> | ||||
|  |     <!--    Created new record rule for user group Only for the Restricted journals in Payment--> | ||||
|  |     <record id="account_payments_restricted_rule_users" model="ir.rule"> | ||||
|  |         <field name="name">Account Payment Restrict journals on Users</field> | ||||
|  |         <field name="model_id" ref="account.model_account_payment"/> | ||||
|  |         <field name="domain_force">[('journal_id','in', user.journal_ids.ids)] | ||||
|  |         </field> | ||||
|  |         <field name="groups" | ||||
|  |                eval="[(4, ref('account_restrict_journal.account_restrict_journal_group_admin'))]"/> | ||||
|  |         <field name="perm_read" eval="True"/> | ||||
|  |         <field name="perm_write" eval="False"/> | ||||
|  |         <field name="perm_create" eval="True"/> | ||||
|  |         <field name="perm_unlink" eval="False"/> | ||||
|  |         <field name="active" eval="True"/> | ||||
|  |     </record> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,8 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  | <!--    New user group created for journal restriction--> | ||||
|  |     <record id="account_restrict_journal_group_admin" model="res.groups"> | ||||
|  |         <field name="name">Restrict Journals</field> | ||||
|  |         <field name="category_id" ref="base.module_category_usability"/> | ||||
|  |     </record> | ||||
|  | </odoo> | ||||
| After Width: | Height: | Size: 2.2 KiB | 
| After Width: | Height: | Size: 28 KiB | 
| After Width: | Height: | Size: 628 KiB | 
| After Width: | Height: | Size: 1.1 KiB | 
| After Width: | Height: | Size: 210 KiB | 
| After Width: | Height: | Size: 209 KiB | 
| After Width: | Height: | Size: 109 KiB | 
| After Width: | Height: | Size: 495 B | 
| After Width: | Height: | Size: 1.0 KiB | 
| After Width: | Height: | Size: 624 B | 
| After Width: | Height: | Size: 136 KiB | 
| After Width: | Height: | Size: 214 KiB | 
| After Width: | Height: | Size: 36 KiB | 
| After Width: | Height: | Size: 3.6 KiB | 
| After Width: | Height: | Size: 310 B | 
| After Width: | Height: | Size: 929 B | 
| After Width: | Height: | Size: 1.3 KiB | 
| After Width: | Height: | Size: 3.3 KiB | 
| After Width: | Height: | Size: 1.4 KiB | 
| After Width: | Height: | Size: 17 KiB | 
| After Width: | Height: | Size: 542 B | 
| After Width: | Height: | Size: 576 B | 
| After Width: | Height: | Size: 733 B | 
| After Width: | Height: | Size: 4.3 KiB | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 4.0 KiB | 
| After Width: | Height: | Size: 1.7 KiB | 
| After Width: | Height: | Size: 738 KiB | 
| After Width: | Height: | Size: 2.2 KiB | 
| After Width: | Height: | Size: 911 B | 
| After Width: | Height: | Size: 1.1 KiB | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 600 B | 
| After Width: | Height: | Size: 673 B | 
| After Width: | Height: | Size: 2.0 KiB | 
| After Width: | Height: | Size: 462 B | 
| After Width: | Height: | Size: 2.1 KiB | 
| After Width: | Height: | Size: 926 B | 
| After Width: | Height: | Size: 9.0 KiB | 
| After Width: | Height: | Size: 23 KiB | 
| After Width: | Height: | Size: 7.0 KiB | 
| After Width: | Height: | Size: 878 B | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 653 B | 
| After Width: | Height: | Size: 800 B | 
| After Width: | Height: | Size: 905 B | 
| After Width: | Height: | Size: 189 KiB | 
| After Width: | Height: | Size: 4.3 KiB | 
| After Width: | Height: | Size: 839 B | 
| After Width: | Height: | Size: 1.7 KiB | 
| After Width: | Height: | Size: 5.9 KiB | 
| After Width: | Height: | Size: 1.6 KiB | 
| After Width: | Height: | Size: 34 KiB | 
| After Width: | Height: | Size: 26 KiB | 
| After Width: | Height: | Size: 3.8 KiB | 
| After Width: | Height: | Size: 23 KiB | 
| After Width: | Height: | Size: 1.9 KiB | 
| After Width: | Height: | Size: 2.3 KiB | 
| After Width: | Height: | Size: 427 B | 
| After Width: | Height: | Size: 627 B | 
| After Width: | Height: | Size: 1.1 KiB | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 988 B | 
| After Width: | Height: | Size: 3.7 KiB | 
| After Width: | Height: | Size: 5.0 KiB | 
| After Width: | Height: | Size: 875 B | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 126 KiB | 
| After Width: | Height: | Size: 86 KiB | 
| After Width: | Height: | Size: 90 KiB | 
| After Width: | Height: | Size: 118 KiB | 
| After Width: | Height: | Size: 142 KiB | 
| After Width: | Height: | Size: 138 KiB | 
| After Width: | Height: | Size: 213 KiB | 
| After Width: | Height: | Size: 90 KiB | 
| After Width: | Height: | Size: 70 KiB | 
| After Width: | Height: | Size: 86 KiB | 
| After Width: | Height: | Size: 85 KiB | 
| After Width: | Height: | Size: 118 KiB | 
| After Width: | Height: | Size: 91 KiB | 
| After Width: | Height: | Size: 71 KiB | 
| After Width: | Height: | Size: 182 KiB | 
| After Width: | Height: | Size: 880 KiB | 
| After Width: | Height: | Size: 90 KiB | 
| After Width: | Height: | Size: 8.9 KiB | 
| @ -0,0 +1,18 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <!-- Added fields for check journal type --> | ||||
|  |     <record id="view_move_form" model="ir.ui.view"> | ||||
|  |         <field name="name">account.move.form.inherit.account.restrict.journal</field> | ||||
|  |         <field name="model">account.move</field> | ||||
|  |         <field name="mode">extension</field> | ||||
|  |         <field name="inherit_id" ref="account.view_move_form"/> | ||||
|  |         <field name="arch" type="xml"> | ||||
|  |             <xpath expr="//group[@id='header_right_group']" position="inside"> | ||||
|  |                 <field name="is_check_journal" invisible="1"/> | ||||
|  |                 <field name="journal_id" | ||||
|  |                        options="{'no_create': True}" | ||||
|  |                        readonly="state != 'draft'"/> | ||||
|  |             </xpath> | ||||
|  |         </field> | ||||
|  |     </record> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,20 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <!-- Added fields for accessible journals --> | ||||
|  |     <record id="view_users_form" model="ir.ui.view"> | ||||
|  |         <field name="name">res.users.form.inherit.account.restrict.journal</field> | ||||
|  |         <field name="model">res.users</field> | ||||
|  |         <field name="mode">extension</field> | ||||
|  |         <field name="inherit_id" ref="base.view_users_form"/> | ||||
|  |         <field name="arch" type="xml"> | ||||
|  |             <xpath expr="//page[@name='account_security']" position="after"> | ||||
|  |                 <page name="account_journal" string="Restricted Journal" invisible="not is_check_user" > | ||||
|  |                     <group> | ||||
|  |                         <field name="journal_ids" widget="many2many_tags"/> | ||||
|  |                         <field name="is_check_user" invisible="1"/> | ||||
|  |                     </group> | ||||
|  |                 </page> | ||||
|  |             </xpath> | ||||
|  |         </field> | ||||
|  |     </record> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,22 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################# | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.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_payment_register | ||||