Skip to content
Snippets Groups Projects
Commit 27efd1b4 authored by Lorenz Zahn's avatar Lorenz Zahn
Browse files

formatierung

parent 58825a88
Branches
No related tags found
No related merge requests found
import json, csv
import json, csv, datetime
from django.utils.translation import gettext_lazy as _
from django.http import JsonResponse, HttpResponse
from django.views.generic import FormView
......@@ -91,7 +91,7 @@ class ReceiptTemplateSelectionView(FormView, AccountantRequiredMixin):
# here be conversion
table = [
[
self._data_cell_calculation(cell, receipt, data) for cell in row
_data_cell_calculation(cell, receipt, data) for cell in row
] for row in table_template
]
......@@ -99,38 +99,48 @@ class ReceiptTemplateSelectionView(FormView, AccountantRequiredMixin):
writer.writerows(table)
return response
def _data_cell_calculation(self, template, receipt, data):
"""This functions retrieves the required data point according to the template"""
method = template.get("method")
if method is None:
return ""
elif method == "FIXED":
return template.get("value")
elif method == "GENERATED":
value = template.get("value")
args = value.split(" ")
out = []
for arg in args:
parts = arg.split(".")
if parts[0] == "data":
lookup = data
for part in parts[1:]:
lookup = lookup.get(part)
if lookup is None:
break
if lookup is not None:
out.append(str(lookup))
elif parts[0] in vars(receipt):
lookup = vars(receipt)
for part in parts:
lookup = lookup.get(part)
if lookup is None:
break
if lookup is not None:
out.append(str(lookup))
else:
out.append(str(arg))
return " ".join(out)
else:
return ""
def _data_cell_calculation(template, receipt, data):
"""This functions retrieves the required data point according to the template"""
method = template.get("method")
if method is None:
return ""
elif method == "FIXED":
return template.get("value")
elif method == "GENERATED":
value = template.get("value")
args = value.split(" ")
out = []
for arg in args:
parts = arg.split(".")
if parts[0] == "data":
lookup = data
for part in parts[1:]:
lookup = lookup.get(part)
if lookup is None:
break
if lookup is not None:
out.append(str(_format(lookup)))
elif parts[0] in vars(receipt):
lookup = vars(receipt)
for part in parts:
lookup = lookup.get(part)
if lookup is None:
break
if lookup is not None:
out.append(str(_format(lookup)))
else:
out.append(str(arg))
return " ".join(out)
else:
return ""
def _format(value):
if isinstance(value, datetime.date):
return value.strftime("%d.%m.%Y")
elif isinstance(value, str):
return 0 if value == "0.00" else value
elif isinstance(value, bool):
return _("Ja") if value else _("Nein")
else:
return value
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment