@unterlagen_bp.route('/api/datatables/invoices/<category>', defaults = {'type': None})
@unterlagen_bp.route('/api/datatables/invoices/<category>/<type>')
@requires_auth
def datatables_invoices(category, type):
data = []
if category == "personen":
data = sql.query("""
SELECT
dokumente_personen.*,
personen_mieter.vorname mieter_vorname,
personen_mieter.nachname mieter_nachname,
personen_kunden.vorname kunde_vorname,
personen_kunden.nachname kunde_nachname,
personen_mitarbeiter.vorname mitarbeiter_vorname,
personen_mitarbeiter.nachname mitarbeiter_nachname,
personen_handwerker.betriebsname handwerker_betrieb
FROM
dokumente_personen
LEFT JOIN personen_kunden ON dokumente_personen.person_id = personen_kunden.id
LEFT JOIN personen_mitarbeiter ON dokumente_personen.person_id = personen_mitarbeiter.id
LEFT JOIN personen_handwerker ON dokumente_personen.person_id = personen_handwerker.id
LEFT JOIN personen_mieter ON dokumente_personen.person_id = personen_mieter.id;
""")
elif category == "jtth":
if type == "dokumente":
data = sql.query("""
SELECT
dokumente_jtth.*,
personen_mitarbeiter.vorname ma_vorname,
personen_mitarbeiter.nachname ma_nachname
FROM
dokumente_jtth
INNER JOIN personen_mitarbeiter ON dokumente_jtth.mitarbeiter = personen_mitarbeiter.id
""")
elif type == "belege":
data = sql.query("""
SELECT
belege_jtth.*,
soll.description soll_desc,
haben.description haben_desc
FROM
belege_jtth
LEFT JOIN kontenplan_jtth soll ON belege_jtth.kontosoll = soll.konto
LEFT JOIN kontenplan_jtth haben ON belege_jtth.kontohaben = haben.konto;
""")
elif category == "kunde":
if type == "dokumente":
data = sql.query("""
SELECT
dokumente_immobilie.*,
property.objekt objektname
FROM
dokumente_immobilie
LEFT JOIN properties property ON dokumente_immobilie.objekt = property.id;
""")
if type == "belege":
data = sql.query("""
SELECT
belege_kunde.*,
soll.description soll_desc,
haben.description haben_desc,
property.objekt objektname
FROM
belege_kunde
LEFT JOIN kontenplan_liegenschaft soll ON belege_kunde.kontosoll = soll.konto
LEFT JOIN kontenplan_liegenschaft haben ON belege_kunde.kontohaben = haben.konto
LEFT JOIN properties property ON belege_kunde.object = property.id;
""")
return jsonify({"data": [{'formatted_date': sql.sql_to_nicedate(item['date']), **item} for item in data]})