From f79e4cec5724eb407092a4ec492c62d9c4f59584 Mon Sep 17 00:00:00 2001
From: Remi <remi@le-filament.com>
Date: Thu, 12 Dec 2019 12:21:31 +0100
Subject: [PATCH] Ajout droits par UR sur timesheet

---
 models/hr_timesheet.py      |  9 +++++++++
 security/security_rules.xml | 23 +++++++++++++++++++++++
 2 files changed, 32 insertions(+)

diff --git a/models/hr_timesheet.py b/models/hr_timesheet.py
index 645a51a..fa8ee0d 100644
--- a/models/hr_timesheet.py
+++ b/models/hr_timesheet.py
@@ -7,6 +7,9 @@ from odoo import models, fields, api
 class ScopHrTimesheet(models.Model):
     _inherit = "account.analytic.line"
 
+    def _default_ur(self):
+        return self.env['res.company']._ur_default_get()
+
     name = fields.Char(required=False)
     cgscop_timesheet_code_id = fields.Many2one(
         related='project_id.cgscop_timesheet_code_id',
@@ -15,6 +18,12 @@ class ScopHrTimesheet(models.Model):
     ur_financial_system_id = fields.Many2one(
         comodel_name='ur.financial.system',
         string='Dispositif Financier')
+    ur_id = fields.Many2one(
+        'union.regionale',
+        string='Union Régionale',
+        index=True,
+        on_delete='restrict',
+        default=_default_ur)
 
     # ------------------------------------------------------
     # OnChange Functions
diff --git a/security/security_rules.xml b/security/security_rules.xml
index 5a30532..6fb3eda 100644
--- a/security/security_rules.xml
+++ b/security/security_rules.xml
@@ -28,5 +28,28 @@
             <field name="groups" eval="[(6, 0, [ref('cgscop_partner.group_cg_administrator')])]"/>
             <field eval="True" name="global"/>
         </record>
+
+        <record id="analytic_line_ur_rule" model="ir.rule">
+            <field name="name">Analytic line UR rule</field>
+            <field name="model_id" ref="analytic.model_account_analytic_line"/>
+            <field name="groups" eval="[(6, 0, [ref('base.group_user')])]"/>
+            <field eval="True" name="global"/>
+            <field name="domain_force">[('ur_id','=',user.company_id.ur_id.id)]</field>
+        </record>
+
+        <record id="analytic_rule_administrator_ur" model="ir.rule">
+            <field name="name">Analytic line UR administrator rule</field>
+            <field name="model_id" ref="analytic.model_account_analytic_line"/>
+            <field name="domain_force">[(1,'=',1)]</field>
+            <field name="groups" eval="[(6, 0, [ref('cgscop_partner.group_cg_administrator')])]"/>
+            <field eval="True" name="global"/>
+        </record>
+
+        <record id="analytic.analytic_line_comp_rule" model="ir.rule">
+            <field name="name">Analytic line multi company rule</field>
+            <field name="model_id" ref="model_account_analytic_line"/>
+            <field eval="True" name="global"/>
+            <field name="active" eval="False"/>
+        </record>
     </data>
 </odoo>
-- 
GitLab