diff --git a/controllers/main.py b/controllers/main.py
index 4e3bb04d7f2b2456164ca23a16012e8050c79103..aa11c014270c5025a21e1e2fd4d3e3644cbdaa67 100644
--- a/controllers/main.py
+++ b/controllers/main.py
@@ -39,25 +39,45 @@ class JournalDatasExport(http.Controller):
             ("date", "<=", date_end),
             ("journal_id", "in", export_id.journal_ids.ids),
             ("company_id", "=", export_id.company_id.id),
-            ("move_id.state", "=", "posted"),
-            ("display_type", "=", False),
         ]
         if export_type == "empty":
             domain += [("date_export", "=", False)]
         if export_id.export_domain:
             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)
         lines_to_export = []
-        for line in export_line_ids:
+        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 field in export_id.fields_ids:
+            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)])
 
         filename_ = (
             export_id.company_id.name.title().replace(" ", "")