diff --git a/__manifest__.py b/__manifest__.py
index 2bbe4d1ea3eb14c72764c1875ace86a741184f57..853bbdd443839d8491e992fd76c53bf78ad11d0a 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -24,6 +24,7 @@
         "views/hr_timesheet_cgscop.xml",
         "views/res_partner.xml",
         "views/ur_financial_system.xml",
+        "views/ur_regional_convention.xml",
         "report/report_hr_timesheet.xml",
         "datas/cgscop_timesheet_code_data.xml",
     ]
diff --git a/models/__init__.py b/models/__init__.py
index e64d2750133cecaee569cc49e24fbe8fdd231306..15e2aa43fc51a54c5666dca8e5dbb13ebe25e1f2 100644
--- a/models/__init__.py
+++ b/models/__init__.py
@@ -5,5 +5,7 @@ from . import cgscop_timesheet_code
 from . import cgscop_timesheet_sheet
 from . import hr_timesheet
 from . import project
+from . import res_partner
 from . import ur_financial_system
+from . import ur_regional_convention
 
diff --git a/models/hr_timesheet.py b/models/hr_timesheet.py
index 04e190e233099b44c51d24eef4a39ef5825229d6..789f5f949029fdfc05bc9c8126c429c3ef301a22 100644
--- a/models/hr_timesheet.py
+++ b/models/hr_timesheet.py
@@ -19,6 +19,9 @@ class ScopHrTimesheet(models.Model):
     ur_financial_system_id = fields.Many2one(
         comodel_name='ur.financial.system',
         string='Dispositif Financier')
+    ur_regional_convention_id = fields.Many2one(
+        comodel_name='ur.regional.convention',
+        string='Convention Régionale')
     ur_id = fields.Many2one(
         'union.regionale',
         string='Union Régionale',
@@ -41,10 +44,30 @@ class ScopHrTimesheet(models.Model):
         index=True,
         readonly=True,
         store=True,)
+    ur_financial_system_nb = fields.Integer(
+        string="Nb Dispositifs Financiers",
+        compute="_compute_ur_system_nb")
+    ur_regional_convention_nb = fields.Integer(
+        string="Nb conventions régionales",
+        compute="_compute_ur_system_nb")
 
     # ------------------------------------------------------
     # Compute Functions
     # ------------------------------------------------------
+    @api.depends('ur_id')
+    def _compute_ur_system_nb(self):
+        for time in self:
+            # Calcul nombre de dispositifs financiers
+            financial_system = time.env['ur.financial.system'].search([
+                ('ur_id', '=', time.ur_id.id)])
+            time.ur_financial_system_nb = len(
+                financial_system)
+            # Calcul nombre de conventions
+            regional_convention = time.env['ur.regional.convention'].search([
+                ('ur_id', '=', time.ur_id.id)])
+            time.ur_regional_convention_nb = len(
+                regional_convention)
+
     @api.depends('sheet_id', 'sheet_id.state')
     def _compute_state(self):
         for timesheet in self:
@@ -60,6 +83,15 @@ class ScopHrTimesheet(models.Model):
     def onchange_project_id(self):
         self.partner_id = self.project_id.partner_id
 
+    @api.onchange('partner_id')
+    def onchange_partner_id(self):
+        if not self.partner_id.ur_financial_system_date or \
+           fields.Datetime.now() > self.partner_id.ur_financial_system_date:
+            self.ur_financial_system_id = self.partner_id.ur_financial_system_id
+        if not self.partner_id.ur_regional_convention_date or \
+           fields.Datetime.now() > self.partner_id.ur_regional_convention_date:
+            self.ur_regional_convention_id = self.partner_id.ur_regional_convention_id
+
     # ------------------------------------------------------
     # Override ORM
     # ------------------------------------------------------
diff --git a/models/res_partner.py b/models/res_partner.py
new file mode 100644
index 0000000000000000000000000000000000000000..ee67f1c6b355f10ca70bc90a495a5470284135ae
--- /dev/null
+++ b/models/res_partner.py
@@ -0,0 +1,21 @@
+# © 2020 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import models, fields
+
+
+class ScopPartnerTimesheet(models.Model):
+    _inherit = "res.partner"
+
+    ur_financial_system_id = fields.Many2one(
+        comodel_name='ur.financial.system',
+        string='Dispositif Financier',
+        ondelete='set null')
+    ur_financial_system_date = fields.Date(
+        "Date de fin de dispositif")
+    ur_regional_convention_id = fields.Many2one(
+        comodel_name='ur.regional.convention',
+        string='Convention Régionale',
+        ondelete='set null')
+    ur_regional_convention_date = fields.Date(
+        "Date de fin de convention")
diff --git a/models/ur_regional_convention.py b/models/ur_regional_convention.py
new file mode 100644
index 0000000000000000000000000000000000000000..04a986cc5412335d8a67cf989e764ce2748c1763
--- /dev/null
+++ b/models/ur_regional_convention.py
@@ -0,0 +1,24 @@
+# © 2019 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import models, fields
+
+
+class ScopRegionalConvention(models.Model):
+    _name = "ur.regional.convention"
+    _description = "Convention Régionale UR"
+
+    def _default_ur(self):
+        return self.env['res.company']._ur_default_get()
+
+    name = fields.Char('Nom')
+    company_id = fields.Many2one(
+        comodel_name='res.company',
+        string='Société',
+        default=lambda self: self.env.user.company_id)
+    ur_id = fields.Many2one(
+        'union.regionale',
+        string='Union Régionale',
+        index=True,
+        on_delete='restrict',
+        default=_default_ur)
diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
index df9975129daf2d4ef59e0245e09608af2b4e7822..ee179f43f7f56b388c3405d95b4bbaf70ef1815b 100644
--- a/security/ir.model.access.csv
+++ b/security/ir.model.access.csv
@@ -9,3 +9,6 @@ access_project_project_cg_manager,access_project_project_cg,model_project_projec
 access_account_analytic_account_ur_manager,access_account_analytic_account_ur,analytic.model_account_analytic_account,cgscop_partner.group_ur_list_modif,1,1,1,1
 access_account_analytic_account_cg_manager,access_account_analytic_account_cg,analytic.model_account_analytic_account,cgscop_partner.group_cg_administrator,1,1,1,1
 access_cgscop_timesheet_sheet_user,access_cgscop_timesheet_sheet_user,model_cgscop_timesheet_sheet,hr_timesheet.group_hr_timesheet_user,1,1,1,1
+access_ur_regional_convention,access_ur_regional_convention,model_ur_regional_convention,base.group_user,1,0,0,0
+access_ur_regional_convention_ur_manager,access_ur_regional_convention_ur,model_ur_regional_convention,cgscop_partner.group_ur_list_modif,1,1,1,1
+access_ur_regional_convention_cg_manager,access_ur_regional_convention_cg,model_ur_regional_convention,cgscop_partner.group_cg_administrator,1,1,1,1
diff --git a/views/hr_timesheet.xml b/views/hr_timesheet.xml
index 4b13d7c75ba3939f29ad959a19a456cb819b0b6f..893e76ffd1643edf869030bc1aaaf72aea26cc75 100644
--- a/views/hr_timesheet.xml
+++ b/views/hr_timesheet.xml
@@ -47,9 +47,13 @@
                     <attribute name="string">Code activité UR</attribute>
                 </field>
                 <field name="project_id" position="after" >
+
                     <field name="partner_id" domain="[('is_company', '=', True), ('ur_id', '=', ur_id)]" required="True" class="td-ellipsis" options="{'no_open': True, 'no_create': True}" string="Contact" />
-                    <field name="ur_financial_system_id" options="{'no_open': True, 'no_create': True}"/>
-                    <field name="ur_id" options="{'no_open': True, 'no_create': True}"/>
+                    <field name="ur_financial_system_id" options="{'no_open': True, 'no_create': True}"  attrs="{'required':[('ur_financial_system_nb', '>', 0)], 'invisible':[('ur_financial_system_nb', '=', 0)]}"/>
+                    <field name="ur_regional_convention_id" options="{'no_open': True, 'no_create': True}"  attrs="{'required':[('ur_regional_convention_nb', '>', 0)], 'invisible':[('ur_regional_convention_nb', '=', 0)]}"/>
+                    <field name="ur_id" options="{'no_open': True, 'no_create': True}" groups="cgscop_partner.group_cg_administrator"/>
+                    <field name="ur_regional_convention_nb" invisible="1"/>
+                    <field name="ur_financial_system_nb" invisible="1"/>
                 </field>
                 <field name="task_id" position="attributes">
                     <attribute name="invisible">True</attribute>
@@ -87,9 +91,12 @@
                     <attribute name="attrs">{'readonly': [('state', 'in', ('submit', 'valid'))]}</attribute>
                 </field>
                 <field name="unit_amount" position="after">
-                    <field name="ur_financial_system_id" options="{'no_open': True, 'no_create': True}" attrs="{'readonly': [('state', 'in', ('submit', 'valid'))]}"/>
+                    <field name="ur_regional_convention_nb" invisible="1"/>
+                    <field name="ur_financial_system_nb" invisible="1"/>
+                    <field name="ur_financial_system_id" options="{'no_open': True, 'no_create': True}"  attrs="{'required': [('ur_financial_system_nb', '>', 0)], 'invisible': [('ur_financial_system_nb', '&lt;', 1)], 'readonly': [('state', 'in', ('submit', 'valid'))]}"/>
+                    <field name="ur_regional_convention_id" options="{'no_open': True, 'no_create': True}"  attrs="{'required':[('ur_regional_convention_nb', '>', 0)], 'invisible':[('ur_regional_convention_nb', '&lt;', 1)], 'readonly': [('state', 'in', ('submit', 'valid'))]}"/>
                     <field name="state" />
-                    <field name="ur_id" attrs="{'readonly': [('state', 'in', ('submit', 'valid'))]}"/>
+                    <field name="ur_id" attrs="{'readonly': [('state', 'in', ('submit', 'valid'))]}" groups="cgscop_partner.group_cg_administrator"/>
                 </field>
             </field>
         </record>
diff --git a/views/res_partner.xml b/views/res_partner.xml
index 1e698616c408787b8d0a329ec8dcac3509316753..ac36a2f1bf7e98bdb821bec5ea668118b7246a47 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -17,5 +17,22 @@
             </field>
         </record>
 
+        <record id="view_partner_cooperative_timesheet_form" model="ir.ui.view">
+            <field name="name">cooperative.timesheet.form</field>
+            <field name="model">res.partner</field>
+            <field name="inherit_id" ref="cgscop_partner.scop_contact_view_form"/>
+            <field name="priority" eval="1"/>
+            <field name="arch" type="xml">
+                <xpath expr="//field[@name='activity_federation_com']" position="before">
+                    <separator></separator>
+                    <field name="ur_financial_system_id" />
+                    <field name="ur_financial_system_date" attrs="{'invisible':[('ur_financial_system_id','=',False)]}"/>
+                    <field name="ur_regional_convention_id" options="{'no_open': True, 'no_create': True}"/>
+                    <field name="ur_regional_convention_date" attrs="{'invisible':[('ur_regional_convention_id','=',False)]}"/>
+                    <separator></separator>
+                </xpath>
+            </field>
+        </record>
+
     </data>
 </odoo>
\ No newline at end of file
diff --git a/views/ur_regional_convention.xml b/views/ur_regional_convention.xml
new file mode 100644
index 0000000000000000000000000000000000000000..97e9b3eaf45c80c8f9f90e3f6f639f20e2d3d65f
--- /dev/null
+++ b/views/ur_regional_convention.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!-- Copyright 2019 Le Filament
+     License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
+
+<odoo>
+    <data>
+        <record id="view_ur_regional_convention_tree" model="ir.ui.view">
+            <field name="name">ur.regional.convention.tree</field>
+            <field name="model">ur.regional.convention</field>
+            <field name="arch" type="xml">
+                <tree editable='top'>
+                    <field name="name" />
+                    <field name="ur_id" options="{'no_open': True, 'no_create': True}"/>
+                    <field name="company_id" groups="base.group_no_one" options="{'no_open': True, 'no_create': True}"/>
+                </tree>
+            </field>
+        </record>
+
+        <record id="action_ur_regional_convention" model="ir.actions.act_window">
+            <field name="name">Conventions Régionales</field>
+            <field name="res_model">ur.regional.convention</field>
+            <field name="view_mode">tree</field>
+        </record>
+
+        <menuitem id="menu_ur_regional_convention"
+            name="Conventions Régionales"
+            parent="hr_timesheet.hr_timesheet_menu_configuration"
+            action="action_ur_regional_convention"
+            sequence="50"
+            groups="cgscop_partner.group_ur_list_modif"/>
+
+    </data>
+</odoo>
\ No newline at end of file