diff --git a/__manifest__.py b/__manifest__.py
index 662f540e30bd6001599069df39f7632f523d777d..4966bf910aa3c77dc43fd4416d6d5c27b7d484e6 100755
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -14,6 +14,7 @@
     "data": [
         "security/security_rules.xml",
         "security/ir.model.access.csv",
+        "datas/mail_data.xml",
         "views/account_invoice.xml",
         "views/res_config_settings.xml",
         "views/scop_bordereau_cg.xml",
diff --git a/datas/mail_data.xml b/datas/mail_data.xml
new file mode 100644
index 0000000000000000000000000000000000000000..74c5b65792b6d08c0e218f1d52cb894f9ee19593
--- /dev/null
+++ b/datas/mail_data.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+    <data noupdate="0">
+
+    <!-- Template and notification section -->
+
+        <record id="email_template_cotisation_cg" model="mail.template">
+            <field name="name">CG Scop - Mail cotisations CG</field>
+            <field name="model_id" ref="cgscop_cotisation_cg.model_scop_bordereau"/>
+            <field name="email_from">${object.env.user.email_formatted |safe}</field>
+            <field name="partner_to">${object.get_recipients()}</field>
+            <field name="subject">Appel de cotisations ${object.year}</field>
+            <field name="body_html" type="html">
+                <div style="margin: 0px; padding: 0px;">
+                    <p style="margin: 0px; padding: 0px; font-size: 13px;">
+                        <p>Chère Coopératrice, Cher Coopérateur,</p>
+
+                        <p>Cotisation sur votre espace extranet : lien</p>
+
+                        <p>Nous vous prions d'agréer, Chère Coopératrice, Cher Coopérateur, nos sentiments les meilleurs.</p>
+
+                        <p>Pour la CG Scop,</p>
+ 
+                        <p>JACQUES LANDRIOT</p>
+                        <p>Président</p>
+                    </p>
+                </div>
+            </field>
+            <field name="lang">${object.partner_id.lang}</field>
+            <field name="user_signature" eval="False"/>
+            <field name="auto_delete" eval="False"/>
+        </record>
+
+
+<!--        <record id="email_template_send_again" model="mail.template">-->
+<!--            <field name="name">CG Scop - Liste Ministere: Renvoyer le dossier</field>-->
+<!--            <field name="model_id" ref="cgscop_liste_ministere.model_liste_ministere"/>-->
+<!--            <field name="email_from">${object.user_id.email_formatted |safe}</field>-->
+<!--            <field name="partner_to">${object.get_recipients()}</field>-->
+<!--            <field name="subject">Dossier incomplet</field>-->
+<!--            <field name="body_html" type="html">-->
+<!--                <div style="margin: 0px; padding: 0px;">-->
+<!--                    <p style="margin: 0px; padding: 0px; font-size: 13px;">-->
+<!--                        <p>Madame, Monsieur,</p>-->
+<!-- -->
+<!--                        <p>Nous accusons réception de votre dossier de demande de renouvellement d’inscription sur la Liste Ministère, parvenu à la Confédération Générale des Scop qui n’est pas la année de clôture d’exercice demandé<br/>-->
+<!--                        Nous vous indiquons que votre dossier doit être complété par les pièces suivantes :</p>-->
+
+<!--                        <p>Nous vous invitons à nous retourner ces documents dans les meilleurs délais.</p>-->
+<!-- -->
+<!--                        <p>Dans l’attente de votre retour, nous restons à votre disposition pour toute précision utile.</p>-->
+<!-- -->
+<!--                        <p>Très cordialement</p>-->
+<!--                    </p>-->
+<!--                </div>-->
+<!--            </field>-->
+<!--            <field name="lang">${object.partner_id.lang}</field>-->
+<!--            <field name="user_signature" eval="False"/>-->
+<!--            <field name="auto_delete" eval="False"/>-->
+<!--        </record>-->
+
+    </data>
+</odoo>
diff --git a/models/scop_bordereau_cg.py b/models/scop_bordereau_cg.py
index 52494f71566325bb9489c61352efa6fba9faf508..bfc1f344a405e1571bfae2b71a3bf0cd949dc9a9 100644
--- a/models/scop_bordereau_cg.py
+++ b/models/scop_bordereau_cg.py
@@ -97,9 +97,15 @@ class Bordereau(models.Model):
     # Emails management
     recipient_ids = fields.One2many(
         comodel_name='res.partner',
-        related='base_cotisation_cg.recipient_ids',
+        compute='_compute_recipient'
     )
 
+    # TODO : Use when email active
+    # email_count = fields.Integer(
+    #     string='Nombre de mails',
+    #     compute='_compute_emails'
+    # )
+
     # ------------------------------------------------------
     # Compute
     # ------------------------------------------------------
@@ -123,6 +129,18 @@ class Bordereau(models.Model):
             r.amount_total_cotiz = sum(
                 r.invoice_ids.mapped('amount_total_signed'))
 
+    @api.multi
+    def _compute_recipient(self):
+        tag_cotiz_id = self.env.user.company_id.tag_cotiz_id
+        for bordereau in self:
+            child_ids = bordereau.partner_id.child_ids.filtered(
+                lambda child:
+                (tag_cotiz_id in child.category_id) and child.email)
+            if bordereau.partner_id.email:
+                bordereau.recipient_ids = bordereau.partner_id + child_ids
+            else:
+                bordereau.recipient_ids = child_ids
+
     # ------------------------------------------------------
     # Button functions
     # ------------------------------------------------------
@@ -196,13 +214,36 @@ class Bordereau(models.Model):
                 report_action(bordereau)
 
     @api.multi
-    def get_bordereau_move_line(self):
+    def action_send_email(self):
+        template_id = self.env.ref(
+            'cgscop_cotisation_cg.email_template_cotisation_cg')
         for bordereau in self:
-            totlines = bordereau.payment_term_id.with_context(
-                currency_id=self.base_cotisation_cg.company_currency_id.id). \
-                compute(bordereau.amount_total_cotiz,
-                        bordereau.date_cotisation)[0]
-            return totlines
+            # lm_publish_action = self._context.get('lm_publish_action',
+            #                                       False)
+            ir_model_data = self.env['ir.model.data']
+            try:
+                compose_form_id = ir_model_data.get_object_reference(
+                    'mail', 'email_compose_message_wizard_form')[1]
+            except ValueError:
+                compose_form_id = False
+            ctx = {
+                'default_model': 'scop.bordereau',
+                'default_res_id': bordereau.id,
+                'default_use_template': True,
+                'default_template_id': template_id.id,
+                'default_composition_mode': 'comment',
+                # 'lm_publish_action': lm_publish_action,
+            }
+            return {
+                'type': 'ir.actions.act_window',
+                'view_type': 'form',
+                'view_mode': 'form',
+                'res_model': 'mail.compose.message',
+                'views': [(compose_form_id, 'form')],
+                'view_id': compose_form_id,
+                'target': 'new',
+                'context': ctx,
+            }
 
     # ------------------------------------------------------
     # Override ORM
@@ -225,3 +266,25 @@ class Bordereau(models.Model):
                     'statut "validé / ouvert".'
                 )
         return super(Bordereau, self).unlink()
+
+    # ------------------------------------------------------
+    # Global Functions
+    # ------------------------------------------------------
+    @api.multi
+    def get_bordereau_move_line(self):
+        """
+        Get payment dates for bordereau according to payment_term in bordereau
+        Use "compute" function from account.move
+        :return: dict with date as key and amount (float) as value
+        """
+        for bordereau in self:
+            totlines = bordereau.payment_term_id.with_context(
+                currency_id=self.base_cotisation_cg.company_currency_id.id). \
+                compute(bordereau.amount_total_cotiz,
+                        bordereau.date_cotisation)[0]
+            return totlines
+
+    # Email
+    def get_recipients(self):
+        recipients = ','.join(map(lambda x: str(x), self.recipient_ids.ids))
+        return recipients
diff --git a/views/scop_bordereau_cg.xml b/views/scop_bordereau_cg.xml
index 97cf4b1243274fc4087d094431004c775e58c8cf..e6d202de3998ca3cd6db5a95753c0589cf2fe541 100644
--- a/views/scop_bordereau_cg.xml
+++ b/views/scop_bordereau_cg.xml
@@ -42,6 +42,7 @@
                         <button name="add_cotiz" string="Ajouter une ligne de cotisation" type="object" states="new"/>
                         <button name="action_bordereau_paid" string="Passer le bordereau à payé" type="object" states="validated"/>
                         <button name="print_bordereau" string="Imprimer" type="object" states="validated,paid"/>
+                        <button name="action_send_email" string="Envoyer par mail" type="object" states="validated"/>
                     </header>
                     <sheet>
                         <div class="oe_title">