diff --git a/models/res_partner.py b/models/res_partner.py
index 860086581bd6843cf0b942b376c5e20825623eee..d5b4d31631515ef85f205b22052bfd4f27e2d21e 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -82,6 +82,11 @@ class ScopPartner(models.Model):
         "Num Département", 
         compute='_compute_num_departement',
         store=True)
+    region = fields.Many2one(
+        comodel_name='res.country.state',
+        string='Région',
+        compute='_compute_region',
+        store=True)
     city = fields.Char("Ville", track_visibility='onchange')
     cedex = fields.Char("Cedex", track_visibility='onchange')
     country_id = fields.Many2one('res.country', string='Country',
@@ -337,10 +342,35 @@ class ScopPartner(models.Model):
         on_delete='restrict',
         track_visibility='onchange')
 
+    # ------------------------------------------------------
+    # Constrains
+    # ------------------------------------------------------
     @api.constrains('zip_id', 'country_id', 'city_id', 'state_id')
     def _check_zip(self):
         return
 
+    @api.constrains('siret')
+    def _check_siret(self):
+        if self.siret and not self.env.context.get('import_file'):
+            siren = (self.siret[:3] + " " + 
+                     self.siret[3:6] + " " +
+                     self.siret[6:9])
+            if not self.siret.isdigit():
+                raise ValidationError(
+                    "Ce SIRET n'est pas valide")
+            if len(self.siret) != 14:
+                raise ValidationError(
+                    "La longueur du SIRET doit être égale à 14")
+            if (self.search_count([('siret', '=like', siren+"%"),
+                                   ('is_cooperative', "=", True)]) > 1):
+                raise ValidationError(
+                    "Ce SIREN existe déjà parmi les coopératives")
+            elif self.search_count([('siret', '=', self.siret)]) > 1:
+                raise ValidationError("Ce SIRET existe déjà")
+
+    # ------------------------------------------------------
+    # Actions
+    # ------------------------------------------------------
     @api.multi
     def open_facebook(self):
         self.ensure_one()
@@ -365,6 +395,9 @@ class ScopPartner(models.Model):
             "url": self.twitter,
         }
 
+    # ------------------------------------------------------
+    # Onchange
+    # ------------------------------------------------------
     @api.onchange('creation_origin_id')
     def onchange_creation_origin_id(self):
         for coop in self:
@@ -412,25 +445,6 @@ class ScopPartner(models.Model):
             raise ValidationError(
                 "Le numéro de téléphone doit contenir au moins 10 caractères")
 
-    @api.constrains('siret')
-    def _check_siret(self):
-        if self.siret and not self.env.context.get('import_file'):
-            siren = (self.siret[:3] + " " + 
-                     self.siret[3:6] + " " +
-                     self.siret[6:9])
-            if not self.siret.isdigit():
-                raise ValidationError(
-                    "Ce SIRET n'est pas valide")
-            if len(self.siret) != 14:
-                raise ValidationError(
-                    "La longueur du SIRET doit être égale à 14")
-            if (self.search_count([('siret', '=like', siren+"%"),
-                                   ('is_cooperative', "=", True)]) > 1):
-                raise ValidationError(
-                    "Ce SIREN existe déjà parmi les coopératives")
-            elif self.search_count([('siret', '=', self.siret)]) > 1:
-                raise ValidationError("Ce SIRET existe déjà")
-
     @api.onchange('siret')
     def onchange_siret(self):
         if self.siret:
@@ -452,6 +466,9 @@ class ScopPartner(models.Model):
                                    + "que vous n'êtes pas en train de créer un"
                                    + " doublon"}}
 
+    # ------------------------------------------------------
+    # Common functions
+    # ------------------------------------------------------
     def _create_period(self, partner):
         new_period = self.env['scop.period'].create({
             'partner_id': partner.id,
@@ -474,6 +491,9 @@ class ScopPartner(models.Model):
         })
         partner.scop_period_ids = new_period
 
+    # ------------------------------------------------------
+    # Override ORM
+    # ------------------------------------------------------
     # Creation d'une periode lorsque le statut passe en Phase de Suivi
     @api.multi
     def write(self, vals):
@@ -533,6 +553,9 @@ class ScopPartner(models.Model):
             partner.message_subscribe(partner_ids=partners_to_subscribe)
         return partners
 
+    # ------------------------------------------------------
+    # Computed Fields
+    # ------------------------------------------------------
     @api.depends('siret')
     def _compute_from_siret(self):
         for company in self:
@@ -551,6 +574,15 @@ class ScopPartner(models.Model):
             if company.zip:
                 company.zip_departement = company.zip[:2]
 
+    @api.depends('zip')
+    def _compute_region(self):
+        for partner in self:
+            if partner.zip:
+                zip_id = self.env['res.city.zip'].search([
+                    ('name', '=', partner.zip)])
+                if zip_id:
+                    partner.region = zip_id[0].city_id[0].state_id
+
     @api.model
     def _compute_current_user_ur_id(self):
         for partner in self:
@@ -559,33 +591,6 @@ class ScopPartner(models.Model):
     def _search_current_user_ur_id(self, operator, value):
         return [('ur_id', '=', self.env.user.company_id.ur_id.id)]
 
-    @api.multi
-    def scop_send_to_cg(self):
-        self.write({
-            'project_status': '5_cg',
-        })
-
-        return True
-
-    @api.multi
-    def partner_archive(self):
-        self.active = False
-
-    # TODO - remove temporary function once RIGA API in place
-    @api.multi
-    def scop_valid_cg(self):
-        self.write({
-            'project_status': '6_suivi',
-        })
-        return True
-
-    @api.multi
-    def scop_abandonne(self):
-        self.write({
-            'project_status': '7_abandonne',
-        })
-        return True
-
     @api.depends('contact_origin_id',
                  'parent_id.cooperative_form_id',
                  'parent_id.membership_status')
@@ -667,6 +672,36 @@ class ScopPartner(models.Model):
                 partner.staff_last = lm[0].staff_count
                 partner.staff_last_date = lm[0].effective_date
 
+    # ------------------------------------------------------
+    # Button Action
+    # ------------------------------------------------------
+    @api.multi
+    def scop_send_to_cg(self):
+        self.write({
+            'project_status': '5_cg',
+        })
+
+        return True
+
+    @api.multi
+    def partner_archive(self):
+        self.active = False
+
+    # TODO - remove temporary function once RIGA API in place
+    @api.multi
+    def scop_valid_cg(self):
+        self.write({
+            'project_status': '6_suivi',
+        })
+        return True
+
+    @api.multi
+    def scop_abandonne(self):
+        self.write({
+            'project_status': '7_abandonne',
+        })
+        return True
+
 
 class ResPartneCertification(models.Model):
     _name = "res.partner.certification"
diff --git a/views/res_partner.xml b/views/res_partner.xml
index 33d28b9fc9ef20ea1c1f0d0e84e9c6be89aa739d..e58555f0c808676c3be7c0993ff2f0aa850a9fa7 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -18,6 +18,7 @@
                 <!-- Ajout recherche Segmentation -->
                 <field name="phone" position="after">
                     <field name="segment_1_id" string="Segmentation" filter_domain="['|', '|', '|', ('segment_1_id','ilike', self), ('segment_2_id','ilike', self), ('segment_3_id','ilike', self), ('segment_4_id','ilike', self)]"/>
+                    <field name="zip_departement" string="N° de département" />
                 </field>
                 <!-- Affiche du filtre Mon UR -->
                 <filter name="customer" position="before">
@@ -117,6 +118,7 @@
                 </field>
                 <field name="state_id" position="attributes">
                     <attribute name="placeholder">Région</attribute>
+                    <attribute name="invisible">1</attribute>
                 </field>
                 <xpath expr='//form/sheet/group/group[2]' position="replace">
                     <group name="Infos activités" attrs="{'invisible': [('is_company','=', False)]}">
@@ -210,6 +212,8 @@
                     <field name="phone" widget="phone"/>
                     <field name="mobile" widget="phone" attrs="{'invisible': [('is_company','=', True)]}"/>
                     <field name="email" widget="email" on_change="1"/>
+                    <field name="zip_departement" string="N° de département" />
+                    <field name="region" />
                     <field name="ur_id" options="{'no_create': True}" on_change="1" can_create="false" can_write="false"/>
                     <field name="category_id" options="{'no_create': True}" widget="many2many_tags" attrs="{'invisible': [('is_company','=', True)]}"/>
                     <field name="website" invisible="1"/>
@@ -318,6 +322,8 @@
                                 <field name="phone" widget="phone" string="Téléphone 1" attrs="{'required':['|', ('project_status','in',('4_adhesion', '5_cg')), '&amp;', ('write_date', '=', False), ('project_status', '=', '6_suivi')]}"/>
                                 <field name="mobile" widget="phone" string="Téléphone 2" attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}"/>
                                 <field name="email" widget="email" string="E-mail"/>
+                                <field name="zip_departement" string="N° de département" />
+                                <field name="region" />
                                 <field name="website" widget="url" attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}"/>
                                 <label for='facebook' class="oe_read_only" string="Réseaux sociaux" attrs="{'invisible':[('facebook','=',False),('linkedin','=',False),('twitter','=',False)]}"/>
                                 <div >
@@ -778,6 +784,7 @@
                     <field name="parent_id" domain="[('is_company','=',True)]" operator="child_of"/>
                     <field name="phone" filter_domain="['|',('phone','ilike',self),('mobile','ilike',self)]"/>
                     <field name="segment_1_id" string="Segmentation" filter_domain="['|', '|', '|', ('segment_1_id','ilike', self), ('segment_2_id','ilike', self), ('segment_3_id','ilike', self), ('segment_4_id','ilike', self)]"/>
+                    <field name="zip_departement" string="N° de département" />
                     <filter string="Mon UR" name="my_ur" domain="[('current_user_ur_id', '=', 'ur_id')]"/>
                     <separator/>
                     <filter string="Archivés" name="inactive" domain="[('active','=',False)]"/>