diff --git a/controllers/main.py b/controllers/main.py
index aa11c014270c5025a21e1e2fd4d3e3644cbdaa67..f3b4ab07bfb2f34d07e4cdfc7717447c957cf2e7 100644
--- a/controllers/main.py
+++ b/controllers/main.py
@@ -4,7 +4,7 @@
 import csv
 from datetime import date, datetime
 from io import BytesIO, StringIO
-
+from odoo.addons.lefilament_export_journal_tool.controllers.main import JournalDatasExport
 from odoo import http
 from odoo.http import request
 from odoo.tools.misc import xlwt
@@ -13,7 +13,7 @@ from odoo.tools.safe_eval import safe_eval
 from odoo.addons.web.controllers.main import content_disposition, serialize_exception
 
 
-class JournalDatasExport(http.Controller):
+class JournalDatasExport(JournalDatasExport):
     # ------------------------------------------------------
     # Routes
     # ------------------------------------------------------
@@ -46,38 +46,44 @@ class JournalDatasExport(http.Controller):
             domain += safe_eval(export_id.export_domain)
         export_line_ids = request.env["account.move.line"].search(domain)
         # FIXME: Crappy could refactor to [[]] or {} to group by invoice name as key
-        export_line_grouped_by_invoice = export_line_ids.sorted(lambda l: l.move_id.name)
+        export_line_grouped_by_invoice = {}
+        for el in export_line_ids:
+            if not export_line_grouped_by_invoice.get(el.move_id.name):
+                export_line_grouped_by_invoice[el.move_id.name] = []
+            export_line_grouped_by_invoice[el.move_id.name].append(el)
+        # export_line_grouped_by_invoice = export_line_ids.sorted(lambda l: l.move_id.name)
         lines_to_export = []
         initial_sum_line = ['' for _ in range(len(export_id.fields_ids))]
         sum_line = initial_sum_line[:]
         big_sum_line = None
-        previous_invoice_name = export_line_grouped_by_invoice[0].move_id.name
-        for line in export_line_grouped_by_invoice:
-            if line.name != previous_invoice_name:
-                lines_to_export.append(sum_line)
-                if not big_sum_line:
-                    # Initialise bigsum to the same size and value of the sum_line
-                    # So it has not to be initialized with list of empty string
-                    big_sum_line = sum_line[:]
-                else:
-                    big_sum_line = [value + sum_line[i] for i,value in enumerate(big_sum_line)]
-                sum_line = initial_sum_line[:]
-            row = []
-            for key,field in enumerate(export_id.fields_ids):
-                if field.is_python:
-                    value = safe_eval(field["field_name"], {"line": line}, mode="eval")
-                    if field.is_sum and value:
-                        if sum_line[key] == '':
-                            sum_line[key] = 0
-                        sum_line[key] += float(value)
-                else:
-                    value = safe_eval(field["field_name"])
-                row.append(value)
-            lines_to_export.append(row)
-            line.write({"date_export": datetime.now()})
-            previous_invoice_name = line.name
-        lines_to_export.append(sum_line)
-        lines_to_export.append([value + sum_line[i] for i,value in enumerate(big_sum_line)])
+
+        for invoice_name, move_lines in export_line_grouped_by_invoice.items():
+            for line in move_lines:
+                row = []
+                for key,field in enumerate(export_id.fields_ids):
+                    if field.is_python:
+                        value = safe_eval(field["field_name"], {"line": line}, mode="eval")
+                        if field.is_sum and value:
+                            if sum_line[key] == '':
+                                sum_line[key] = 0
+                            sum_line[key] += float(value)
+                    else:
+                        value = safe_eval(field["field_name"])
+                    row.append(value)
+                lines_to_export.append(row)
+                line.write({"date_export": datetime.now()})
+            lines_to_export.append(sum_line)
+            if not big_sum_line:
+                # Initialise bigsum to the same size and value of the sum_line
+                # So it has not to be initialized with list of empty string
+                big_sum_line = sum_line[:]
+            else:
+                big_sum_line = [value + sum_line[i] for i, value in
+                                enumerate(big_sum_line)]
+            sum_line = initial_sum_line[:]
+        else:
+        #     lines_to_export.append(sum_line)
+            lines_to_export.append(big_sum_line)
 
         filename_ = (
             export_id.company_id.name.title().replace(" ", "")
@@ -94,65 +100,3 @@ class JournalDatasExport(http.Controller):
     # ------------------------------------------------------
     # Common function
     # ------------------------------------------------------
-    def export_csv(self, export_id, lines_to_export, filename_):
-        fp = StringIO()
-        export_file = csv.writer(
-            fp, delimiter=export_id.delimiter, quoting=csv.QUOTE_ALL
-        )
-        # Add header line
-        if export_id.is_header:
-            row = []
-            for head in export_id.fields_ids.mapped("name"):
-                row.append(head)
-            export_file.writerow(row)
-
-        for line in lines_to_export:
-            # Format date value
-            line_values = [
-                value
-                if not isinstance(value, date)
-                else value.strftime(export_id.csv_datestyle)
-                for value in line
-            ]
-            export_file.writerow(line_values)
-
-        fp.seek(0)
-        data = fp.read()
-        fp.close()
-
-        filename = filename_ + ".csv"
-        csvhttpheaders = [
-            ("Content-Type", "text/csv;charset=utf8"),
-            ("Content-Disposition", content_disposition(filename)),
-        ]
-        return request.make_response(data, headers=csvhttpheaders)
-
-    def export_xls(self, export_id, lines_to_export, filename_):
-        workbook = xlwt.Workbook()
-        worksheet = workbook.add_sheet(filename_)
-        base_style = xlwt.easyxf("align: wrap yes")
-        date_style = xlwt.XFStyle()
-        date_style.num_format_str = export_id.xls_datestyle
-
-        if export_id.is_header:
-            for i, fieldname in enumerate(export_id.fields_ids.mapped("name")):
-                worksheet.write(0, i, fieldname)
-                worksheet.col(i).width = 4000  # around 220 pixels
-
-        for row_index, line in enumerate(lines_to_export):
-            for cell_index, value in enumerate(line):
-                cell_style = base_style
-                if isinstance(value, date):
-                    cell_style = date_style
-                worksheet.write(row_index + 1, cell_index, value, cell_style)
-        fp = BytesIO()
-        workbook.save(fp)
-        fp.seek(0)
-        data = fp.read()
-        fp.close()
-        filename = filename_ + ".xls"
-        xlshttpheaders = [
-            ("Content-Type", "text/csv;charset=utf8"),
-            ("Content-Disposition", content_disposition(filename)),
-        ]
-        return request.make_response(data, headers=xlshttpheaders)
diff --git a/datas/export_intercom_datas.xml b/datas/export_intercom_datas.xml
index 27f08d45d951cffba94baf180f5f3095c63f5087..547e3987cbbaacd73df612f24f1616730251d544 100644
--- a/datas/export_intercom_datas.xml
+++ b/datas/export_intercom_datas.xml
@@ -76,7 +76,7 @@
     <record id="intercom_vt_7" model="export.journal.field">
         <field name="name">Description du produit</field>
         <field name="sequence">7</field>
-        <field name="field_name">''</field>
+        <field name="field_name">line.product_id.name</field>
         <field
             name="export_id"
             ref="emgidi_export_intercom.emgidi_export_intercom_journal"
@@ -95,6 +95,7 @@
         <field name="name">Quantité</field>
         <field name="sequence">9</field>
         <field name="field_name">line.quantity</field>
+        <field name="is_sum">True</field>
         <field
             name="export_id"
             ref="emgidi_export_intercom.emgidi_export_intercom_journal"
@@ -112,7 +113,7 @@
     <record id="intercom_vt_11" model="export.journal.field">
         <field name="name">Montant Hors-taxe Signé</field>
         <field name="sequence">11</field>
-        <field name="field_name">line.price_subtotal</field>
+        <field name="field_name">-line.price_subtotal</field>
         <field name="is_sum">True</field>
         <field
             name="export_id"
@@ -122,7 +123,7 @@
     <record id="intercom_vt_12" model="export.journal.field">
         <field name="name">Total signé</field>
         <field name="sequence">12</field>
-        <field name="field_name">''</field>
+        <field name="field_name">-line.balance</field>
         <field name="is_sum">True</field>
         <field
             name="export_id"
@@ -130,9 +131,9 @@
         />
     </record>
     <record id="intercom_vt_13" model="export.journal.field">
-        <field name="name">Total signé en devises</field>
+        <field name="name">Signé en devises</field>
         <field name="sequence">13</field>
-        <field name="field_name">''</field>
+        <field name="field_name">-line.amount_currency</field>
         <field name="is_sum">True</field>
         <field
             name="export_id"
@@ -151,7 +152,9 @@
     <record id="intercom_vt_15" model="export.journal.field">
         <field name="name">Pays de destination</field>
         <field name="sequence">15</field>
-        <field name="field_name">line.move_id.partner_shipping_id.country_id.display_name</field>
+        <field name="field_name">
+            line.move_id.partner_shipping_id.country_id.display_name
+        </field>
         <field
             name="export_id"
             ref="emgidi_export_intercom.emgidi_export_intercom_journal"
@@ -178,7 +181,8 @@
     <record id="intercom_vt_18" model="export.journal.field">
         <field name="name">Département d'expédition</field>
         <field name="sequence">18</field>
-        <field name="field_name">''</field>
+        <field name="field_name">31</field>
+        <field name="is_python" eval="False"/>
         <field
             name="export_id"
             ref="emgidi_export_intercom.emgidi_export_intercom_journal"