Skip to content
Extraits de code Groupes Projets
Valider 3f99de09 rédigé par Thibaud - Le Filament's avatar Thibaud - Le Filament
Parcourir les fichiers

[IMP] Added sub total and total line

parent 765da53c
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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(" ", "")
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter