saldo
This commit is contained in:
@ -1,4 +1,6 @@
|
|||||||
from dbpool import getConnection, getOne, getMany
|
from dbpool import getConnection, getOne, getMany
|
||||||
|
import datetime
|
||||||
|
import decimal
|
||||||
|
|
||||||
def get_zahlungen_by_mieter(mieter_id):
|
def get_zahlungen_by_mieter(mieter_id):
|
||||||
return getMany("""
|
return getMany("""
|
||||||
@ -15,7 +17,7 @@ SELECT id,
|
|||||||
def get_zahlung(id):
|
def get_zahlung(id):
|
||||||
return getOne("""
|
return getOne("""
|
||||||
SELECT id,
|
SELECT id,
|
||||||
mieter
|
mieter,
|
||||||
datum_ist,
|
datum_ist,
|
||||||
datum_soll
|
datum_soll
|
||||||
betrag,
|
betrag,
|
||||||
@ -28,7 +30,7 @@ SELECT id,
|
|||||||
def get_forderungen_by_mieter(mieter_id):
|
def get_forderungen_by_mieter(mieter_id):
|
||||||
return getMany("""
|
return getMany("""
|
||||||
SELECT id,
|
SELECT id,
|
||||||
mieter
|
mieter,
|
||||||
datum,
|
datum,
|
||||||
betrag,
|
betrag,
|
||||||
kommentar,
|
kommentar,
|
||||||
@ -40,7 +42,7 @@ SELECT id,
|
|||||||
def get_forderung(id):
|
def get_forderung(id):
|
||||||
return getOne("""
|
return getOne("""
|
||||||
SELECT id,
|
SELECT id,
|
||||||
mieter
|
mieter,
|
||||||
datum,
|
datum,
|
||||||
betrag,
|
betrag,
|
||||||
kommentar,
|
kommentar,
|
||||||
@ -50,6 +52,8 @@ SELECT id,
|
|||||||
""", [ id ], "Forderung")
|
""", [ id ], "Forderung")
|
||||||
|
|
||||||
def get_zahlungforderung_by_mieter_and_year(mieter_id, year):
|
def get_zahlungforderung_by_mieter_and_year(mieter_id, year):
|
||||||
|
if year == 0:
|
||||||
|
year = datetime.datetime.now().year
|
||||||
start_date = "{}-01-01".format(year)
|
start_date = "{}-01-01".format(year)
|
||||||
end_date = "{}-12-31".format(year)
|
end_date = "{}-12-31".format(year)
|
||||||
return getMany("""
|
return getMany("""
|
||||||
@ -66,3 +70,37 @@ FROM zahlung_forderung
|
|||||||
WHERE mieter = ? AND
|
WHERE mieter = ? AND
|
||||||
datum_soll BETWEEN ? 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)
|
||||||
|
}
|
33
swagger.yaml
33
swagger.yaml
@ -235,6 +235,29 @@ paths:
|
|||||||
description: No ZahlungForderung available
|
description: No ZahlungForderung available
|
||||||
500:
|
500:
|
||||||
description: Some server error
|
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:
|
definitions:
|
||||||
@ -346,3 +369,13 @@ definitions:
|
|||||||
type: string
|
type: string
|
||||||
mieter:
|
mieter:
|
||||||
type: number
|
type: number
|
||||||
|
Saldo:
|
||||||
|
description: Saldo type
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
forderungen:
|
||||||
|
type: number
|
||||||
|
zahlungen:
|
||||||
|
type: number
|
||||||
|
saldo:
|
||||||
|
type: number
|
||||||
|
Reference in New Issue
Block a user