diff --git a/models/scop_bordereau_cg.py b/models/scop_bordereau_cg.py
index f7ea8b2ef8e7796454f22485009ec12205d21b97..0338a54542e39575b40c94ce2051c23be4162cae 100644
--- a/models/scop_bordereau_cg.py
+++ b/models/scop_bordereau_cg.py
@@ -1,5 +1,8 @@
 # © 2021 Le Filament (<http://www.le-filament.com>)
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from datetime import datetime
+
 from odoo import fields, models, api
 from odoo.exceptions import UserError
 
@@ -161,6 +164,10 @@ class Bordereau(models.Model):
     wage_cg_retenu = fields.Float(
         string='Montant masse salariale retenu',
         track_visibility='onchange')
+    is_sdd = fields.Boolean(
+        'Au prélèvement',
+        compute='compute_is_sdd',
+        search='_search_is_sdd')
 
     # Emails management
     recipient_ids = fields.One2many(
@@ -231,6 +238,22 @@ class Bordereau(models.Model):
             else:
                 bordereau.montant_assiette = bordereau.va_cg_retenu
 
+    @api.multi
+    def compute_is_sdd(self):
+        sdd_id = self.env.ref(
+            'account_banking_sepa_direct_debit.sepa_direct_debit').id
+        for bdx in self:
+            if bdx.payment_mode_id and bdx.payment_mode_id.payment_method_id.id == sdd_id:
+                bdx.is_sdd = True
+            else:
+                bdx.is_sdd = False
+
+    @api.multi
+    def _search_is_sdd(self, operator, value):
+        recs = self.search([]).filtered(lambda x: x.is_sdd is True)
+        if recs:
+            return [('id', 'in', [x.id for x in recs])]
+
     # ------------------------------------------------------
     # Button functions
     # ------------------------------------------------------
@@ -393,12 +416,33 @@ class Bordereau(models.Model):
         Use "compute" function from account.move
         :return: dict with date as key and amount (float) as value
         """
+        MoveLine = self.env['account.move.line']
         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
+            inv_ids = bordereau.invoice_ids.ids
+            print(inv_ids)
+            schedule = MoveLine.read_group([
+                ('invoice_id', 'in', inv_ids),
+                ('account_id.internal_type', '=', 'receivable')],
+                ['date_maturity', 'credit', 'debit'],
+                groupby=['date_maturity:day'],
+                orderby='date_maturity',
+            )
+            schedule_plan = [
+                {
+                    'date': datetime.strptime(
+                        l['date_maturity:day'], '%d %b %Y').strftime('%d/%m/%Y'),
+                    'amount': l['debit'] - l['credit']
+                } for l in schedule]
+            return schedule_plan
+
+    def get_contribution_type(self):
+        """
+        Get contribution by type
+        :return: dict type_contribution and amount
+        """
+        return self.invoice_ids.mapped(lambda c: {
+            'type_contribution': c.type_contribution_id.name,
+            'amount': c.amount_total_signed})
 
     # Email
     def get_recipients(self):
diff --git a/report/report_scop_bordereau.xml b/report/report_scop_bordereau.xml
index a4e1923b7d0e7d5ab8a8b9a27555d61ab9a52238..e0c8c7e57b626b65105354c465ae841498310063 100644
--- a/report/report_scop_bordereau.xml
+++ b/report/report_scop_bordereau.xml
@@ -4,90 +4,143 @@
 
         <template id="report_bordereau_document">
             <t t-call="web.external_layout">
-                <div class="page">
-                    <h2> Appel de cotisation <span t-esc="o.year"/> </h2>
-                    <div>
-                        <p>
-                            Paris, le <span t-esc="context_timestamp(datetime.datetime.now()).strftime('%d %B %Y')"/>
-                        </p>
-                        <p>
-                            N° adhérent : <t t-esc="o.partner_id.member_number_int"/><br/>
-                            Union régionale <t t-esc="o.partner_ur_id.name"/>
-                        </p>
+                <div class="page" style="font-size: 14px;">
+                    <div class="row">
+                        <div class="col-12 text-center">
+                            <h2 style="color: #E5074D;">
+                                Appel de cotisation <span t-esc="str(o.year)"/>
+                            </h2>
+                        </div>
                     </div>
+                    <div class="row">
+                        <div class="col-12">
+                            <p>
+                                Paris, le <span t-esc="o.date_cotisation.strftime('%d %B %Y')"/>
+                            </p>
+                            <p>
+                                N° adhérent : <t t-esc="str(o.partner_id.member_number_int)"/><br/>
+                                Union régionale : <span t-field="o.partner_ur_id.name"/><br/>
+                                N° Bordereau : <span t-field="o.name"/>
+                            </p>
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-5 offset-5 text-right mt16 mb32" style="font-siez: 16px;">
+                            <address t-field="o.partner_id" t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": True}' />
+                        </div>
+                    </div>
+                    <div class="row mb16">
+                        <div class="col-12" style="font-style: italic; test-align: justify;">
+                            Les cotisations sont calculées  annuellement en début d’année sur la base du dernier exercice connu. Le versement se fait par quart tous les trimestres. Merci de retourner ce bordereau à la CG Scop avec le règlement correspondant
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-6" style="border: 1px solid #aaa;">
+                            <div></div>
+                            <h5 class="mt8" style="font-weight: 600;">Cotisations annuelles</h5>
+                            <p style="font-style: italic; font-size: 13px;">
+                                <t t-if="o.year_liasse_retenue">Calcul basé sur la liasse fiscale <span t-esc="str(o.year_liasse_retenue)" /><br/></t>
+                                Assiette base <span t-field="o.type_assiette_retenu" /> : <span t-field="o.montant_assiette"  t-options="{'widget': 'monetary', 'display_currency': o.company_id.currency_id}" />.
+                            </p>
+                            <p>
+                                <t t-set="amount_line" t-value="o.get_contribution_type()" />
+                                <table class="table table-sm" style="border: none;">
+                                    <tr t-foreach="amount_line" t-as="line" style="border-bottom: 1px solid #ccc;">
+                                        <td style="border: none; background: inherit; color: inherit;"><t t-esc="line.get('type_contribution')"/></td>
+                                        <td class="text-right" style="border: none; background: inherit; color: inherit;"><t t-esc="line.get('amount')" t-options="{'widget': 'monetary', 'display_currency': o.company_id.currency_id}"/></td>
+                                    </tr>
+                                </table>
+                            </p>
+                            <p>
+                                <table class="table table-sm" style="border: none;">
+                                    <tr style="border: none">
+                                        <td style="border: none; background: inherit; color: inherit;">
+                                            <strong>Total cotisation annuelle <t t-esc="str(o.year)"/>*</strong>
+                                        </td>
+                                        <td class="text-right" style="border: none; background: inherit; color: inherit;">
+                                            <strong></strong><span t-field="o.amount_total_cotiz" t-options="{'widget': 'monetary', 'display_currency': o.company_id.currency_id}"/></td>
+                                    </tr>
+                                </table>
+                            </p>
+                            <t t-if="o.is_sdd">
+                                <h5 style="font-weight: 600;">Échéancier de prélèvement</h5>
+                            </t>
+                            <t t-else="">
+                                <h5 style="font-weight: 600;">Échéancier de paiement</h5>
+                            </t>
+                            <p>
+                                <t t-set="schedule_line" t-value="o.get_bordereau_move_line()" />
+                                <table class="table table-sm table-striped" style="border: none;">
+                                    <tr t-foreach="schedule_line" t-as="line" style="border-bottom: 1px solid #ccc;">
+                                        <td style="border: none; background: inherit; color: inherit;"><t t-esc="line.get('date')"/></td>
+                                        <td class="text-right" style="border: none; background: inherit; color: inherit;"><t t-esc="line.get('amount')" t-options="{'widget': 'monetary', 'display_currency': o.company_id.currency_id}"/></td>
+                                    </tr>
+                                </table>
+                            </p>
+                            <p t-if="o.is_sdd" style="font-size: 13px; font-weight: bold;">
+                                Référence Unique du Mandat :
+                                <t t-esc="o.invoice_ids[0].mandate_id.unique_mandate_reference" />
+                            </p>
+                            <t t-if="not o.is_sdd">
+                                <p class="small">
+                                    Si vous souhaitez régler vos prochaines cotisations par prélèvement,merci de compléter et de nous retourner le document « Mandat de prélèvements SEPA » (disponible sur notre site) à l'adresse <a href="mailto:les-scop@scop.coop">les-scop@scop.coop</a>, accompagné d’un Relevé d’identité bancaire
+                                </p>
+                            </t>
 
-                    <t t-set="address">
-                        <address t-field="o.partner_id" t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": True}' />
-                    </t>
+                            <p class="small">
+                                <em>* Inclus abonnement annuel à la Revue Participer au tarif préférentiel adhérent de 22 € TTC</em>
+                            </p>
+                            <p style="font-size: 13px;">
+                                <em>IBAN: FR76 4255 9100 0008 0024 8837 710 - BIC : CCOPFRPPXXX</em>
+                            </p>
+                        </div>
 
-                    <div>
-                        <p>Les cotisations sont calculées annuellement en début
-                            d’année sur la base du dernier exercice connu. Le
-                            versement se fait par quart tous les trimestres.
-                            Merci de retourner ce bordereau à la CG Scop avec
-                            le règlement correspondant.<br/>
-                            L’Union Sociale reste indépendante, merci de renseigner
-                            la partie basse de ce bulletin qui la concerne et
-                            de lui envoyer le règlement correspondant avec le
-                            bas du bordereau.
-                        </p>
+                        <div class="col-6" style="margin-top: 220px;">
+                            <div style="border: 1px solid #aaa; padding: 15px;">
+                                CG Scop <br/>
+                                30, rue des Epinettes <br/>
+                                75017 PARIS
+                            </div>
+                        </div>
                     </div>
 
-                    <div>
-                        <h4>Cotisations annuelles <span t-esc="o.year"/></h4>
-                        <t t-if="o.montant_assiette > 0">
-                            Calcul basé sur la dernière liasse fiscale connue : année <t t-esc="o.liasse_fiscale_id.year"/>.
-                            &amp;nbsp;Assiette base <span t-field="o.type_assiette"/> :
-                            <t t-esc="o.montant_assiette" t-options='{"widget": "monetary", "display_currency": o.company_currency_id}'/>
-                        </t>
-                        <t t-else="">
-                            Pas de liasse fiscale connue pour le calcul
-                        </t>
-                    </div>
+                    <div style="page-break-before: always; font-size: 12px;">
+                        <div class="row">
+                            <div class="col-12">
+                                <p>
+                                    <strong>COTISATION A LA CONFÉDÉRATION GÉNÉRALE DES SCOP</strong>
+                                </p>
+                                <p>
+                                    La cotisation est calculée selon la méthode la plus favorable entre trois pour mille du chiffre d’affaires et sept pour mille de la valeur ajoutée.<br/>
+                                    La valeur ajoutée retenue est celle de la liasse fiscale ou, si elle n’est pas connue, la valeur ajoutée telle que définie par la Banque de France :<br/>
+                                    <i>Valeur ajoutée = total des chiffres d’affaires nets(FL) et subventions d’exploitation(FO) + production stockée(FM) + production immobilisée(FN) - achat de marchandises(FS) - variation de stock marchandises(FT) - achat de matières premières et autres approvisionnements(FU) - variation de stock matières premières et approvisionnements(FV) - autres achats et charges externes(FW)(déduction faite du personnel extérieur et des loyers de crédit - bail) - impôts et taxes(FX).</i>
+                                </p>
+                                <p>
+                                    Le calcul de la cotisation est établi une fois par an en début d’année à partir des comptes de résultat du dernier exercice connu, ou du prévisionnel pour les nouveaux adhérents qui n’ont pas encore de compte de résultat.<br/>
+                                    La cotisation est appelée trimestriellement par quart.<br/>
+                                    Plancher annuel: 300 € pour les SCOP dont le chiffre d’affaires est inférieur à 100 000 €, 600 € pour les autres.
+                                </p>
 
-                    <div>
-                        <table>
-                            <t t-foreach="o.invoice_ids.sorted(key=lambda i: i.amount_total_signed, reverse=True)" t-as="cotiz">
-                                <tr>
-                                    <td>
-                                        <span t-field="cotiz.type_contribution_id.name"/>
-                                    </td>
-                                    <td>
-                                        <span t-field="cotiz.amount_total_signed"/>
-                                    </td>
-                                </tr>
-                            </t>
-                            <tr>
-                                <td>
-                                    Total cotisations annuelles <span t-esc="o.year"/>
-                                </td>
-                                <td>
-                                    <span t-field="o.amount_total_cotiz"/>*
-                                </td>
-                            </tr>
-                        </table>
-                        * Inclus abonnement annuel à la Revue Participer au tarif préférentiel adhérent de 22 € TTC
+                                <p class="mt64">
+                                    <strong>COTISATION A LA FEDERATION DES SCOP DE LA COMMUNICATION</strong>
+                                </p>
+                                <p>
+                                    Toutes les coopératives adhérentes de la Confédération Générale des SCOP dont l’objet social se rattache aux secteurs de la communication graphique, audiovisuelle ou multimédia sont concernées.<br/>
+                                    L’assiette est la valeur ajoutée de la liasse fiscale ou, si elle n’est pas connue, la valeur ajoutée telle que définie par la Banque de France :<br/>
+                                    <i>Valeur ajoutée = total des chiffres d’affaires nets(FL) et subventions d’exploitation(FO) + production stockée(FM) + production immobilisée(FN) - achat de marchandises(FS) - variation de stock marchandises(FT) - achat de matières premières et autres approvisionnements(FU) - variation de stock matières premières et approvisionnements(FV) - autres achats et charges externes(FW)(déduction faite du personnel extérieur et des loyer de crédit - bail) - impôts et taxes(FX)</i>
+                                </p>
+                                <p>
+                                    Le calcul de la cotisation est établi une fois par an en début d’année à partir des comptes de résultat du dernier exercice connu.<br/>
+                                    Taux d’appel de 0,32 %.<br/>
+                                    <i>Appel de cotisation trimestriel = (valeur ajoutée x 0,32 %) / 4</i>
+                                    Pour les nouvelles coopératives qui n’ont pas encore de compte de résultat: 27 € par trimestre et par salarié.<br/>
+                                    Plancher annuel : 108 €<br/>
+                                    Plafond annuel : 18 428 €.
+                                </p>
+                            </div>
+                        </div>
 
-                        <h4>Echéancier de prélèvement</h4>
-                        <t t-set="move_line_ids" t-value="o.get_bordereau_move_line()"/>
-                        <table>
-                            <tr>
-                                <td>Date de prélèvement</td>
-                                <td>Montant</td>
-                            </tr>
-                            <t t-foreach="move_line_ids" t-as="line">
-                                <tr>
-                                    <td>
-                                        <span t-esc="datetime.datetime.strptime(line[0], '%Y-%m-%d').strftime('%d %B %Y')"/>
-                                    </td>
-                                    <td>
-                                        <span t-esc="line[1]" t-options='{"widget": "monetary", "display_currency": o.company_currency_id}'/>
-                                    </td>
-                                </tr>
-                            </t>
-                        </table>
                     </div>
-
                 </div>
             </t>
         </template>
@@ -104,11 +157,11 @@
         <report
                 id="cgscop_bordereau_report"
                 model="scop.bordereau"
-                string="CG Scop - Bordereau"
-                report_type="qweb-html"
+                string="Bordereau de Cotisation CG"
+                report_type="qweb-pdf"
                 name="cgscop_cotisation_cg.report_bordereau"
                 file="cgscop_cotisation_cg.report_bordereau"
-                menu="False"
+                menu="True"
         />
 
     </data>