This commit is contained in:
Wolfgang Hottgenroth 2021-01-19 19:44:25 +01:00
parent 064a0bb73d
commit c4b5e5552a
Signed by: wn
GPG Key ID: E49AF3B9EF6DD469
2 changed files with 75 additions and 4 deletions

View File

@ -1,4 +1,6 @@
from dbpool import getConnection, getOne, getMany
import datetime
import decimal
def get_zahlungen_by_mieter(mieter_id):
return getMany("""
@ -15,7 +17,7 @@ SELECT id,
def get_zahlung(id):
return getOne("""
SELECT id,
mieter
mieter,
datum_ist,
datum_soll
betrag,
@ -28,7 +30,7 @@ SELECT id,
def get_forderungen_by_mieter(mieter_id):
return getMany("""
SELECT id,
mieter
mieter,
datum,
betrag,
kommentar,
@ -40,7 +42,7 @@ SELECT id,
def get_forderung(id):
return getOne("""
SELECT id,
mieter
mieter,
datum,
betrag,
kommentar,
@ -50,6 +52,8 @@ SELECT id,
""", [ id ], "Forderung")
def get_zahlungforderung_by_mieter_and_year(mieter_id, year):
if year == 0:
year = datetime.datetime.now().year
start_date = "{}-01-01".format(year)
end_date = "{}-12-31".format(year)
return getMany("""
@ -65,4 +69,38 @@ SELECT
FROM zahlung_forderung
WHERE mieter = ? AND
datum_soll BETWEEN ? AND ?
""", [mieter_id, start_date, end_date], "ZahlungForderung")
""", [mieter_id, start_date, end_date], "ZahlungForderung")
def get_saldo_by_mieter_and_year(mieter_id, year):
if year == 0:
year = datetime.datetime.now().year
start_date = "{}-01-01".format(year)
end_date = "{}-12-31".format(year)
sumZahlungen = getOne("""
SELECT
ROUND(sum(betrag), 2) as sum
FROM zahlung
WHERE mieter = ? AND
datum_soll BETWEEN ? AND ?
""", [mieter_id, start_date, end_date], "SumZahlung")
sumForderungen = getOne("""
SELECT
ROUND(sum(betrag), 2) as sum
FROM forderung
WHERE mieter = ? AND
datum BETWEEN ? AND ?
""", [mieter_id, start_date, end_date], "SumZahlung")
print("Zahlung: {}, Forderung: {}".format(sumZahlungen, sumForderungen))
decimal.getcontext().prec = 2
sumZ = sumZahlungen["sum"]
if not sumZ:
sumZ = 0
sumF = sumForderungen["sum"]
if not sumF:
sumF = 0
saldo = sumZ - sumF
return {
"forderungen": float(sumF),
"saldo": float(saldo),
"zahlungen": float(sumZ)
}

View File

@ -235,6 +235,29 @@ paths:
description: No ZahlungForderung available
500:
description: Some server error
/hv/mieter/{mieter_id}/saldo/{year}:
get:
tags: [ "Mieter", "Zahlung" ]
operationId: ZahlungenForderungen.get_saldo_by_mieter_and_year
summary: Returns sum of Zahlungen for a given Mieter and a given year
parameters:
- name: mieter_id
in: path
type: integer
required: true
- name: year
in: path
type: integer
required: true
responses:
200:
description: Successful response
schema:
$ref: '#/definitions/Saldo'
404:
description: Neither Forderungen nor Zahlungen available
500:
description: Some server error
definitions:
@ -346,3 +369,13 @@ definitions:
type: string
mieter:
type: number
Saldo:
description: Saldo type
type: object
properties:
forderungen:
type: number
zahlungen:
type: number
saldo:
type: number